
ЛАБОРАТОРНАЯ РАБОТА №2.
Программирование алгоритмов циклической структуры (без использования регулярного типа данных)
Цель работы: Развить практические навыки работы с системой TURBO Pascal и научить правильно использовать операторы цикла While, Repeat и For в программах. Знать алгоритмы: вычисления суммы (произведения) членов ряда, факториала.
Теоретические сведения
Операторы цикла предназначаются для выполнения входящих в их состав операторов (операторами тела цикла) несколько раз (в частном случае - один раз или ни разу). В языке Pascal имеется три вида операторов цикла: While. Repeat и For
Оператор цикла While.
Его синтаксис:
While A do ST;
где: 1) А - булевское выражение; 2) ST - оператор (часто составной), составляющий тело цикла.
Значение выражения А вычисляется перед каждым выполнением оператора ST, поэтому цикл While называют еще циклом с предусловием.
Если значение А есть TRUE, то оператор ST выполняется и управление передается на вычисление значения выражения А; если значение выражения А есть FALSE, то оператор ST не выполняется и происходит выход из цикла.
Замечания:
(1) если первоначальное значение выражения А - FALSE, то оператор ST не будет выполнен ни разу,
(2) после зарезервированного слова do точка с запятой не ставится (это приведет к зацикливанию);
(3) чтобы избежать бесконечного повторения (зацикливания), необходимо хотя бы одну переменную, входящую в условие, изменять в теле оператора цикла. Более того, эти изменения должны быть такими, чтобы булевское выражение рано или поздно приняло значение FALSE. Если же булевское выражение первоначально истинно и ни при каких обстоятельствах не становится ложным, то выполнение оператора цикла никогда не завершится.
Наконец, цикл While используется, как правило, в тех случаях, когда заранее неизвестно количество повторений цикла. В связи с этим следует помнить простое, но очень важное правило - "самая внутренняя" циклическая конструкция должна формулироваться с особой тщательностью с тем, чтобы по возможности минимизировать затраты на вычисления и повысить эффективность программы.
Оператор цикла Repeat.
Цикл Repeat, также как и While используется в тех случаях, когда заранее неизвестно количество повторений операторов тела цикла, но значение выражения А вычисляется не в начале а, после каждого выполнения тела цикла, поэтому этот цикл называют еще циклом с постусловием.
Синтаксис оператора цикла Repeat:
Repeat
ST1;
ST2;
…
STn-1;
STn
until A;
где: 1) ST1, ST2 ,…,STn – операторы, составляющие тело цикла (возможно один составной); 2) А - булевское выражение.
Замечания:
(1) Если значение выражения А есть TRUE с самого начала, то операторы ST выполняются лишь один раз (т.е. тело цикла всегда выполняется хотя бы один раз);
(2) Если выражение А никогда не принимает значение TRUE, то группа операторов ST (тело цикла) выполняется бесконечное число раз (зацикливание). Чтобы булевское выражение приняло значение TRUE, необходимо переменную, входящую в условие, изменять в теле оператора цикла,.
(3) Следует отметить, что нижняя граница операторов циклической части четко обозначена словом until, поэтому нет необходимости заключать операторы циклической части в операторные скобки begin и end.