Теоретические сведения. Цель работы: закрепить практические навыки работы с системой TURBO Pascal, овладеть практическими навыками разработки
Лабораторная работа № 4 ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ Цель работы: закрепить практические навыки работы с системой TURBO Pascal, овладеть практическими навыками разработки, программирования циклических процессов, познакомиться с диагностическими сообщениями компилятора об ошибках при выполнении программ, содержащих операторы цикла While, Repeat и For. Теоретические сведения Операторы цикла служат для того, чтобы выполнять входящие в их состав операторы (так называемые операторы тела цикла) несколько раз (в частном случае - один раз или ни разу). В языке Pascal имеется три вида операторов цикла: While, Repeat и For. 1. Оператор цикла While. Его синтаксис: While A do ST; где: 1) A - булевское выражение; 2) ST - оператор (возможно составной). Значение выражения A вычисляется перед каждым выполнением оператора ST, поэтому цикл While называют еще циклом с предусловием. Если значение A есть TRUE, то оператор ST выполняется и управление передается на вычисление значения выражения A; если значение выражения A есть FALSE, то оператор ST не выполняется и происходит выход из цикла. Замечания: 1. если первоначальное значение выражения A - FALSE, то оператор ST не будет выполнен ни разу; 2. в операторе цикла While точка с запятой никогда не ставится после зарезервированного слова do; 3. чтобы избежать бесконечного повторения (зацикливания), необходимо хотя бы одну переменную, входящую в условие, изменять в теле оператора цикла. Более того, эти изменения должны быть такими, чтобы булевское выражение рано или поздно приняло значение FALSE. Если же булевское выражение первоначально истинно и ни при каких обстоятельствах не становится ложным, то выполнение оператора цикла никогда не завершится. Наконец, цикл While используется, как правило, в тех случаях, когда заранее неизвестно количество повторений цикла. В связи с этим следует помнить простое, но очень важное правило - "самая внутренняя" циклическая конструкция должна формулироваться с особой тщательностью с тем, чтобы по возможности минимизировать затраты на вычисления и повысить эффективность программы. 2. Оператор цикла Repeat. Цикл Repeat (цикл с постусловием), как правило, используется в тех случаях, когда заранее неизвестно количество повторений операторов тела цикла. Синтаксис оператора цикла Repeat: Repeat ST until A; где: 1) ST - оператор (возможно составной); 2) А - булевское выражение. "Работает" оператор так: выполняются операторы ST, вычисляется значение выражения А; если его значение - FALSE, то вновь выполняются операторы ST, если значение выражения А - TRUE, то цикл заканчивается. Если же значение выражения А есть TRUE с самого начала, то операторы ST выполняются лишь один раз. Если выражение А никогда не принимает значение TRUE, то группа операторов ST выполняется бесконечное число раз, то происходит " зацикливание ". Следует отметить, что нижняя граница операторов циклической части четко обозначена словом until, поэтому нет необходимости заключать операторы циклической части в операторные скобки begin и end. 3. Оператор цикла For. Оператор цикла For служит для организации цикла с параметром и используется в тех случаях, когда заранее известно, сколько раз должна повторяться циклическая часть программы. Синтаксис оператора For по возрастающим значениям параметра i: For i:=N1 to N2 do ST; где: 1) i - переменная (параметр) цикла; 2) N1- начальное значение параметра цикла, а N2- конечное; 3) ST - оператор (возможно составной). Переменные i, N1, N2 должны быть одного и того же скалярного типа, но не типа Real, и значение N2 должно быть больше, чем значение N1. Переменная i принимает последовательные значения данного типа от N1 до N2 . В частном случае, когда N1 и N2 - целые числа, а i - переменная типа Integer или Byte, то шаг всегда равен единице. Например, если For i:=1 to 20 do A:=A+1, то для i=1,2,3,...,20 будет выполняться оператор А:=А+1. Если же N1 и N2 символьного типа и имеют значения, например, 'A' и 'Z' соответственно, то переменная i принимает последовательные значения в порядке букв алфавита: 'А','В','С',...,'Z'. Отметим, что имеется возможность организовать цикл по убывающим значениям параметра i. Для этого используется зарезервированное слово downto. Синтаксис оператора For по убывающим значениям параметра i: For i:= N2 downto N1 do ST; где: 1) i - переменная (параметр) цикла; 2) N2 - начальное значение параметра цикла, а N1 - конечное; 3) ST - оператор (возможно составной). В этом случае параметр i принимает последовательные убывающие значения данного типа от N2 до N1 Например, если For i:=20 downto 1 do A:=A+1, то для i=20,19,18,...,1 будет выполняться оператор А:=А+1. 4. Вложенные циклы. Это подразумевает, что существует внешний цикл и один или несколько внутренних. Каждое повторение внешнего цикла означает завершение всех внутренних циклов; при этом всем выражениям, которые управляют внутренними циклами, вновь присваиваются начальные значения. Вложение допустимо для всех операторов цикла. Правила организации вложенных циклов: · Все правила присущие простому циклу должны соблюдаться; · Имена параметров для вложенных циклов должны быть различны; · Внутренний цикл должен полностью входить во внешний
|