Цикл с предусловием

End.

Begin

Begin

writeln('Введите числа x и y');

readln(x,y);

ifx<0 then

x:=sqr(x);

y:=sqr(y)*y;

writeln('x = ',x,’ y = ‘,y);

end.

 

II. Операторвыбора(Case) предназначен для выбора одного из нескольких возможных вариантов выполнения программы в зависимости от значения выражения.

 

Полная форма записи Сокращенная форма записи

Case выражение of Конст: оператор1; Конст 2: оператор2; … Конст N: оператор n Else оператор n+1 End; Case выражение of Конст 1: оператор1; Конст 2: оператор2; … Конст N: оператор n End;  

где Case(выбор), of (из), End (конец) - служебные слова;
выражение - должно целочисленного или символьного (char) типа;
Конст 1, Конст 2, Конст N - возможные значения выражения(метки варианта), причем в одной строке их может быть несколько через запятую.

Работа оператора:
1.Вычисляется значение выражения.
2.Это значение сравнивается с константами, стоящими после слова of
3.Если значение выражения равно какой-либо константе, то выполняется оператор, стоящий после этой константы.
4.Если значение выражения не совпадает ни с какой константой, то управление передается оператору, записанному после слова Else ( при полной форме записи) или оператору, следующему после слова End;

 

Если вместо одного оператора в строке нужно использовать несколько, то используют операторные скобки Begin … End;

Пример 4:

При вводе числа от 1 до 7 вывести на экран название соответствующего дня недели.

Program example;
Var a:integer;
Begin
Writeln('введите число от 1 до 7');
Read(a);
Writeln('введенному числу соответствует');
Case a of
1: Writeln('понедельник');
2: Writeln('вторник');
3: Writeln('среда');
4: Writeln('четверг');
5: Writeln('пятница');
6: Writeln('суббота');
7: Writeln('воскресенье')
Else Writeln('нет такого дня недели!')
End;
End.

 

При использовании оператора Case можно указывать диапазон допустимых значений.

 

Пример 5:

Определить введена ли как символьная переменная цифра

Pogram vibor2;

Var a:char;

Readln(a);Begin

 

Case a of
'0'..'9': Writeln('цифра!')
Else Writeln('не цифра!')
End;

Пример 6: Определить по номеру месяца количество дней

 

 

Тема 2.4 Циклы

Циклом называется многократно выполняемая группа операторов.

Параметр цикла – величина, которая при выполнении каждого цикла изменяется на величину шага.

Эталон цикла – некоторая постоянная величина с которой при каждом выполнении цикла сравнивается параметр цикла и как только они окажутся в заданном соотношении происходит выход из цикла.

Циклы бывают арифметические и итерационные. В арифметических циклах количество повторов заранее известно или легко может быть вычислено. Итерационными называются циклы выход из которых осуществляется по достижении определенной точности вычислений

( арифметические и геометрические прогрессии).

Существует два типа циклических алгоритма:

- цикл с предусловием –условие выполнения цикла расположено до тела цикла. В языке Pascal по схеме цикла с предусловием работают оператор цикла с предусловием Whileи оператор цикла с параметром For;

- цикл с постусловием – условие выхода из цикла расположено после тела цикла. По такой схеме работает оператор цикла с постусловием Repeat.

для оператора Whileдля оператора For

x=х1
x≤x2
Тело цикла x=x+x3
Выход из цикла

х=х1,х2,±1
Тело цикла
Выход из цикла

 

 

где Х – параметр цикла;

Х1 – начальное значение параметра цикла;

Х2 – конечное значение параметра цикла;

Х3 – шаг изменения параметра цикла;

Тело цикла - простой или составной оператор языка Pascal.

 

Оператор While Оператор For
a) For x:=x1 to x2 do оператор тела цикла;  
б) While логическое выражение do begin оператор1; . . . oператор n end;  
б) For x:=x2 downto x2 do оператор тела цикла;  
a)While логическое выражение do оператор тела цикла;  

 

 

 

   
в) For x:=x1 to x2 do begin оператор1; . . . oператор n end;

 

Работа оператора While Пока логическое выражение, записанное за While истинно (True), выполняется оператор тела цикла. Как только логическое выражение станет ложно (False) происходит выход из цикла и управление передается следующему оператору в программе.   Работа оператора For Параметру цикла присваивается начальное значение ( прямо в заголовке). Параметр цикла сравнивается с конечным значением параметра цикла. Пока х≤x2 (при положительном шаге) / х≥х2 ( при отрицательном шаге) выполняется тело цикла. После окончания тела цикла происходит автоматически наращивание / уменьшение значения параметра цикла на величину шага (+1 /-1). To, downto – служебные слова, задающие величину шага (+1 или -1 ); Новое значение параметра цикла снова сравнивается с конечным значением. Выход из цикла осуществляется при х>х2 (при положительном шаге) / х<х2 (при отрицательном шаге). Параметры цикла (х, х1 и х2- только порядкового типа)

Repeat оператор1; . . . oператор   Until логическое выражение;  
Цикл с постусловием

 

х=х1
x>x2
Тело цикла
нет
Выход из цикла

 

    Логическое выражение –условие выхода из цикла; Тело цикла – любое количество операторов языка Pascal.
  Работа оператора Repeat Повторять операторы тела цикла пока логическое выражение, записанное за Until ложно (False). Когда логическое выражение станет истинно (True) произойдет выход из цикла.