- •Содержание
- •1. Основные понятия и определения
- •1.1. Структура персональной ЭВМ
- •1.2. Размещение данных и программ в памяти ПЭВМ
- •1.3. Программные модули
- •1.4. Ошибки
- •1.5. Функциональная и модульная декомпозиции
- •1.6. Файловая система хранения информации
- •1.7. Операционная система
- •2. Понятие алгоритмов и способы их описания
- •2.1. Свойства алгоритмов
- •2.2. Способы описания алгоритмов
- •3. Базовые элементы языка Cи
- •3.1. Алфавит языка
- •3.2. Лексемы
- •3.3. Идентификаторы и ключевые слова
- •3.4. Знаки операций
- •3.5. Литералы (константы)
- •3.6. Комментарии
- •4. Базовые типы объектов
- •4.1. Простейшая программа
- •4.2. Основные типы данных
- •4.3. Декларация объектов
- •4.4. Данные целого типа (int)
- •4.5. Данные символьного типа (char)
- •4.6. Данные вещественного типа (float, double)
- •5. Константы в программах
- •5.1. Целочисленные константы
- •5.2. Константы вещественного типа
- •5.3. Символьные константы
- •5.4. Строковые константы
- •6. Обзор операций
- •6.1. Операции, выражения
- •6.2. Арифметические операции
- •6.3. Операции присваивания
- •6.4. Сокращенная запись операции присваивания
- •6.5. Преобразование типов операндов арифметических операций
- •6.6. Операция приведения типа
- •6.7. Операции сравнения
- •6.8. Логические операции
- •6.9. Побитовые логические операции, операции над битами
- •6.10. Операция «,» (запятая)
- •7. Обзор базовых инструкций языка Си
- •7.1. Стандартная библиотека языка Си
- •7.2. Стандартные математические функции
- •7.3. Функции вывода данных
- •7.4. Функции ввода информации
- •7.5. Ввод - вывод потоками
- •8. Синтаксис операторов языка Cи
- •8.1. Условные операторы
- •8.2. Условная операция «? :»
- •8.3. Оператор выбора альтернатив (переключатель)
- •9. Составление циклических алгоритмов
- •9.1. Понятие цикла
- •9.2. Оператор с предусловием while
- •9.3. Оператор цикла с постусловием do – while
- •9.4. Оператор цикла с предусловием и коррекцией for
- •10. Операторы передачи управления
- •10.1. Оператор безусловного перехода goto
- •10.2. Оператор continue
- •10.3. Оператор break
- •10.4. Оператор return
- •11.1. Операции над указателями (косвенная адресация)
- •11.2. Ссылка
- •12. Массивы
- •12.1. Одномерные массивы
- •12.2. Многомерные массивы
- •12.3. Операция sizeof
- •12.4. Применение указателей
- •12.5. Указатели на указатели
- •13. Работа с динамической памятью
- •13.1. Пример создания одномерного динамического массива
- •13.2. Пример создания двухмерного динамического массива
- •14. Строки в языке Си
- •14.1. Русификация под Visual
- •15. Функции пользователя
- •15.1. Декларация функции
- •15.2. Вызов функции
- •15.3. Операция typedef
- •15.4. Указатели на функции
- •16. Классы памяти и области действия объектов
- •16.1. Автоматические переменные
- •16.2. Внешние переменные
- •16.3. Область действия переменных
- •17. Структуры, объединения, перечисления
- •17.1. Структуры
- •17.2. Декларация структурного типа данных
- •17.3. Создание структурных переменных
- •17.4. Вложенные структуры
- •17.5. Массивы структур
- •17.6. Размещение структурных переменных в памяти
- •17.7. Объединения
- •17.8. Перечисления
- •18. Файлы в языке Си
- •18.1. Открытие файла
- •18.2. Закрытие файла
- •18.3. Запись – чтение информации
- •18.4. Текстовые файлы
- •18.5. Бинарные файлы
- •Литература
- •Приложение 1. Таблицы символов ASCII
- •Приложение 2. Операции языка Си
- •Приложение 3. Возможности препроцессора
- •1. Вид рабочего стола консольного приложения Visual C++
- •2. Создание нового проекта
- •3. Добавление к проекту файлов с исходным кодом
- •4. Компиляция, компоновка и выполнение проекта
- •5. Конфигурация проекта
- •6. Открытие существующего проекта
- •Приложение 5. Некоторые возможности отладчика Visual C++
- •1. Установка точки прерывания
- •2. Пошаговое выполнение программы
- •3. Проверка значений переменных во время выполнения программы
- •4. Окна Auto и Watch 1
- •5. Программные средства отладки
- •ЧАСТЬ 2
- •1. Системы счисления
- •1.1. Общие определения
- •1.2. Алгоритмы перевода из одной системы счисления в другую
- •2. Организация памяти и структуры данных
- •3. Линейные списки и рекурсия
- •4. Динамическая структура данных – СТЕК
- •5. Динамическая структура данных – ОЧЕРЕДЬ
- •6. Двунаправленный линейный список
- •7. Построение обратной польской записи
- •8. Нелинейные структуры данных
- •Пояснение к программе
- •9. Понятие хеширования
- •9.1. Хеш-функция и хеш-таблица
- •9.2. Схемы хеширования
- •10. Элементы теории погрешностей
- •10.1. Методы реализации математических моделей
- •10.2. Источники погрешностей
- •10.3. Приближенные числа и оценка их погрешностей
- •10.4. Прямая задача теории погрешностей
- •10.5. Обратная задача теории погрешностей
- •10.6. Понятия устойчивости, корректности и сходимости
- •11. Вычисление интегралов
- •11.1. Формулы численного интегрирования
- •11.2. Формула средних
- •11.3. Формула трапеций
- •11.4. Формула Симпсона
- •11.5. Схема с автоматическим выбором шага по заданной точности
- •12. Методы решения нелинейных уравнений
- •12.1. Итерационные методы уточнения корней
- •12.2. Метод Ньютона
- •12.3. Метод секущих
- •12.4. Метод Вегстейна
- •12.5. Метод парабол
- •12.6. Метод деления отрезка пополам
- •13. Решение систем линейных алгебраических уравнений
- •13.1. Прямые методы решения СЛАУ
- •13.2. Метод Гаусса
- •13.3. Метод прогонки
- •13.4. Метод квадратного корня
- •13.5. Итерационные методы решения СЛАУ
- •13.6. Метод простой итерации
- •14. Поиск и сортировка
- •14.1. Последовательный поиск в массиве
- •14.2. Барьерный последовательный поиск
- •14.3. Сортировка вставками (включениями)
- •14.4. Двоичный поиск
- •14.5. Сортировка выбором
- •14.6. Алгоритмы сортировки выбором
- •14.7. Сортировка обменом
- •14.8. Быстрая сортировка
- •15. Обработка статистических данных
2) окно редактора Editor станет белым, а в его левом верхнем углу будет мерцать черный текстовый курсор, предлагая ввести какой-нибудь текст.
Введем, например, такой текст программы:
#include <stdio.h> void main(void)
{
printf(“\n Hello World! \n”);
}
В случае необходимости переключитесь на вкладку File View. Открываем список rl1 files, папку Source Files и убеждаемся, что в проекте создан файл rl1.cpp с только что набранным кодом.
Рисунок 4.З иллюстрирует вид главного окна Visual C++ после проделанной работы:
Рис. 4.3
4. Компиляция, компоновка и выполнение проекта
Эти операции можно выполнить или через подменю Build главного окна, или при помощи кнопок панели инструментов или при помощи комбинации горячих клавиш.
Данное подменю объединяет команды для компиляции, сборки и отладки программ. Основные команды меню Build следующие:
Compile – компиляция выбранного файла. Результаты компиляции выводятся в окно Output.
84
Build – компоновка проекта. Компилируются все файлы, в которых произошли изменения с момента последней компоновки. После компиляции происходит сборка (link) всех объектных модулей, включая библиотечные, в результирующий исполняемый файл. Сообщения об ошибках компоновки выводятся в окно Output. Если обе фазы компоновки завершились без ошибок, среда программирования создаст исполняемый файл с расширением .ехе (для данного примера: lr1.exe), который можно запустить на выполнение.
Rebuild All – то же, что и Build, но компилируются все файлы проекта независимо от того, были ли в них произведены изменения или нет.
Execute – выполнение исполняемого файла, созданного в результате компоновки проекта. Если же в исходный текст были внесены изменения – то перекомпилирование, перекомпоновку и выполнение.
Операции Compile, Build и Execute соответствую первая, вторая и четвертая кнопки панели инструментов Build MiniBar, которая расположена на рабочем столе (см. рис.3)справа вверху рядом с системными кнопками. Перечислим их слева направо с указанием комбинаций горячих клавиш:
Compile = Ctrl+F7 Build = F7
Execute Program = Ctrl+F5
Откомпилируйте проект, например щелчком на кнопке Build. В процессе компиляции в окне вывода Output отображаются диагностические сообщения компилятора и сборщика. И все в порядке в окне вывода получим следующую последнюю строку:
lr1.exe – 0 error(s), 0 warning(s)
Теперь запускаем приложение на выполнение щелчком, например на кнопке Execute Program (Ctrl+F5). Появится окно приложения rl1, изображенное на рис. 4.4.
Рис. 4.4
85
5. Конфигурация проекта
Visual C++ позволяет строить проект либо в отладочной конфигурации (Win32 Debug), либо в итоговой конфигурации (Win32 Release). Начинать работу нужно в отладочной конфигурации, которая обычно установлена по умолчанию. Для того, чтобы проверить какая текущая конфигурация в проекте, нужно выбрать в подменю Project пункт Settings... Откроется диалоговое окно Project Settings. Смотрим, какое значение установлено в окне комбинированного списка Settings For:.. Если это не Win32 Debug, то переключитесь на нужное значение через команду меню Build/Set Active Configuration... Но в отладочной конфигурации даже минимальный проект имеет очень большие размеры. Так только что созданный проект rl1 имеет размер на диске более одного мегабайта. Поэтому после получения финальной версии проект нужно перекомпилировать в итоговой конфигурации (Win32 Release).
Окончание работы над проектом
Можно выбрать меню File, пункт Close Workspace. А можно просто закрыть приложение Visual C++.
6. Открытие существующего проекта
Для того, чтобы открыть существующий проект нужно проделать следующие действия:
1.Запустить на выполнение среду программирования Visual C++.
2.Выберать в подменю File, пункт Open Workspace...
3.В открывшемся диалоговом окне найти папку с нужным проектом, в ней
–файл ProjectName.dsw и открыть найденный файл, щелкнув по нему мышью. Или сделать так (если нужный проект был в работе не так давно):
1.Запустить на выполнение Visual C++.
2. Выбрать подменю File, навести курсор мыши на пункт Recent Workspaces.
3. Если в появившемся меню со списком последних файлов, с которыми шла работа, есть файл ProjectName.dsw, щелкнуть по нему мышью.
Или следующим образом:
–не вызывая Visual C++, найти папку с нужным проектом, в ней – файл
ProjectName.dsw;
–щелкнуть мышью на файле ProjectName.dsw и ОС запустит на выполнение среду Visual C++, открыв при этом нужный для работы проект.
86