Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник программирование 7-9 на печать.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
6.6 Mб
Скачать

§ 13. Решение задач по теме «Цикл с предусловием»

Упр. 21.Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал норму на 10% от нормы предыдущего дня.

а) Определить, через сколько дней спортсмен пробежит суммарный путь более 100 км.

б) Вывести ежедневные и суммарные пробеги на первые семь дней.

Упр. 22. Вводятся 14 чисел. Определить, сколько среди них положительных (включая 0) и сколько отрицательных. (Числа вводятся в одну переменную в цикле)

Упр. 23 Вывести на экран числа, кратные К из промежутка [А,В]. А, В, К вводятся.

Домашние задачи:

33. Бесконечно печатать букву А: АААААААА….(блок-схема и программа).

34. Напечатать букву ’А’ N раз. N вводится. (блок-схема и программа).

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

Вам надо поточить все карандаши в коробке. Вы точите один карандаш и откладываете его в сторону. Затем проверяете, остались ли карандаши в коробке. Если условие ложно, то снова выполняется действие “'заточить карандаш”. Как только условие становится истинным, то цикл прекращается.

Вы уже умеете организовать цикл с предусловием while..do.., девиз которого – «пока условие истинно, выполнять оператор». Иногда при решении задач нужно выполнить тело цикла хотя бы один раз, а потом исследовать условие повторять ли его еще раз. Эту задачу выполнит другой вид цикла – цикл с постусловием.

repeat повторяй

операторы операторы

until <условие>; до тех пор, пока условие будет ложным;

Есть небольшое отличие в организации цикла repeat по сравнению с while: для выполнения в цикле repeat нескольких операторов не следует помещать эти операторы в операторные скобки begin ... end. Зарезервированные слова repeat и until действуют как операторные скобки.

Представим всю информацию о цикле с постусловием в таблице:

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

(девиз цикла: «Выполнять операторы, пока условие ложно»)

Оператор цикла с постусловием:

Repeat

<тело цикла>

Until <условие>;

<Тело цикла> – набор любых операторов, т.к Repeat..Until подобны операторным скобкам.

Тело цикла выполнится 1 раз, даже если условие изначально истинно.

Конструкция repeat ... until работает аналогично циклу while. Различие заключается в том, что цикл while проверяет условие до выполнения действий, в то время как repeat проверяет условие после выполнения действий, это гарантирует хотя бы одно выполнение действий до завершения цикла.

Упражнение 24. Составьте блок-схему по данному фрагменту программы. Сколько раз выполняется цикл? Чему становится равно a?

Упражнение 25. Найти квадраты целых чисел от 1 до 10

Program Sum2;

Var x,y:integer;

Begin

X:=1; {начальное присваивание}

Repeat {повторять действия, ..}

Y:=X*X; {найти квадрат x}

Writeln(X,Y); {вывести х и его квадрат}

X:=X+1; {х увеличить на 1, }

until X=11; {пока неверно, что X=11}

end.

Домашние вопросы и задачи:

  1. Как работает цикл с постусловием? Приведите примеры такого цикла из вашей жизни.

  2. Запишите блок-схему цикла с постусловием? Объясните его работу.

  3. Запишите оператор цикла с постусловием, расскажите о его работе и особенностях. В чем состоят различия между циклами с предусловие и постусловием?

4. Пусть мы отправляемся за грибами и возвращаемся домой, когда корзина наполнится. Все грибники делятся на 2 категории:

  • Смотрят, есть ли место в корзине, если есть, срывают гриб.

  • Сначала срывают гриб, а уже потом думают, как их положить в корзину.

Опишите поведение грибников с помощью блок-схем разных циклов.

Задачи:

35. Составьте блок-схемы, определите сколько раз выполнился цикл и найдите значения переменных S, i после выполнения операторов:

А) S:=0; I:=3;

Repeat

S:=s+sqr(i); i:=i-1

until i<=0;

Б) S:=0; I:=2;

Repeat

S:=s+i*3; i:=i-2

until i<=0;

В) S:=0; I:=2;

Repeat

S:=s+i; i:=i-1

until 2*i<=S;

36. Бесконечно печатать 100 99 98 …… (программа и блок-схема)

37. Запросить имя пользователя и напечатать "Привет, Вася!" 10 раз. (если Вася – имя пользователя)