§ 3.5. Программирование циклических алгоритмов | Программирование циклов с заданным условием

Планирование уроков на учебный год (ФГОС)


Уроки 29 - 31
§ 3.5. Программирование циклических алгоритмов




Ключевые слова:

• while (цикл-ПОКА)
• repeat (цикл-ДО)
• for (цикл с параметром)


3.5.1. Программирование циклов с заданным условием продолжения работы


Цикл с заданным условием продолжения работы (цикл-ПОКА) программируется в языке Паскаль с помощью оператора while. Общий вид оператора:

while <условие> do <оператор>

Здесь:

<условие> — логическое выражение; пока оно истинно, выполняется тело цикла;

<оператор> — простой или составной оператор, с помощью которого записано тело цикла.

Запишем на языке Паскаль рассмотренный в п. 2.4.3 (пример 14) алгоритм получения частного q и остатка r от деления натурального числа х на натуральное число y без использования операции деления.

Каким будет результат выполнения программы при х = -10 и у = 3? Как вы можете объяснить этот результат?

3.5.2. Программирование циклов с заданным условием окончания работы


Цикл с заданным условием окончания работы (цикл-ДО) программируется в языке Паскаль с помощью оператора repeat. Общий вид оператора:

repeat <оператор1; оператор2; ...; > until <условие>

Здесь:

<оператор1>; <оператор2>; ... — операторы, образующие тело цикла;

<условие> — логическое выражение; если оно ложно, то выполняется тело цикла.

Запишем на языке Паскаль рассмотренный в п. 2.4.3 (пример 17) алгоритм решения задачи о графике тренировок спортсмена.


3.5.3. Программирование циклов с заданным числом повторений


Цикл с заданным числом повторений (цикл-ДЛЯ) программируется в языке Паскаль с помощью оператора for. Его общий вид:

for <параметр>:=<начальное_значение> to <конечное_значение> do <оператор>

Здесь:

<параметр> — переменная целого типа;

<начальное_значение> и <конечное_значение> — выражения того же типа, что и параметр, вычисляемые перед началом цикла;

<оператор> — простой или составной оператор — тело цикла.

При выполнении этого оператора после каждого выполнения тела цикла происходит увеличение на единицу параметра цикла; условием выхода из цикла является превышение параметром конечного значения.

Запишем на языке Паскаль рассмотренный в п. 2.4.3 (пример 19) алгоритм вычисления степени с натуральным показателем n для любого вещественного числа а.


3.5.4. Различные варианты программирования циклического алгоритма


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

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

Так как здесь в явном виде задано условие окончания работы, то воспользуемся оператором repeat.

Имеющееся условие окончания работы можно достаточно просто преобразовать в условие продолжения работы — работа продолжается, пока n≠0. И мы можем воспользоваться оператором while:

В рассмотренном примере число повторений тела цикла заранее не известно, и поэтому оператор for здесь применить нельзя. Если число повторений тела цикла известно, то лучше воспользоваться оператором for. Вместе с тем любая задача, в которой число повторений тела цикла определено заранее, может быть запрограммирована с помощью любого из трёх рассмотренных выше циклов.

САМОЕ ГЛАВНОЕ


В языке Паскаль имеются три вида операторов цикла: while (цикл-ПОКА), repeat (цикл-ДО), for (цикл с параметром). Если число повторений тела цикла известно, то лучше воспользоваться оператором for; в остальных случаях используются операторы while и repeat.

Вопросы и задания


1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.

2. Дана последовательность операторов:

Сколько раз будет повторен цикл и какими будут значения переменных a, b, s после исполнения этой последовательности операторов?

3. Требовалось написать программу вычисления факториала числа n (факториал числа n есть произведение всех целых чисел от 1 до n). Программист торопился и написал программу неправильцо. Ниже приведён фрагмент его программы, в котором содержатся пять ошибок:

Найдите ошибки. Допишите необходимые операторы и выполните программу на компьютере.

4. Проанализируйте следующий цикл:

while a<b do

с:=а=b;

В чём его особенность?

5. Запишите на языке Паскаль программы решения задач № 25-29 из § 2.4. Используйте оператор while.

6. Дана последовательность операторов:

Сколько раз будет повторён цикл и какими будут значения переменных а, b, s после исполнения этой последовательности операторов?

7. Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и подсчёт суммы и среднего арифметического введённых положительных чисел. Используйте оператор repeat.

8. Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и определение максимального (наибольшего) из введённых чисел. Используйте оператор repeat.

9. Напишите программу вычисления наибольшего общего делителя двух целых чисел:

а) используйте оператор repeat;
б) используйте оператор while.

10. Сколько раз будет выполнен цикл?

а) for i:=0 to 15 do s:=s+l;
б) for i:=10 to 15 do s:=s+l;
в) for i:=-l to 1 do s:=s+l;
г)for i:=10 to 10 do s:=s+l;
д)k:=5;

for i:=k-l to k+1 do s:=s+l;

11. Напишите программу, которая 10 раз выводит на экран ваши имя и фамилию.

12. Напишите программу, выводящую на экран изображение шахматной доски, где чёрные клетки изображаются звёздочками, а белые — пробелами. Рекомендуемый вид экрана после выполнения программы:

13. Напишите программу, которая вычисляет сумму:

а) первых n натуральных чисел;
б) квадратов первых п натуральных чисел;
в) всех чётных чисел в диапазоне от 1 до n;
г) всех двузначных чисел.

14. Напишите программу, которая генерирует 10 случайных чисел в диапазоне от 1 до 20, выводит эти числа на экран и вычисляет их среднее арифметическое.

15. Запишите на языке Паскаль программы решения задач № 32, 33 из § 2.4. Используйте оператор for.

16. Напишите программу, которая выводит на экран таблицу степеней двойки (от нулевой до десятой). Рекомендуемый вид экрана после выполнения программы:

17. Напишите программу, которая выводит на экран таблицу умножения на n (n — целое число в диапазоне от 2 до 10, вводимое с клавиатуры).

18. Какой из трёх рассмотренных операторов цикла является, по вашему мнению, основным, т. е. таким, что им можно заменить два других? Обоснуйте свою точку зрения.

Электронное приложение к уроку




Cкачать материалы урока







Наверх