- •Понятие алгоритма. Свойства алгоритмов. Основные этапы решения задач
- •1. Формулировка задачи
- •2. Математическая постановка задачи
- •3. Разработка алгоритма
- •4. Написание текста и ввод программы
- •5. Выполнение программы. Поиск и устранение синтаксических ошибок
- •6. Тестирование программы. Поиск и устранение логических ошибок в программе
- •Этапы создания исполняемой программы (загрузочного модуля).
- •Структуры и формы написания программы
- •Внутреннее представление данных
- •Классы памяти
- •Обмен данными через внешние переменные
- •Статические переменные
- •Стандартный ввод/вывод данных через потоки
- •Ввод данных
- •Вывод данных
- •Специфические операции
- •Операции присваивания
- •Некоторые нетрадиционные (унарные) операции
- •Условные выражения
- •Операция условия ?:
- •Выражения (в том числе и условные). Порядок выполнения операций в выражении. Таблица приоритетов.
- •Условный оператор if и его применение при программировании. Сокращенная форма оператора if
- •Полная форма оператора if
- •Множественный выбор else-if
- •Оператор выбора switch и его применение при программировании.
- •Циклические вычислительные процессы
- •Оператор цикла while и его применение при программировании. Цикл while – цикл с предусловием.
- •Оператор цикла do while и его применение при программировании. Цикл do while – цикл с постусловием
- •Оператор цикла for и его применение при программировании. Цикл for – цикл с предусловием
- •Операторы break, goto, continue их применение при программировании. Операторы передачи управления
- •Оператор break
- •Оператор continue
- •Оператор goto
- •Вложенные циклы.
- •Указатели и адреса: описание, инициализация и операции с указателями. Применение указателей при программировании.
- •Статические строки
- •Динамические строки
- •Стандартный цикл обработки строки
- •Одномерные числовые массивы
- •Статические массивы
- •Динамические массивы
- •Динамические матрицы
- •Циклы перебора матрицы
- •Программирование с использованием функций пользователя. Принципы построения функций.
- •Механизм вывода функции
- •Передача значения простого аргумента в функцию. Способы передачи простых данных в функцию
- •Передача в функцию значения аргумента
- •Рекурсивная функция
- •Передача функции в другую функцию через указатель. Параметр функции. Указатель на функцию.
- •Перегрузка функций.
- •Функции с параметрами по умолчанию
- •Шаблоны функций.
- •Формат функции шаблона
- •Механизм шаблона
- •Особенности проекта с функциями-шаблонами
5. Выполнение программы. Поиск и устранение синтаксических ошибок
Поиск ошибок синтаксиса осуществляется с помощью программы компилятор.
6. Тестирование программы. Поиск и устранение логических ошибок в программе
Тестирование программы осуществляется с помощью контрольных примеров. Контрольный пример – это такой набор исходных данных, при котором результат свидетельствует о правильном написании программы (просчитывается в уме). Количество контрольных примеров должно быть достаточным для проверки каждой ветви решения.
(//Поиск логических ошибок при неправильном выполнении контрольных примеров уже не так прост, осуществляется с помощью программы отладчик)
+
Этапы создания исполняемой программы (загрузочного модуля).
Заголовочные файлы – стандартные текстовые файлы с расширением .h, содержащие различные объявления: стандартных функций, макроопределений, макрофункций, шаблонов структур, и другие системные ресурсы.
Исходный модуль – текстовый файл с расширением .cpp, содержащий текст программы на языке С++. Исходный модуль получается в результате работы программы редактор.
Исходный модуль с участием заголовочных файлов обрабатывается программой препроцессор, изменяющей исходный текст программы в соответствии с директивами препроцессора.
Директивы – особые строки программы, начинающиеся с символа #. В результате получаем полный текст исходного модуля(//который не записывается в файле, а находится в оперативной памяти машины для дальнейшей обработки).
Полный модуль обрабатывается компилятором – программой, переводящей исходный текст программы в машинные коды.
В результате получаем объектный модуль – файл с расширением .obj, содержащий машинный код программы.
Компоновщик – программа, которая на основе полученных объектных модулей и с участием библиотечных файлов создает загрузочный модуль – файл с расширением .exe, который и выполняется компьютером.
Библиотечные файлы – файлы с расширением .lib, содержащие объектные модули стандартных функций.
Итак, для получения исполняемой программы нам необходимы следующие средства:
Текстовый редактор;
Компилятор;
Компоновщик;
Библиотеки функций;
Отладчик;
Справочник.
+
Структура программы на С++. Директивы препроцессора include и define.
Структуры и формы написания программы
Любая программа может состоять из одной или нескольких функций, причем одна из них должна называться main.
Любая функция состоит из заголовка и тела.
Заголовок функции состоит из директив препроцессора и имени функции.
Директива препроцессора include – вставляет содержимое указанного файла в текст программы вместо директивы.(//она предписывает компилятору включить в программу содержимое определенного файла, как если бы вы сами ввели его в текущий исходный файл)
В общем случае может быть вставлен любой текстовый файл, не нарушающий структуру программы.
Имя функции main пишется стандартным образом: int main(void), где int – тип, main – название, void – список параметров (исходных данных).
Тело функции – набор операторов, заключенных в фигурные скобки.
Последний оператор – return – завершает выполнение функции и передает результат в соответствии с типом функции, в место вызова.
Текст программы пишется маленькими латинскими буквами. Заглавные пишутся в названиях (функций, переменных, констант).
//Объявление констант предусматривает использование директивы define
//const требуют от вас определения их типа (значением по умолчанию является int)
+
Типы данных в языке С++. Размеры данных. Диапазоны изменения данных.
|
Тип данного |
Размер данного в байтах |
Диапазон значений |
Целые типы |
bool (логический) |
1 байт |
true false |
char (знаковый, символьный) |
1 байт |
-128 ÷ 127 |
|
unsigned char (беззнаковый, символьный) |
1 байт |
0 ÷ 255 |
|
short (знаковый, целый(числ.), короткий) |
2 байта |
-32768 ÷ 32767 |
|
unsigned short (беззнаковый, целый, короткий) |
2 байта |
0 ÷ 65535 |
|
int |
2/4 байта |
|
|
unsigned (unsigned int) |
2/4 байта |
|
|
long (знаковый, длинный, целый) |
4 байта |
-2147483648 ÷ 2147483647 |
|
unsigned long (беззнаковый, длинный, целый) |
4 байта |
0 ÷ 4294967295 |
|
Вещественные типы |
float (числа с десятичной точкой) |
4 байта |
3.4Е-38 ÷ 3.4Е+38 |
double (числа с десятичной точкой, более точно) |
8 байт |
1.7Е-308 ÷ 1.7Е+308 |
|
long double |
10 байт |
3.4E-4932 ÷ 3.4E+4932 |
