- •Лекция 1 Создание консольного приложения
- •2. Консоль. Построение консольного проекта
- •3. Запуск приложения
- •4. Сохранение и редактирование проекта
- •Лекция 2
- •4. Функции форматированного ввода и вывода
- •4.1. Функция форматированного ввода с клавиатуры
- •4.2. Функция форматированного вывода на экран
- •5. Математические функции
- •Лекция 3 Линейные вычислительные процессы
- •1. Алгоритм. Управляющие структуры
- •2. Линейные вычислительные алгоритмы
- •2.1. Условный оператор if()
- •2.2. Условное выражение
- •2.3. Оператор выбора switch()
- •Лекция 5 Программирование разветвляющихся вычислительных процессов
- •Лекция 6 Циклические вычислительные процессы.
- •1. Типы циклов
- •3. Операторы безусловного перехода
- •Лекция 7 Вычисление последовательностей
- •4. Примеры вычисления последовательностей
- •5. Структура алгоритмов вычисления рекуррентных последовательностей
- •Лекция 8 Одномерные массивы
- •1. Массивы
- •1.1. Примеры программ обработки одномерных массивов
- •1.2. Сортировка выбором
- •1.3. Сортировка простыми вставками
- •Лекция 10 Двухмерные массивы
- •1. Двухмерные массивы
- •Лекция 11 Алгоритмы матричной алгебры
- •1. Алгоритмы матричной алгебры
- •Лекция 12 Динамические массивы
- •1. Память компьютера. Адресное пространство
- •2. Динамическая память
- •3. Адреса и указатели
- •4. Указатели и массивы. Динамические массивы
- •5. Проблемы, связанные с указателями
- •6. Поразрядные операции
- •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. Передача параметров в функцию
- •3. Рекурсия
- •Лекция 20 Нахождение приближенного значения корня нелинейного уравнения
- •На отрезке [a;b] с заданной точностью eps
- •1.1. Метод дихотомии (половинного деления)
- •1.2. Метод хорд
- •1.3. Метод касательных (Ньютона)
- •Лекция 22 Объектно-ориентированное программирование
- •Полиморфизм – это свойство класса, позволяющее определить одно и то же по имени, но разное по смыслу действие. Основные этапы ооп:
- •Уточнённое имя принадлежит классу (т.Е. Компонентной) функции
- •Лекция 23 Объектно-ориентированное программирование
- •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(<условие>);
Правила работы циклов с предусловием и постусловием описаны выше.