![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Оператор цикла с постусловиемСодержание книги
Поиск на нашем сайте
Часто встречаются задачи, когда число повторений в цикле неизвестно, а задано некоторое условие его продолжения или окончания. Для программирования таких алгоритмов в Паскале существуют два типа операторов – оператор с предусловием и оператор с постусловием. Оператор цикла с постусловием это оператор Repeat (ПОВТОРЯТЬ), который в общем виде записывается так: Repeat Операторы Until условие; Схема его работы представлена на рис. 4.5.
При этом необходимо обязательно изменять параметр внутри цикла, иначе цикл будет выполняться бесконечно (произойдет "зацикливание"). В соответствии со схемой цикл выполняется по крайней мере 1 раз.
Пример 4.7 Изобразить степени двойки, не превышающие 10000.
Program Two; Var Num: Integer; Begin Num:=2; Repeat Writeln (Num); Num:=Num*2; Until Num>1000; End. Пример 4.8 Определить является ли число простым. Program Prim; Var I,n: integer; Begin Writeln(‘ввидите число’); Read(n); Write(n,’-‘); I:=1; Repiat I:=i+1; Until n nod i=0; If i=n then writeln(‘простое число!’) Else writeln(‘делится на ’,i); End. Оператор цикла с предусловием
While условие do Оператор1; Схема работы оператора приведена на рис. 4.6. В этом операторе условие также записывается относительно параметра. Если в теле цикла необходимо выполнить несколько операторов, то они заключаются в блок следующего вида: Begin Операторы End; В отличие от Repeat цикл While может не выполняться ни разу. Пример 4.9 Вычисление множителей последовательности целых чисел Program Dividers; Const d=2; Var Num, Del,P: Integer; Begin Writeln ('Введите число'); Readln(Num); While Num <>0 Do Begin P:= 0; { число простое } For Del:= d To Num Div d Do Begin If Num Mod Del=0 Then Begin Write(Del); P:= 1; { число не простое } End; End; If P=0 Then{ п.2.3 } Writeln('Число ',Num,' - простое');
Writeln('Введите число'); Read(Num); End; End. Пример 4.10 Нахождение делителей целого положительного числа (кроме 1 и самого числа). Х- исходное число, half – половина введенного числа, divider – делитель, I – счетчик. Program Divid; Var Divider, half, I, x: integer; Begin Repeat Write(‘введите положительное число’); Read(x); If x<=0 then writeln (‘неправильный ввод’) Until x>0; Half:=x div 2; While Divider <=half do Begin If x mod divider=0 then Begin I:=i+1; Writeln(I,’ – й делитель равен’,divider) End; Divider:=divider +1; End; If i=0 then writeln (‘делителей нет’); Writeln(‘конец решения’); End. Итерационные циклы Среди циклов с неизвестным числом повторений большое место занимают итерационные. В этих циклах количество повторений заранее неизвестно. Выход из цикла происходит, если достигнута заданная точность результата или появилась стандартная ситуация (конец данных). Такие циклы используются при решении задач численными методами: приближенное вычисление функций, определенных интегралов, решение уравнений и т.д. Основной особенностью итерационных циклов является то, что новое значение искомой величины (Yслед) вычисляется с использованием старого (Yпред) по формуле: Yслед=f(Yпред) Обычно для вычисляемой величины Y задается некоторое начальное значение (приближение) Yoи погрешность вычисления результата (Y) в виде: E=(0,5; 1)*10-m, где m – целое число. Как правило, E=(0,1; 0,5, 0,01; 0,05, 0,001 и т.д.). Считается, что заданная точность достигнута, если найденные значения Yпреди Yследотличаются на величину, меньшую E, т.е. условие окончания вычислений можно записать так: |Yслед– Yпред|<E Для программирования итерационных циклов в Паскале используются операторы While и Repeat. Пример 4.11 Вычислить значение арифметического выражения: Вычисление непрерывных радикалов производится в цикле, начиная от внутреннего радикала. В данной задаче начальное значение var r,a:real; begin r:=sqrt(2); a:=5; while a<=98 do begin r:=sqrt(a+r); a:=a+3; end; writeln('R=',r);end.
|
|||||
Последнее изменение этой страницы: 2017-02-17; просмотров: 215; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.181.131 (0.007 с.) |