- •1.1. Элементы языка программирования
 - •Основные правила записи программы:
 - •1.2. Алфавит языка
 - •1.3. Лексемы
 - •1.4. Концепция данных
 - •2.2. Операции
 - •2.2.1. Арифметические операции
 - •2.2.2. Операции присваивания
 - •2.2.3. Операции отношения
 - •2.2.4. Логические операции
 - •2.2.5. Поразрядные операции
 - •2.2.6. Вычисление выражений
 - •3. Структурное программирование
 - •3.1. Общая характеристика операторов
 - •3.2. Оператор-выражение
 - •3.3. Условный оператор
 - •3.4. Составной оператор
 - •3.5. Операторы для программирования циклов
 - •3.5.1. Оператор цикла for
 - •3.5.2. Оператор цикла while
 - •3.5.3. Оператор цикла do while
 - •3.5.4. Оператор break
 - •3.5.5. Оператор continue
 - •3.6. Оператор goto
 - •3.7. Пустой оператор
 - •3.8. Оператор switch
 - •3.9. Оператор return
 - •4. Массивы
 - •4.1. Объявление массива
 - •4.2. Обращение к элементам массива
 - •4.3. Типовые алгоритмы работы с массивами
 - •4.4. Многомерные массивы
 - •5. Строки
 - •5.1. Объявление строки
 - •5.2. Посимвольная обработка строк
 - •5.3. Ввод строк
 - •5.4. Библиотечные функции для работы с текстом
 - •6. Указатели
 - •6.1. Объявление указателей
 - •6.2. Операции над указателями
 - •6.3. Связь между указателями и массивами
 - •6.4. Функция strtok для выделения лексем из текста
 - •6.5. Динамические массивы
 - •7. Структуры и объединения
 - •7.1. Объявление структуры
 - •Компонент структуры может быть любого типа, кроме типа объявляемой структуры.
 - •7.2. Операции над структурами
 - •7.3. Объявление объединения
 - •8. Модульное программирование
 - •8.1. Нисходящее проектирование и программирование
 - •8.2. Определение и вызов функции
 - •8.3. Место определения функции в программе
 - •8.4. Обмен данными между функциями
 - •8.4.1. Использование глобальных переменных
 - •8.4.2. Использование аппарата формальных и фактических параметров
 - •8.4.3. Передача массивов в функцию
 - •8.5. Перегрузка функции
 - •8.6. Шаблон функции
 - •8.7. Рекурсивные функции
 - •8.8. Функции с параметрами по умолчанию
 - •8.9. Передача в функцию другой функции
 - •9. Работа с файлами
 - •9.1. Текстовые и двоичные файлы
 - •9.2. Объявление файловых переменных
 - •9.3. Чтение текстового файла
 - •9.4. Создание текстового файла
 - •9.5. Изменение данных в текстовом файле
 - •9.6. Вывод в двоичный файл
 - •9.7. Чтение данных из двоичного файла
 - •9.8. Изменение данных двоичного файла
 - •9.9. Организация файла с произвольным доступом
 - •10. Данные с динамической структурой
 - •10.1. Линейный список
 - •10.1.1. Специальные типы линейных списков
 - •10.1.2. Реализация линейного списка с помощью массива
 - •10.1.3. Реализация линейного списка с помощью связанного однонаправленного списка
 - •10.1.4. Реализация линейного списка с помощью связанного двунаправленного списка
 - •10.2. Деревья
 - •10.2.1. Основная терминология
 - •10.2.2. Реализация двоичных деревьев поиска Для реализации дерева поиска используются массивы и связанные указателями элементы [3, 4].
 - •10.2.3. Сбалансированные деревья
 - •Основные достоинства в-дерева:
 - •10.3. Графы
 - •10.3.1. Определения
 - •10.3.2. Реализация графа с помощью списков смежности
 - •10.3.3. Реализация графа с помощью матрицы смежности
 - •10.3.4. Поиск кратчайших путей. Алгоритм Дейкстры
 - •10.3.5. Матрица достижимости. Алгоритм Уоршалла
 
3.2. Оператор-выражение
Оператор-выражение используется для программирования алгоритмов линейной структуры. Он изменяет значение переменной.
Синтаксис оператора:
Выражение;
Примеры операторов-выражений: х=2; a++; d+=2;
3.3. Условный оператор
Условный оператор используется для программирования разветвляющихся алгоритмов.
Синтаксис оператора:
if (выражение)
оператор1
[else
оператор2]
Замечание: при описании синтаксиса опраторов в квадратных скобках будут указываться необязательные конструкции.
Выполнение оператора: если значение выражения истинно выполняется оператор1, иначе оператор2.
Пример оператора:
if (a>b)
y=sin(x);
else
y=cos(x);
Наличие точки с запятой перед служебным словом else обязательно, так как точка с запятой входит в запись предшествующего оператора. Сокращенная запись структуры развилки может быть реализована с помощью условной операции:
y=a>b ? sin(x) : cos(x);
Пример программы, определяющей принажлежит ли точка с координатами {x,y} первому квадранту:
#include <iostream.h>
#include <conio.h>
void main()
{
float x, y;
cout<<”x,y ? “; cin>>x>>y;
if (x>=0 && y>=0)
cout<<”Yes”;
else
cout<<”No”;
getch(); }
Программа может содержать несколько последовательных условных операторов. Условные операторы могут быть вложенными.
Пример программы, вычисляющей функцию знака

#include <iostream.h>
#include <conio.h>
void main()
{
float x, sign;
cout<<”x ? “; cin>>x;
if (x>=0)
sign=1;
else
if (x==0) //вложенный оператор if
sign=0;
else
sign=-1;
cout<<”sign=”<<sign;
getch();
}
3.4. Составной оператор
Составной оператор используется для объединения нескольких операторов в один оператор. Такое объединение требуется выполнять в тех случаях, когда по синтаксису в программе может быть записан только один оператор, (например, в ветке условного оператора), а по логике алгоритма надо выполнить несколько действий.
Синтаксис оператора:
{Операторы [и объявления]}
Пример составного оператора:
if (a>b)
{//переставить значения
int x; //объявление переменной
x=a; a=b; b=x;
}
3.5. Операторы для программирования циклов
В С++ для программирования циклических алгоритмов используются три оператора цикла:
for
while
do while
и операторы передачи управления:
break
continue
3.5.1. Оператор цикла for
Синтаксис оператора:
for ([выражение1]; [выражение2]; [выражение3]) оператор
Пример оператора:
for (i=0; i<10; i++)
cout<<i<<’ ‘;
Выполнение оператора:
Вычисляется выражение1, если оно есть.
Вычисляется выражение2, если оно есть.
Если выражение2 истинно (<>0) или оно отсутствует, выполняется оператор тела цикла, иначе выход из цикла.
Вычисляется выражение3, если оно есть.
Переход на пункт 2.
Оператор for является оператором цикла с предусловием: перед каждой итерацией цикла, в том числе и перед первым выполнением, проверяется условие выполнения цикла.
Пример программы вычисления суммы
![]()
![]()
#include <conio.h>
#include <iostream.h>
void main()
{
float s; //сумма
int n; //количество слагаемых
int i; //номер слагаемого
cout<< “n? “; cin>>n;
s=0;
for (i=1; i<=n; i++)
s=s+1.0/i;
cout<<”s=”<<s;
getch();
}
