
информатика (не сорт) / Запишите в тетрадь и запомните 3 оператора
.doc
Запишите в тетрадь и запомните 3 оператора! Оператор цикла while while условие do оператор Условие представляет собой выражение логического типа, а оператор после do называется телом цикла. Перед каждой итерацией цикла условие вычисляется, и если оно истинно, то выполняется тело цикла, в противном случае происходит выход из цикла. Оператор цикла repeat repeat операторы until условие В отличие от цикла while, условие вычисляется после очередной итерации цикла, и если оно истинно, то происходит выход из цикла. Таким образом, операторы, образующие тело цикла оператора repeat, выполняются по крайней мере один раз.
Оператор цикла for Оператор цикла for имеет одну из двух форм: for переменная:=начальное значение to конечное значение do оператор или for переменная:=начальное значение downto конечное значение do оператор Текст от слова for до слова do включительно называется заголовком цикла, а оператор после do - телом цикла. Переменная после слова for называется параметром цикла. Для первой формы цикла с ключевым словом to параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом downto - уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла. Однократное повторение тела цикла называется итерацией цикла. Значение параметра цикла после завершения цикла считается неопределенным.
|
Организация циклических вычислений Большинство вычислительных процессов имеют следующую особенность: отдельные участки вычислений повторяются многократно, при этом всякий раз используются новые значения при вычислении. Повторяющиеся участки вычислений называют циклами, а вычислительные процессы, содержащие циклы – циклическими. Различают циклы с известным и с неизвестным числом повторений. Циклы с известным числом повторений (арифметические циклы) характеризуются заданием начального и конечного параметров цикла. Закон изменения параметров цикла: условием окончания такого цикла является достижение параметром цикла значения, большего конечного. Циклы с неизвестным числом повторений (итерационные циклы). Итерационным называется вычислительный процесс, в котором для определения последующего значения переменной используется ее предыдущее значение. В итерационных циклах реализуется метод последовательных приближений. К итерационным циклам относят цикл с предусловием и цикл с постусловием. Цикл с предусловием while…do Количество повторений такого цикла заранее не определено и зависит от входных данных задачи. В данной циклической конструкции перед выполнением следующего повторения цикла проверяется значение логического выражения. Формат записи: while <условие> do <оператор>; где while, do – служебные слова (пока [выполняется условие] делать); <условие> – выражение логического типа (например, b <= 5); <оператор> – произвольный оператор языка Pascal, называемый телом цикла. Оператор может быть простым, составным или структурированным. Принцип действия оператора while…do: 1 Вычисляется значение логического выражения (проверяется условие). 2 Если результатом вычисления значения логического выражения (проверки условия) является ответ true (истина), то выполняется оператор, составляющий тело цикла, и стоящий после служебного слова do. Происходит возврат к пункту 1. 3 Если результатом вычисления значения логического выражения (проверки условия) является ответ false (ложь), то оператор while…do заканчивает свою работу и управление передается на следующий оператор. Исходя из описанного алгоритма, повторение действий 1, 2 продолжается, пока результатом вычисления значения логического выражения (проверки условия) не станет ответ false (ложь). Вообще говоря, оператор цикла while…do может не выполниться ни разу (если значением логического выражения сразу является false). Примечание − Тело цикла обязательно должно содержать оператор, действие которого влияет на значение логического выражения (изменяет значения входящих в него операндов). Иначе неизбежна ситуация «зацикливания» − бесконечного повторения операторов тела цикла, приводящая зачастую к зависанию среды программирования.
Пример 1. Составить программу для вычисления и вывода на экран значений функции
при х, изменяющемся в диапазоне от -3 до 6 с шагом 0,3, используя оператор с предусловием. Решение. Program prim_w; var x, y: real; begin x:=-3; {левая граница диапазона изменения переменной} while x<=6 do {условием выхода из цикла ставится достижение переменной x правой границы диапазона} begin y:=cos(exp(x*ln(5))/abs(x+2)); writeln('x=',x:4:2,' y=',y:7:3); x:=x+0.3 {увеличение значения переменной x на величину шага} end; end. Цикл с постусловием repeat…until Цикл с постусловием, в котором сначала выполняется оператор или группа операторов, а затем проверяется условие. Формат оператора: repeat <операторы цикла> until <условие>; где repeat, until – служебные слова (повторять до тех пор, пока не будет выполнено условие); <операторы цикла> – повторяющаяся в цикле последовательность операторов (тело цикла). Использовать в качестве тела цикла операторные скобки begin…end нецелесообразно, т. к. роль скобок в данном случае играют зарезервированные слова repeat и until; <условие> – выражение логического типа. Принцип действия оператора repeat…until: 1 Выполняются операторы, расположенные между операторами repeat…until, составляющие тело цикла. 2 Вычисляется значение логического выражения (проверяется условие), стоящего после слова until. Если результатом вычисления значения логического выражения (проверки условия) является ответ false (ложь), то операторы, составляющие тело цикла, выполняются вновь. 3 Если результатом вычисления значения логического выражения (проверки условия) является ответ true (истина), то оператор repeat…until заканчивает свою работу, и управление передается на следующий за ним оператор. Как следует из описанного алгоритма, повторение действий 1, 2 продолжается до тех пор, пока результатом вычисления логического выражения не станет ответ true (истина), т. е. пока не выполнится условие. Примечания. 1 Тело цикла оператора repeat…until обязательно должно содержать оператор, действие которого влияет на значение логического выражения (изменяет значения входящих в него операндов). Иначе неизбежно «зацикливание». 2 Тело цикла repeat…until обязательно повторится хотя бы один раз при любом значении логического выражения.
Пример 2. Составить программу для вычисления и вывода на экран значений функции
при х, изменяющемся в диапазоне от -3 до 6 с шагом 0,3, используя оператор с постусловием. Решение. Program prim_r; var x, y: real; begin x:=-3; {левая граница диапазона изменения переменной} repeat y:=cos(exp(x*ln(5))/abs(x+2)); writeln('x=',x:4:2,' y=',y:7:3); x:=x+0.3 {увеличение значения переменной x на шаг} until x>6 {условием выхода из цикла является превышение переменной x значения правой границы диапазона} end. Цикл с параметром for…to…do Цикл с заранее известным числом повторений. Формат оператора: for <параметр цикла> :=<нач_знач> to <кон_знач> do <оператор>; где for, to, do – служебные слова (для, до, выполнить); <параметр цикла> – параметр цикла, в качестве которого выступает переменная типа integer (byte); <нач_знач> – начальное значение параметра цикла: константа, переменная или выражение типа integer (byte); <кон_знач> – конечное значение параметра цикла: константа, переменная или выражение типа integer (byte); <оператор> – простой, составной или структурированный оператор (тело цикла). Принцип действия оператора for… to… do: 1 Параметру цикла присваивается начальное значение, и операторы цикла выполняются в первый раз. 2 Параметр цикл увеличивается на единицу, т. е. <параметр_цикла> := <нач_знач> + 1. Тело цикла выполняется во второй раз. 3 При каждом увеличении параметра цикла на единицу, тело цикла повторяется вновь. 4 В последний раз тело цикла выполняется при достижении параметром цикла конечного значения, т. е. <параметр_цикла> := <кон_знач>. Таким образом, операторы тела цикла for… to… do выполнятся ровно <кон_знач> − <нач_знач> + 1 раз. Если конечное значение параметра цикла меньше начального, то можно использовать иной формат оператора: for <параметр цикла> :=<нач_знач> downto <кон_нач> do <оператор>; В этом случае шаг изменения параметра цикла равен -1. Примечание − В некоторых версиях среды Turbo или Free Pascal параметр цикла может быть использован в качестве операнда выражений и операторов, составляющих тело цикла, но не может быть изменен.
Пример 3. Составить программу для вычисления и вывода на экран значений функции
при х, изменяющемся в диапазоне от -3 до 6 с шагом 0,3, используя оператор с известным числом повторений. Решение. Program prim_f; var x, y: real; begin x:=-3; {левая граница диапазона изменения переменной} n:=round((6-(-3))/0.3)+1; {количество повторений цикла} for i:=1 to n do begin y:=cos(exp(x*ln(5))/abs(x+2)); writeln('x=',x:4:2,' y=',y:7:3); x:=x+0.3 end end.
Пример 1. Составить программу для вычисления и вывода на экран значений функции с помощью цикла While do . Решение приведено в таблице 1.
Вычислить и напечатать
значение функции
где a1=2,8; b изменяется в интервале 2; 5 с шагом b = 0,5.
Таблица 1 − Пример на цикл While do
Пример 2. Составить программу для вычисления и вывода на экран значений функции с помощью цикла Repeat …until . Решение приведено в таблице 2.
Вычислить и напечатать
значение функции
где a1=2,8; b изменяется в интервале 2; 5 с шагом b = 0,5.
Таблица 2 − Пример на цикл Repeat …until
Пример 3. Составить программу для вычисления и вывода на экран значений функции с помощью цикла For …to…do . Решение приведено в таблице 3.
Вычислить и напечатать
значение функции
где a1=2,8; b изменяется в интервале 2; 5 с шагом b = 0,5.
Таблица 3 − Пример на цикл For …to…do
Задание 13_1 Используя примеры напишите программы. Вычислить тремя способами при помощи операторов цикла while do, repeat..until, For …to…do (таблице 4). Сохраните в файлах с именами по образцу Prg_13_1_1_mt11_Иванов_Иван.pas, Prg_13_1_2_mt11_Иванов_Иван.pas, Prg_13_1_3_mt11_Иванов_Иван.pas Периодически сохраняйте файл в процессе работы. Таблица 4 − Составить программу для вычисления
Задание 13_2. Вычислить при помощи оператора цикла For …to…do (таблице 5). Сохраните в файле с именем по образцу Prg_13_2_mt11_Иванов_Иван.pas
Таблица 5 − Составить программу для вычисления
Контрольные вопросы 1 Основные циклические конструкции. 2 Формат и принцип действия оператора с предусловием while…do. Особенности применения. 3 Формат и принцип действия оператора с постусловием repeat…until. Особенности применения. 4 Формат и принцип действия оператора for…to…do. Особенности применения. |