Цель урока
1. Образовательная:
Знания: основные виды и типы величин, правила оформления
программ на Паскале.
Умения: специальные: составлять несложные
линейные алгоритмы, отлаживать программы и исполнять их; общеучебные,
владение способами контроля и взаимоконтроля, само и взаимооценки, умение
коллективно работать.
2. Воспитательная:
·
способность следовать нормам
поведения.
3. Развивающая:
·
Умственная деятельность:
анализ, синтез, классификация, способность наблюдать, делать выводы, выделять
существенные признаки объектов.
|
Оператор цикла. Циклы с предусловием и постусловием
Циклический
вычислительный процесс (ЦВП) характеризуется повторением одних и тех же
вычислений над некоторым набором данных. Числом повторений цикла управляет
специальная переменная, называемая его счетчиком или управляющей
переменной цикла. На счетчик накладывается условие, определяющее, до
каких пор следует выполнять цикл.
Повторяемый блок
вычислений называют телом цикла. В теле цикла должно быть
обеспечено изменение значения счетчика, чтобы он мог завершиться. Если
тело цикла состоит более, чем из одного оператора, оно заключается в
операторные скобки begin ... end;. Однократное выполнение тела цикла
называют его шагом.
Таким образом, для
программирования цикла достаточно определить условие, управляющее числом его
повторений и описать операторы, образующие тело цикла. С этой точки зрения,
теоретически возможны всего два вида циклов – проверка условия либо
предшествует выполнению тела цикла, либо происходит после него. Изобразим эти
циклы в виде блок-схем с соответствующими описаниями:

Цикл с предусловием: сначала проверяется условие, затем, в зависимости от того,
истинно оно или ложно, либо выполняется тело цикла, либо следует переход к
оператору, следующему за телом цикла. После завершения тела цикла
управление вновь передается на проверку условия. Естественно,
предполагается, что в теле цикла было обеспечено некоторое изменение входящих
в условие переменных – в противном случае произойдет зацикливание и
программа "зависнет".
|

Цикл с постусловием: сначала выполняется тело цикла, затем управление передается на
проверку условия. В зависимости от истинности или ложности условия, тело
цикла выполняется повторно или же происходит переход к оператору,
следующему за телом цикла. Всё, сказанное о возможном зацикливании для
цикла с предусловием, справедливо и для цикла с постусловием.
|
Исходя из приведенных
блок-схем, очевидно основное различие двух циклов: цикл с
постусловием гарантированно выполняется хотя бы раз, а цикл с предусловием
может не выполняться ни разу, если условие сразу же окажется ложным.
В языке Паскаль
реализованы оба вида циклов. Цикл с предусловием имеет следующий общий вид:
while логическое
выражение do begin
{операторы тела
цикла}
end;
Работу цикла можно
описать словами: "пока логическое выражение истинно, повторяется тело
цикла".
Логическое выражение
строится по правилам, изученным в главе 7. Тело цикла могут образовывать
любые операторы Паскаля. Если в теле цикла всего один оператор, операторные
скобки можно и не писать.
Общая запись цикла с
постусловием следующая:
repeat
{операторы тела
цикла}
until
логическое_выражение;
Работает цикл с
постусловием следующим образом: "тело цикла повторяется до тех пор,
пока логическое выражение не станет истинным". Обратите внимание,
что, в отличие от while, цикл repeat в Паскале работает, пока условие ложно.
Это отличие подчеркивается использованием ключевого слова until("до тех
пор, пока не") вместо while("до тех пор, пока"). Кроме
того, в виде исключения, тело цикла repeat, даже если оно состоит из
нескольких операторов, можно не заключать в операторные скобки.
Довольно часто циклы
взаимозаменяемы. Представим, например, что для каждого из значений переменной
x=1,2,…,20, нужно выполнить некоторый расчет (математически этот закон
измененияx можно записать как или ). Покажем общий вид циклов while и repeat:
x:=1;
while x<=20 do begin
{операторы расчета}
x:=x+1;
end;
|
x:=1;
repeat
{операторы расчета}
x:=x+1;
until x>20;
|
Как видно из
листинга, управляющей переменной x в обоих случаях присвоено начальное
значение1, оба цикла изменяют значение x и, соответственно, условие цикла,
оператором x:=x+1;, но для цикла repeat условие "перевернуто"
("пока x не станет больше20"), а тело не заключено в операторные
скобки.
Зачастую
использование одного из циклов выглядит предпочтительней. Например, обработка
ввода пользователя с клавиатуры удобней с помощью repeat (сначала
пользователь должен нажать клавишу, затем следуют проверки и обработка).
Найти
сумму всех двузначных чисел, которые кратны 9.
Цикл
с параметром
program p; uses crt; var s,i:integer; begin for i:=10 to 99 do if i mod 9 = 0 then s:=s+i; writeln('Сумма = ', s);
end.
С
предусловием
|
program p; uses crt; var s,i:integer; begin i:=10; while i<=99 do begin if i mod 9 = 0 then s:=s+i; inc(i); end; writeln('Сумма = ',s); end.
Цикл
с постусловием
program p;
uses crt;
var s,i:integer;
begin
i:=10;
repeat
if i mod 9 = 0 then s:=s+i;
inc(i);
until i>99;
writeln('Сумма =', s);
end.
Как выйти из программы во время
зацикливания?
Зачастую происходит ситуация, когда
оператор While Pascal выдает зацикливание в написанном программном коде.
Что это означает? Итерация повторяется бесконечное число раз, поскольку
условие всегда истинно. Например, вот фрагмент программы:
While 2>1 do;
Write(1).
В таком случае, чтобы прервать выполнение
задачи, достаточно нажать CTRL + F2.
Задание 2: дана функция Y=5-X^2/2.
Составить таблицу значений с шагом sh=0,5 на промежутке [-5;5]. Алгоритм
действий: задать для переменной Х начальное значение равное -5 (т. е.
начало промежутка); вычислять значение Y, пока переменная x не достигнет
конца указанного отрезка; вывести на экран значения функции и абсциссы (Х);
увеличить Х на заданный шаг.

|
|
|
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.