Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1

Криворотова Л.Н. ТР 7.0. Основы программирования

Урок 12
Тема: «Цикл с постусловием»
Повторение

  1. Запишите конструкцию цикла с предусловием. В каких случаях применятся цикл с предусловием?

  2. Далее представлен фрагмент программы вычисления количества цифр в заданном натуральном числе. Найдите в нем ошибки и исправьте их.

a: = n; ck: = 0;

while a>=0; Do



Begin

ck: = ck + 1;

a: = a div 10

End;

3. Каким условиям должны удовлетворять значения переменной k, чтобы следующие циклы были бесконечны:

While c<0 do c: = c + k;

While k<>0 do k:= k + 1;

While k<>0 do k: = k – 2;

Продолжим знакомство с операторами цикла, имеющимися в Паскале. Повторение группы операторов (тела цикла) можно организовать и с помощью оператора, где проверка условия осуществляется после выполнения тела цикла. Для программной реализации циклических алгоритмов с неизвестным заранее числом повторений имеется оператор цикла с постусловием, который имеет следующий вид:
Оператор цикла REPEAT (цикл ДО).
Формат оператора:
REPEAT

оператор 1;

оператор 2;

оператор n;



UNTIL логическое условие;
Часть программы, заключенная между служебными словами REPEAT и UNTIL, повторяется до тех пор, пока не станет истинным логическое выражение, стоящее после слова UNTIL. Между словами REPEAT (повторить) и UNTIL(до тех пор пока) можно записать любое количество операторов без использования операторных скобок.

В отличие от оператора WHILE вычисление логического выражения происходит не до, а после очередного повторения цикла. Из-за этого цикл REPEAT обязательно выполнится хотя бы раз, а цикл WHILE может не выполнится ни разу. Если условие в цикле ПОКА является условием продолжения повторений, то условие в цикле ДО – условием выхода из цикла, его завершения. Поэтому для одной и той же задачи эти условия противоположны.


ПРИМЕР 1. Составить программу подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+…1/N, используя оператор цикла REPEAT.

Решение

Program Summa;

Var S:real; N:integer;

Begin


S:=0; N:=0;

repeat


N:=n+1;

S:=s+1/n


Until n=1000;

Writeln(s);

Readln

End.


2. Поиск наибольшего числа.
Предположим, нам необходимо ввести с клавиатуры N чисел, найти из них наибольшее и вывести его.

Для решения этой задачи предлагается следующий алгоритм.



  1. Ввести первое число в переменную Max.

  2. Ввести следующее число в переменную Next.

  3. Если Next>Max, то Max:=Next.

Пункты 2 и 3 повторять, пока не будут введены все числа.

  1. Вывести значение переменной Max.

Действительно ли будет напечатано наибольшее из N чисел? Докажем это.

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

Повторение пунктов 2 и 3, в сущности, представляет собой цикл, который выполняется, пока не будут введены все числа. Если перед очередным повторением цикла в Max находится наибольшее из введенных чисел, то после выполнения пунктов 2 и 3 там снова будет наибольшее из введенных чисел.

В последнем пункте значение Max будет выведено.

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

Program maximum;

Var N, max, next, k: integer;

Begin


Write(‘Введите количество чисел‘); Readln(n);

Write(‘Введите число‘); Readln(max);

k:=1;

repeat


Write(‘Введите число‘); Readln(next);

K:=k+1;


If next>max then max:=next

Until k=n;

Writeln(max);

Readln


End.
Тренировочные задания.

  1. Введите с клавиатуры 6 чисел и определите их среднее арифметическое.

  2. Напишите программу, которая вводит целые числа с клавиатуры и складывает их, пока не будет введено число 0.

  3. Напечатайте 20 первых степеней числа 2.

  4. Найдите минимальное из N чисел.

  5. Дано натуральное число. Выяснить, является ли оно простым, т.е. делится только на 1 и на само себя.

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

Запишите конструкцию цикла с предусловием. В каких случаях применятся цикл с предусловием?

28.59kb.

16 12 2014
1 стр.


6. Цикл выполнения команд ЭВМ цикл выполнения команды это

Последовательность микроопераций центрального процессора, реализующих конкретную команду

79.26kb.

15 09 2014
1 стр.


Газовый цикл

Условия задания. Сухой воздух массой 1 кг совершает прямой термодинамический цикл, состоящий из четырех последовательных термодинамических процессов. Данные, необходимые для расчет

97.25kb.

16 12 2014
1 стр.


Цикл обучение письму и коррекция почерка

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

130.17kb.

13 10 2014
1 стр.


Лекция 3 геодинамические обстановки образования месторождений с позиции мобилистской концепции

Пции составляет орогенический цикл Уилсона, охватывающий обычно промежуток времени в 200-250 млн лет. Цикл разделяется на 5 стадий: внутриконтинентального рифтообразования, расшире

77.65kb.

26 09 2014
1 стр.


Лекция жизненный цикл объектов недвижимости

Жизненный цикл объекта недвижимости как физического объекта – это последовательность процессов существования объекта недвижимости от замысла до ликвидации (утилизации)

40.1kb.

16 12 2014
1 стр.


Лекція №7 Тема: Цикли План Цикли з передумовою Цикли з постумовою Цикл з лічильником

Цикл дозволяє повторити певну (і навіть не визначене — коли робота циклу залежить від умови) кількість разів які-небудь оператори. Дані оператори називаються тілом циклу -они «крут

54.13kb.

12 10 2014
1 стр.


Рабочей программы дисциплины Основы программирования Место дисциплины в структуре ооп принципы построения курса: Курс входит в профессиональный цикл ооп 010300 «Фундаментальная информатика и информационные технологии»

Курс входит в профессиональный цикл ооп 010300 «Фундаментальная информатика и информационные технологии»

21.25kb.

06 10 2014
1 стр.