36579

Оператор итерационного цикла ( repeat , while )

Контрольная

Информатика, кибернетика и программирование

В каждом операторе итерационного цикла будем различать условие и тело цикла повторяющееся действие. Тело цикла whiledo это один оператор записанный после do а для цикла repetuntil тело цикла может быть и последовательностью операторов записанных между repet и until. Если условие есть true выполняется тело цикла и повторно вычисляется значение условия.

Русский

2013-09-22

31 KB

4 чел.

Оператор итерационного цикла ( repeat , while ).

Ещё одним видом операторов с условиями являются операторы итерационных циклов. В Турбо Паскале имеются две разновидности таких операторов: оператор с предусловием (оператор while-do) и оператор с постусловием (оператор repeat-until). Синтаксическая структура этих операторов имеет следующую форму:

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

repeat <последовательность операторов > until <условие>;

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

В каждом операторе итерационного цикла будем различать условие и тело цикла (повторяющееся действие). Тело цикла while-do - это один оператор, записанный после do, а для цикла repeat-until - тело цикла может быть и последовательностью операторов, записанных между repeat и until.

В цикле while-do при входе в цикл вычисляется значение условия. Если условие есть true - выполняется тело цикла и повторно вычисляется значение условия. Если вычисленное условие окажется false - осуществляется выход из цикла и переход к следующему по порядку оператору программы. Тело цикла - один оператор, поэтому, как и в случае оператора if-then-else , если в теле цикла необходимо выполнить последовательность операторов, её следует заключить в операторные скобки begin end.

В цикле repeat-until при входе в цикл вначале выполняется тело цикла (последовательность операторов между repeat и until), а затем вычисляется значение условия (стоящего после until). Если условие есть true - производится выход из цикла, если же false - повторяется тело цикла и опять проверяется условие. В цикле repeat-until ключевые слова repeat-until выполняют также и роль операторных скобок.

Резюмируя выполнение операторов while-do и repeat-until, следует обратить внимание на их различие: для оператора while-do повторение тела цикла происходит при значении условия true, а для оператора repeat-until при значении условия false. Соответственно выход из цикла while-do происходит при значении условия false, а для цикла repeat-until - при значении условия true. Во многих случаях более предпочтительной конструкцией является repeat-until т.к. нет необходимости в использовании скобок begin end , однако иногда более простым оператором цикла является while-do (если в алгоритме возможен случай, когда тело цикла не выполнится ни разу).

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

Тело цикла может в свою очередь содержать оператор цикла. В этом случае мы имеем вложенные циклы.

Задача 4.2.6(17)

program alex17;

type mas=array[1..5,1..4]of integer;

var a,b:mas;

i,j:integer;

procedure proc(var x:mas;m,k,l:integer);

var c:array[1..5]of integer;

i:integer;

begin

for i:=1 to m do

begin

c[i]:=x[i,k];

x[i,k]:=x[i,l];

x[i,l]:=c[i];

end;

end;

begin

for i:=1 to 5 do

for j:=1 to 4 do

read(a[i,j]);

writeln;

for i:=1 to 4 do

for j:=1 to 3 do

read(b[i,j]);

proc(a,5,2,4);

proc(b,4,2,3);writeln;

for i:=1 to 5 do

begin

for j:=1 to 4 do

write(a[i,j],' ');

writeln;

end;writeln;

for i:=1 to 4 do

begin

for j:=1 to 3 do

write(b[i,j],' ');

 writeln;

end;

readln;

end.


 

А также другие работы, которые могут Вас заинтересовать

1372. Анализ предприятия Слуцкие электрические сети 227.5 KB
  Описание структуры энергетического предприятия.Порядок организации рабочих мест и контроль над их выполнением. Организация мероприятий по технике безопасности. Технико-экономические показатели работы энергопредприятия. Мероприятия по охране окружающей среды на энергопредприятии.
1373. Влияние типов вируса папилломы человека на течение ювенильного респираторного папилломатоза 92 KB
  Организация статистического исследования. Заболеваемость ЮРП у детей. Карта сбора материала для детей, страдающих ЮРП. Распределение детей, страдающих ЮРП, по полу и методу лечения. . Статистические методы использованные для анализа материала.
1374. Вирішення економічних задач за допомого електронних таблиць 84.5 KB
  Обчислення в електронних таблицях. Моделювання математичних процесів. Моделювання розгалужених процесів. Моделювання циклічних процесів. Моделювання обчислень в економічних задачах табличного вигляду.
1375. Вычислительная техника 111 KB
  Возвращаем массив битов в место вызова функции. Сложение в двоичном коде уже преобразованных чисел. Перевод двоичного числа в десятичное представление. Количество битов в двоичном представлении числа.
1376. Конструктивное планирование жилого здания 174 KB
  В основе будущих жилых комплексов лежит идея открытого пространства. Здесь важнейшую роль играет солнечный свет, он создает настроение. За счет трансформации размеров здания и планировки (изменено соотношение глубины и ширины квартиры) свет максимально проникает во все точки ее пространства.
1377. Проектирование общежития 126.5 KB
  Изыскания выполнены для стадии рабочий проект с целью выяснения геологического строения и гидрогеологических условий площадки. Наружные сети по водоснабжению и канализации зданий общежитий запроектированы на основании Техусловий на водоснабжение
1378. Дакументы i матрыялы па гiсторыi паустання 1863-1864 гг. у Беларусi 161 KB
  Ход паустання, яго асаблiвасцi i уплыу на палiтыку царызма на Беларусi. Значэнне дзейнасцi К. Калiноўскага. Рэвалюцыйныя дакументы i матэрыялы паустання 1863-1864. Задача курсавой работы заключаецца у аналiзе падзей, дакументау i матрыялау гiсторыi паустання 1863-1864 гг. у Беларусi. Задача даследвання дазваляе дасягнуць мэты курсавой работы.
1379. История Китайской цивилизации 158 KB
  Возникновение Китайской цивилизации. Объединение Китая, Империя Цинь. Китай в период правления династии Хань. Китай в период династий Суй и Тан. Первые контакты с европейцами. Обострение социальных противоречий. Манчжурское завоевание и падение династии Мин.
1380. Создание приложений с информационной базой данных 140.5 KB
  Выбор состава технических и программных средств. Обоснование управления реляционной базой данных с помощью SQL. Описание БД, содержащей сведения о файлах и справочную информацию с промежуточными результатами поиска. Описание процедуры, определяющей выбранные критерии поиска.