- •Лекция 1 Создание консольного приложения
- •2. Консоль. Построение консольного проекта
- •3. Запуск приложения
- •4. Сохранение и редактирование проекта
- •Лекция 2
- •4. Функции форматированного ввода и вывода
- •4.1. Функция форматированного ввода с клавиатуры
- •4.2. Функция форматированного вывода на экран
- •5. Математические функции
- •Лекция 3 Линейные вычислительные процессы
- •1. Алгоритм. Управляющие структуры
- •2. Линейные вычислительные алгоритмы
- •Лекция 4 Разветвляющиеся вычислительные процессы
- •1. Управляющая структура «развилка». Логические операции и операции отношения
- •2.1. Условный оператор if()
- •2.2. Условное выражение
- •2.3. Оператор выбора switch()
- •Лекция 5 Программирование разветвляющихся вычислительных процессов
- •Лекция 6 Циклические вычислительные процессы.
- •1. Типы циклов
- •3. Операторы безусловного перехода
- •Лекция 7 Вычисление последовательностей
- •4. Примеры вычисления последовательностей
- •5. Структура алгоритмов вычисления рекуррентных последовательностей
- •Лекция 8 Одномерные массивы
- •1. Массивы
- •1.1. Примеры программ обработки одномерных массивов
- •Лекция 9 Алгоритмы сортировки одномерных массивов
- •1. Сортировка одномерных массивов
- •1.1. Метод пузырька (метод обменной сортировкой с выбором)
- •1.2. Сортировка выбором
- •1.3. Сортировка простыми вставками
- •Лекция 10 Двухмерные массивы
- •1. Двухмерные массивы
- •Лекция 11 Алгоритмы матричной алгебры
- •1. Алгоритмы матричной алгебры
- •Лекция 12 Динамические массивы
- •1. Память компьютера. Адресное пространство
- •2. Динамическая память
- •3. Адреса и указатели
- •4. Указатели и массивы. Динамические массивы
- •5. Проблемы, связанные с указателями
- •6. Поразрядные операции
- •Лекция 13
- •1.2. Способы объявления и обращения к элементам двухмерных массивов
- •Лекция 14 Символы и строки
- •1. Символьный тип данных
- •2. Строки
- •Лекция 15 Структуры
- •1. Понятие структуры
- •2. Определение нового имени типа
- •3. Массивы структур. Указатели на структуры
- •3.1. Определение статического массива структур
- •3.1. Определение динамического массива из n структур
- •Лекция 16 Файлы
- •1. Потоковый ввод-вывод данных
- •3. Понятие файла. Функции работы с файлами
- •Лекция 17 Файлы
- •Лекция 18 Функции пользователя
- •I. Приёмы построения алгоритмов
- •2. Понятие функции
- •2.1. Определение функции
- •2.2. Область видимости переменных
- •2.3. Параметры функции
- •2.4. Описание функции
- •2.5. Организация вызова функции
- •2.5. Передача параметров в функцию
- •Лекция 19 Многофайловые программы
- •1. Создание многофайловой программы. Создание и добавление головного файла в проект
- •3. Рекурсия
- •Лекция 20 Нахождение приближенного значения корня нелинейного уравнения
- •На отрезке [a;b] с заданной точностью eps
- •1.1. Метод дихотомии (половинного деления)
- •1.2. Метод хорд
- •1.3. Метод касательных (Ньютона)
- •Лекция 21 Нахождение приближенного значения определенного интеграла
- •1. Нахождение приближенного значения определенного интеграла с заданной точностью
- •Лекция 22 Объектно-ориентированное программирование
- •Полиморфизм – это свойство класса, позволяющее определить одно и то же по имени, но разное по смыслу действие. Основные этапы ооп:
- •Уточнённое имя принадлежит классу (т.Е. Компонентной) функции
- •Лекция 23 Объектно-ориентированное программирование
- •1. Конструкторы и деструкторы
- •Лекция 24 Объектно-ориентированное программирование
- •1. Компонентные данные и компонентные функции
- •1.1. Компонентные данные
- •1.2. Определение компонентных функций
- •Лекция 25 Объектно-ориентированное программирование
- •1. Свойства классов
- •1.1. Наследование классов
- •1.2. Полиморфизм
- •Библиографический список
Лекция 6 Циклические вычислительные процессы.
Цели:
познакомиться с понятием циклического вычислительного процесса и с формами их описания;
изучить операторы языка С++, позволяющие реализовывать циклические вычислительные алгоритмы;
получить представление о типах последовательностей и способах их обработки;
освоить методику написания циклических вычислительных алгоритмов, перевода таких алгоритмов на язык программирования С++ и разработки соответствующего проекта в среде Visual C++ 6.0.
Алгоритмические циклические структуры предназначены для решения задач, которые подразумевают выполнение одного и того же набора действий определённое количество раз. Выделяют три типа циклов: с параметром, с предусловием и с постусловием. Каждый цикл имеет заголовок и тело цикла.
1. Типы циклов
Цикл с параметром
На псевдокоде цикл записывается следующим образом:
для i=<начальное_значение>до <конечное_значение>шаг<размер_шага>
<операторы_тела_цикла>
все_для i
Параметр цикла i показывает, сколько раз должны быть выполнены операторы тела цикла; <начальное_значение> – значение, с которого начинает изменяться параметр цикла; <конечное_значение> – значение, до которого изменяется параметр цикла; <размер_шага> – значение, показывающее, на сколько изменяется параметр цикла после выполнения всех операторов тела цикла.
Среди операторов тела цикла могут быть условные операторы, циклы и другие операторы.
Работа цикла с параметром организована по схеме: параметру присваивается <начальное_значение>, затем проверяется, больше или нет значение параметра значения <конечное_значение>. Если нет, то выполняются операторы тела цикла. В противном случае цикл завершает свою работу. После очередного выполнения операторов тела цикла значение параметра цикла изменяется на <размер_шага>. Затем опять проверяется, больше или нет значение параметра значения <конечное_значение>. Если нет, то выполняется тело цикла. В противном случае цикл завершает свою работу и т.д.
Цикл с предусловием
На псевдокоде цикл записывается следующим образом:
пока<условие>
<операторы_тела_цикла>
все_цикл
Определение <условие>аналогично его определению в разделе «Разветвляющиеся вычислительные процессы». Тело цикла выполняется до тех пор, пока<условие>истинно. Когда условие станет ложным, выполняется строка, следующая за циклом.
Работа цикла с предусловием:
Проверяется истинность выражения <условие>. Если <условие> истинно, то выполняются операторы тела цикла.
После того как выполнился последний оператор цикла, управление передаётся заголовку цикла. Переход на пункт 1.
Если условие в заголовке ложно, то цикл завершает свою работу.
Используя оператор цикла с предусловием, необходимо следить за тем, чтобы операторы тела цикла воздействовали на условие, либо за тем, чтобы оно ещё каким-то образом изменялось во время вычислений в теле цикла. Для этого часто используют унарные операции ++ или – для изменения параметров, входящих в <условие>. Только при изменении условия можно избежать зацикливания.
Цикл с постусловием
На псевдокоде цикл записывается следующим образом:
цикл
<операторы_тела_цикла>
пока<условие>
Правила работы цикла с постусловием:
Выполняется тело цикла.
Проверяется истинность <условие>: если <условие> истинно, то выполняется тело цикла. Если оно ложно, то цикл завершает свою работу.
В противоположность циклам с параметром и предусловием, сначала проверяющим условия, в цикле с постусловием условие окончания работы этого цикла проверяется после выполнения операторов тела цикла. Данный цикл всегда выполняется, по крайней мере, один раз.
2. Операторы циклов в С++
Цикл с параметром for()
Стандартный вид цикла:
for(<список1>; <список2>; <список3>)
{
<операторы_тела_цикла>
}
Если тело цикла состоит из одного оператора, то операторные скобки можно не ставить. Среди операторов тела цикла могут быть условные операторы, циклы и другие операторы. После заголовка цикла точка с запятой не ставится.
<список1> содержит операторы, задающие начальное значение параметру или параметрам цикла, и операторы, задающие начальные значения переменным, которые участвуют в работе цикла; <список2> – условие, определяющее, в какой момент цикл должен завершить работу; <список3> – операторы, позволяющее изменить значение параметра цикла.
Эти три списка должны быть разделены точкой с запятой.
Правила работы цикла с параметром:
Выполняется <список1> один раз за всё время работы цикла.
Выполняется <список2>. Если условие окончания работы цикла ложно, то цикл завершает свою работу. В противном случае выполняются операторы тела цикла.
После выполнения последнего оператора тела цикла выполняется <список3>, затем происходит переход на пункт 2.
Если среди операторов тела цикла встретится оператор continue, то происходит переход на пункт 3.
Если среди операторов тела цикла встретится оператор break, то произойдёт выход из цикла и управление передастся оператору, следующему за циклом.
Цикл for() работает до тех пор, пока условие истинно. Когда условие становится ложным, выполнение программы продолжается с оператора, следующего за циклом. В языке С++ в качестве параметра может выступать переменная либо арифметического, либо символьного типа. Например, фрагмент программы позволяет распечатать весь латинский алфавит в одной строке:
char ch;
for (ch=’a’;ch<=’z’;ch++)
{
printf("%c",ch);
}
Цикл с предусловием while()
while(<условие>)
{
<тело_цикла>
}
После заголовка цикла точка с запятой не ставится.
Цикл с постусловием do – while()
do
{
<тело_цикла>
}
while(<условие>);
Правила работы циклов с предусловием и постусловием описаны выше.