Автор: Пользователь скрыл имя, 11 Января 2012 в 18:22, лекция
В языке Паскаль имеется три различных оператора цикла, с помощью которых можно запрограммировать повторяющиеся фрагменты программы.
Оператор цикла с параметром:
Шаг равен +1
FOR i:=n TO m DO <оператор>;
Где: FOR –для
i – параметр цикла
n – начальное значение параметра цикла
to - до
m – конечное значение параметра цикла
do - делать
<оператор> - тело цикла
При этом должно выполняться условие: n<m
Циклические алгоритмические конструкции.
В
языке Паскаль имеется три
различных оператора цикла, с
помощью которых можно
Оператор цикла с параметром:
FOR i:=n TO m DO <оператор>;
Где: FOR –для
i – параметр цикла
n – начальное значение параметра цикла
to - до
m – конечное значение параметра цикла
do - делать
<оператор> - тело цикла
При этом должно выполняться условие: n<m
Если тело цикла состоит из нескольких операторов, то они заключаются в операторные скобки begin … end:
FOR i:=n TO m DO begin
<
<
……….
<оператор N>;
end;
Переменная i (счетчик) увеличивается на единицу от начального значения n до конечного значения m при каждом новом значении i исполняется оператор внутри цикла. Параметр цикла, начальное и конечное его значения должны быть описаны как integer.
Если n=m, то цикл выполняется один раз.
Если
n>m, то цикл не выполняется ни разу.
FOR i:=n DOWNTO m DO <оператор>;
Где DOWNTO – переводиться как до.
При этом должно выполняться условие: n>m.
Примеры вычисления сумм, количеств и произведений.
Алгоритм подсчета:
Первоначальное значение S:=0.
Подсчет в цикле: S:=S+{текущее значение}
Пример:
{Вычислить S=1+2+3+….N }
WRITELN ( ´введите натуральное число N= ´ );
READLN(n);
S:=0;
FOR
i:=1 TO n
DO S:=S+i ;
Первоначальное значение k:=0.
Подсчет в цикле: k:=k+1
Пример:
{определить, сколько из заданных точек принадлежит графику }
Program zadacha;
Uses crt;
Var k,i,n:integer;
x,y:real;
begin clrscr;
writeln (‘введите количество точек N= ‘);
readln (n);
k:=0;
For i:=1 to n do begin
Writeln (‘введите координаты’ , i, ‘- ой точки x и y’ );
Readln (x,y);
If y=abs(x) then k:=k+1
end;
if k=0 then writeln (‘таких точек нет’)
else writeln (‘k=’,k);
readkey;
end.
Первоначальное значение p:=1.
Подсчет в цикле: p:=p*{множитель}
Пример:
{Вычислить N!}
Program zadacha;
Uses crt;
Var p,i,n:integer;
begin clrscr;
writeln (‘введите число N= ‘);
readln (n);
p:=1;
For i:=1 to n do p:=p*i;
Writeln (‘факториал числа ‘ , n, ‘=’ , p);
Readkey;
End.
Оператор цикла с предусловием
Формат оператора: While <условие> do <оператор>;
Где: While - пока
<условие> - логическое выражение
do - делать
Оператор выполняется до тех пор, пока <условие>, имеет значение истина, прекращает выполняться, если <условие> принимает значение ложь.
Пример:
Оператор For v:=E1 to E2 do S;
Эквивалентен
V:=E1;
While v<=E2 do begin
S;
v:=succ (v);
End;
Пример:
{подсчитать сумму всех нечетных числе от 101 до 301}
Program zadacha;
Uses crt;
Var s,i:integer;
begin clrscr;
s:=0;
i:=101;
while i<=301 do begin
s:=s+
i:=i+
end;
writeln (‘сумма кубов нечетных числе от 101 до 301= ‘ , s);
readkey;
end.
Пустой оператор
Не задает
никаких действий, кроме определения
своего преемника. Если пустой оператор
фигурирует среди последовательности
операторов, отделения друг от друга “i”,
то его преемником является следующий
по порядку оператор.
Оператор варианта (выбора)
Этот оператор представляет собой обобщение условного оператора:
if <условие 1> then <onepaтop 1> else
if <условие2> then <оператор2> else
- - - - - - - - - - - - - - - -
if <условие N> then <onepaтop N>;
Оператор
выбора позволяет выбрать одно из
нескольких возможных продолжений
программы. Параметром, по которому осуществляется
выбор, служит ключ выбора -выражение любого
порядкового типа.
ВНИМАНИЕ!
Входить внутрь оператора варианта можно только через символ CASE - входить внутрь по какому - либо оператору перехода, находящемуся вне оператора варианта, запрещается.
CASE <ключ выбора> OF <список варианта>
ELSE
где:
CASE -случай
<ключ - выражение любого типа кроме типов
выбора> REAL и STRING
OF - из
<список - одна или более конструкций вида:
варианта> < константа выбора>: <оператор>;
ELSE - иначе
<оператор> - произвольный оператор Турбо Паскаля
end; - конец
Оператор выбора работает следующим образом. В начале вычисляется значение выражения <ключ выбора>, а затем в последовательности операторов <список варианта> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в <списке варианта> не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается оператору, стоящему за словом ELSE.
Часть ELSE <onepaтop> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.
Любому из операторов списка выбора может предшествовать не одна, а несколько констант выбора, разделенных запятыми.
Пример.
1. Программа вводит два числа в первой строке и один из знаков +, -, *, / во второй строке и выводит на экран результат соответствующего арифметического действия.
2. При вводе одного из символов "у" или "Y" выводится на экран слово "ДА", а при вводе "n" или "N" слово "НЕТ".
Метки и операторы перехода
Хотя современная технология структурного программирования основана на принципе "программировать без GOTO", считается, что злоупотребление операторами перехода затрудняет понимание программы, делает ее путаной и сложной в отладке. Тем не менее, в некоторых случаях оператор безусловного перехода используется в программе.
Формат оператора перехода
GOTO <метка>;
Метка - это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Метка располагается непосредственно перед помеченным оператором и отделяется от него ,
двоеточием.
Действие оператора GOTO состоит в передаче управления соответствующему помеченному оператору.
Правила при использовании меток:
извне процедуры (функции) на метку внутри нее невозможна.
Пример: