Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Технологии разработки объектно-ориентированных программ на язык C++. Основы структурного программирования на алгоритмическом языке C++

.pdf
Скачиваний:
4
Добавлен:
12.11.2023
Размер:
3.17 Mб
Скачать

Операторы сравнения

Помимо операторов больше (>) и меньше (<) существуют операторы, позволяющие упростить запись условий. Основные из них следующие:

b >= 0 – b больше или равно нулю;

b <= 0 – b меньше или равно нулю;

b == 0 – проверка b на равенство нулю. Важно помнить, что этот оператор пишется удвоенным знаком равно (==), в отличие от оператора присваивания (=);

b != 0 – b не равно нулю.

31

Глава 7. ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ

Цикл – это конструкция, задающая многократное выполнение операторов. Цикл состоит из трех элементов тела цикла:

тело цикла – это повторяющиеся операторы;

шаг цикла – это однократное выполнение тела цикла;

параметр цикла – это величина, которая должна изменяться от шага к шагу и по которой определяется, продолжить или закончить шаг вычисления. При отсутствии параметра цикла он может стать бесконечным.

7.1.Виды циклических процессов

Арифметический цикл – это такой процесс, когда заранее известно, сколько раз надо выполнить тело цикла. Примером такого цикла является суммирование всех целых чисел от 1 до 10, так как заранее известно, сколько чисел необходимо просуммировать.

Итерационный цикл – это такой процесс, когда заранее не известно, сколько раз необходимо выполнить тело цикла, но существует только одна причина окончания цикла, а именно достижение заданного результата. Например, наполнение летнего бассейна водой с помощью ведра: сколько ведер воды придется принести, не известно, причина окончания процесса одна – наполнение бассейна.

Поисковый цикл – это такой процесс, где заранее не известно, сколько раз выполнится тело цикла, но существует более одной причины его окончания. Примером такого цикла является выполнение домашнего задания: его можно закончить, выполнив все или решив отдохнуть (в этом случае выполнение цикла тоже прекращается).

7.2.Операторы циклических процессов

Впрограммировании существует три оператора циклов:с предусловием;с постусловием;

с автоматическим изменением параметра цикла.

32

Цикл с предусловием

Условие выхода из цикла расположено до тела цикла. В теле предусмотрено изменение параметра цикла таким образом, чтобы оно происходило на каждом шаге цикла, пока условие не будет нарушено и не произойдет выход из циклического процесса.

В блок-схеме это выглядит так, как изображено на рис. 7.1.

Рис. 7.1. Цикл с предусловием

В программе на рис. 7.1 фрагмент программы цикла с предусловием:

while (условие) { тело цикла;

изменение параметра цикла;

}

Цикл с постусловием

Условие выхода из цикла расположено после тела цикла. Важно понимать, что в данном случае цикл пройдет хотя бы один раз, даже если после прохода окажется, что условие было ложным.

33

В блок-схеме это выглядит так, как изображено на рис. 7.2.

Рис. 7.2. Цикл с постусловием

Фрагмент программы цикла с постусловием:

do {

тело цикла; изменение параметра цикла;

} while (условие)

Цикл с автоматическим изменением параметра цикла

Заранее известно количество шагов в цикле. На каждом новом шаге цикла параметр автоматически изменяется от заданного начального значения до заданного конечного значения, после чего происходит выход из цикла.

В блок-схеме это выглядит так, как показано на рис. 7.3.

34

Рис. 7.3. Цикл с автоматическим изменением параметра

Фрагмент программы цикла с автоматическим изменением параметра цикла:

for (int i = 0; i != 10; i++) {

тело цикла;

}

После ключевого слова for происходит объявление переменной цикла и присваивание ей начального значения (int i = 0). Далее пишется ее конечное значение (i == 10). Последнее обозначение – это изменение переменной на каждом шаге. Знак «++» обозначает увеличение на 1, что равнозначно записи i = i + 1.

Пример работы различных операторов цикла:

Разработать алгоритм и составить программу вычисления факториала числа а.

Параметром управления циклическими процессами будет переменная целого типа. Значение факториала записывается в переменную целого типа factor.

Цикл с предусловием

Блок-схема вычисления факториала (цикл с предусловием) приведена на рис. 7.4.

35

Рис. 7.4. Вычисление факториала. Цикл с предусловием (фрагмент блок-схемы)

В программном коде это будет выглядеть следующим образом:

int a = 7, factor = 1; while (a>0) {

factor = factor * a; a = a – 1;

}

cout << factor;

Цикл с постусловием

Блок-схема вычисления факториала (цикл с постусловием) приведена на рис. 7.5.

36

Рис. 7.5. Вычисление факториала. Цикл с постусловием (фрагмент блок-схемы)

В программном коде это будет выглядеть следующим образом:

int a = 7, factor = 1; do {

factor = factor * a; a = a – 1;

} while (a>0); cout << factor;

37

Цикл с автоматическим изменением параметра

Блок-схема вычисления факториала (цикл с автоматическим изменением параметра) приведена на рис. 7.6.

Рис. 7.6. Вычисление факториала. Цикл с автоматическим

изменением параметра (фрагмент блок-схемы)

В программном коде это будет выглядеть следующим образом:

int a = 7, factor = 1;

for (int i = 1; i = a; i++) { factor = factor * i;

}

cout << factor;

Задания для самостоятельной работы:

Разработать в виде блок-схемы и программного кода алгоритм Евклида: поиск наибольшего делителя двух чисел.

38

Разработать в виде блок-схемы и программного кода алгоритм суммирования чисел, которые вводит пользователь с клавиатуры. Количество чисел не известно, 0 – признак окончания ввода.

Разработать в виде блок-схемы и программного кода алгоритм для поиска в последовательности чисел максимального четного числа. Количество чисел известно заранее – это число задает пользователь, числа вводятся с клавиатуры.

39

Глава 8. СТРУКТУРА ПРОГРАММЫ НА С++

8.1. Основная часть программы – функция main

При выполнении консольного приложения, написанного на языке С++, операционная система компьютера передает управление функции с именем main(). Функцию main() нельзя вызывать из других функций программы, она является главной.

Следующие за именем функции круглые скобки предназначены для указания параметров, которые передаются в функцию при обращении к ней. В данном случае операционная система не передает в функцию main() никаких параметров, поэтому в круглых скобках ничего нет.

Главная функция записывается следующим образом: int main(). Перед именем функции указывается тип возвращаемого значе-

ния. При обращении к главной функции целочисленное значение возвращается операционной системе. В зависимости от возвращенного значения операционная система определяет, корректно ли завершилась программа. Если же это значение не возвращено, то операционная система понимает, что программа завершилась в аварийном режиме. Для возврата целочисленного значения перед завершением функции добавляется строка

return 0; // Возвращение 0

Если программа завершилась и вернула 0, то ошибок не произошло.

После объявления функции пишутся фигурные скобки, в которых находится тело программы. Напишем программу, которая выводит на экран предложение:

int main() {

// Главная функция

cout << “Hello, my friends”;

// Вывод сообщения

system (“pause”);

// Задержка для консоли

return 0;

// Программа завершилась

успешно

 

}

 

40

Соседние файлы в папке книги