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