
- •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.5.2. Оператор цикла while
Синтаксис оператора:
while (выражение) оператор
Выполнение оператора: пока выражение истинно выполняется оператор.
Оператор while является оператором цикла с предусловием.
Пример программы вычисления количества цифр в целом числе:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int x; //число
int y; //модуль числа
int k=1; //количество цифр в числе
cout<<"x? "; cin>>x;
y=abs(x);
while (y>=10)
{
k++;
y/=10; //целочисленное деление
}
cout<<"k="<<k;
getch();
}
Тесты:
х=123 результат=3
х=0 результат=1
х=-34567 результат=5
3.5.3. Оператор цикла do while
Синтаксис оператора:
do оператор while(выражение);
Выполнение оператора:
Выполняется оператор тела цикла.
Вычисляется выражение.
Если выражение истинно, то переход на пункт 1, иначе выход из цикла.
Оператор do while является оператором цикла с постусловием: вначале выполняется оператор тела цикла, а затем вычисляется выражение для принятия решения о выполнении очередной итерации.
Пример программы вычисления количества цифр в целом числе:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int x; //число
int y; //модуль числа
int k=0;
cout<<"x? "; cin>>x;
y=abs(x);
do
{
k++; y/=10;
}
while (y>0);
cout<<"k="<<k;
getch();
}
3.5.4. Оператор break
Оператор break используется внутри операторов цикла и оператора switch для прерывания выполнения этих операторов и передачи управления на оператор программы, следующий за оператором цикла или оператором switch.
Синтаксис оператора:
break;
Пример программы суммирования вводимых с клавиатуры целых чисел (признаком конца ввода является ввод отрицательного числа):
#include <iostream.h>
#include <conio.h>
void main()
{
int х; //вводимое число
int s=0; //сумма чисел
while (true) //бесконечный цикл
{
cout<<"x?"; cin>>x;
if (x<0)
break; //выход из цикла
s+=x; //суммирование неотрицательных чисел
}
cout<<"s="<<s;
getch();
}
3.5.5. Оператор continue
Оператор continue используется внутри операторов цикла. Он пропускает все операторы, следующие за ним в теле цикла, и передает управление на начало следующей итерации цикла.
Синтаксис оператора:
continue;
Пример программы суммирования и подсчета отрицательных чисел вводимой с клавиатуры последовательности из n целых чисел:
#include <iostream.h>
#include <conio.h>
void main()
{
int х; //вводимое число
cout<<"n? ";
cin>>n;
int s=0; //сумма отрицательных чисел
int k=0; //количество отрицательных чисел
//Цикл ввода и обработки чисел
for (int i=1; i<=n; i++)
{
cout<<"x?";
cin>>x;
if (x>=0)
continue;
s+=x; //суммирование отрицательных чисел
k++; //подсчет количества отрицательных чисел
}
cout<<"s="<<s<<” k=”<<k;
getch();}
3.6. Оператор goto
Оператор goto передает управление на оператор с указанной в goto меткой.
Синтаксис оператора:
goto метка;
Оператор goto надо использовать в программах только в исключительных случаях, так как его использование приводит к усложнению структуры программы.
3.7. Пустой оператор
Пустой оператор используется совместно с оператором цикла for или с оператором goto. Оператор не выполняет никаких действий.
Синтаксис оператора:
;
Пример использования пустого оператора для вычисления суммы:
s=0;
for (int i=1; i<=n; s+=1.0/i, i++)
;