Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Оператор цикла с постусловиемСодержание книги
Поиск на нашем сайте
Часто встречаются задачи, когда число повторений в цикле неизвестно, а задано некоторое условие его продолжения или окончания. Для программирования таких алгоритмов в Паскале существуют два типа операторов – оператор с предусловием и оператор с постусловием. Оператор цикла с постусловием это оператор Repeat (ПОВТОРЯТЬ), который в общем виде записывается так: Repeat Операторы Until условие; Схема его работы представлена на рис. 4.5. В теле цикла записывается один или несколько операторов, которые будут выполняться многократно. Они располагаются между служебными словами Repeat и Until, поэтому обрамлять их словами Begin и End не нужно. После слова Until записывается условие выхода из цикла (по значению параметра). При этом необходимо обязательно изменять параметр внутри цикла, иначе цикл будет выполняться бесконечно (произойдет "зацикливание"). В соответствии со схемой цикл выполняется по крайней мере 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. Оператор цикла с предусловием Он отличается от оператора Repeat тем, что условие выполнения цикла проверяется до начала. Цикл выполняется, если оно истинно. Оператор с пред-условием начинается служебным словом While. Общая форма его записи: 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 Вычислить значение арифметического выражения: Вычисление непрерывных радикалов производится в цикле, начиная от внутреннего радикала. В данной задаче начальное значение . Каждое следующее значение радикала будет вычисляться через предыдущее значение радикала по формуле , число изменяется от начального значения 5 до конечного значения 98 с шагом 3. 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; просмотров: 212; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.129.110 (0.007 с.) |