- •Составной оператор
- •Примеры составных операторов :
- •Выбирающие операторы: Условный оператор
- •1 Вариант:
- •2 Вариант:
- •Выбирающие операторы: оператор варианта
- •2,3 : Writeln(‘Выходной день’);
- •4,5,6,0 : Writeln(‘Безрадостный рабочий день’);
- •1 : Writeln(‘Занятие по программированию’)
- •1 Вариант: умножение и сравнение
- •2 Вариант: 3 логических операции. Сложность 2-го варианта меньше
- •Операторы повторения
- •Оператор цикла с параметром
- •Var MinX, MaxX, Step: Real;
- •X, y : Real; Coef : Real;
- •I, n : Integer;
- •Семантика Оператор (тело цикла) выполняется до тех пор, пока условие истинно. Если при первой проверке условие оказалось ложным, оператор не выполняется ни разу. Пример:
- •Var a, b, c : Integer;
- •X : Integer; y : Real;
- •Var Fib1, Fib2 : Integer; Buf : Integer;
- •I : Integer;
- •Var u, V, Root : Real;
Лекция 5. Операторы управления ЯП.
Операторы выбора: типы, синтаксис и семантика. Выбирающие операторы ЯП Паскаль.
Техника программирования ветвлений.
Операторы повторения: типы, синтаксис и семантика.
Техника программирования циклов.
Предусловия, постусловия и инварианты циклов.
Представление о доказательном программировании.
Составной оператор
Несколько операторов, выполняемых последовательно, можно объединять в один составной оператор. Операторы - компоненты Составного оператора выполняются в порядке их написания. Служебные слова Begin и End играют роль операторных скобок.
Примеры составных операторов :
а) Begin
Write(‘Введите координаты вектора: ‘);
Readln(a, b, c);
Length := sqrt(a*a + b*b+ c*c);
Write(‘длина (a,b,c) равна ‘, Length)
End
б) Begin writeln(‘уравнение корней не имеет’) End
Выбирающие операторы: Условный оператор
Выбирающие операторы предназначены для выделения из составляющих их операторов - компонент одного - единственного, который и выполняется
Выбирающие операторы реализуют управляющую структуру “ветвление”
Две формы условного оператора :
If <условие> then < оператор >
IF <условие> then < оператор > else <оператор>
соответствуют базовым управляющим структурам короткого и полного ветвления. Условие - это выражение типа Boolean .
Условный
оператор
Примеры условных операторов :
а) If IntFun(i) mod 3 = 0 then write(i)
б) If (a11*a22 = a12*a21) And
((a11*b2 <> a12*b1) Or
(b1*a22 <> b2*a21))
then Write(‘система решений не имеет’)
else Write(‘система имеет решения’)
В теле условного оператора может использоваться и другой условный оператор. Многозначные ветвления используют для реализации дерева решений.
If a >0
Then if D >0
Then Write (‘a > 0, D > 0’)
Else Write (‘a > 0, D <= 0’)
Else If D > 0
Then Write (‘a <= 0, D > 0’)
Else Write (‘a <= 0, D <= 0’)
Следующая конструкция языка, состоящая из вложенных ветвлений допускает два различных варианта синтаксического анализа.
If <усл1> then If <усл2> then <оператор1> else <оператор2>
1 Вариант:
If <усл 1>
then begin
If <усл 2> then <оператор 1> else <оператор 2>
end
2 Вариант:
If <усл 1>
then begin If <усл 2> then <оператор 1> end
else <оператор 2>
Для устранения двусмысленности в языке избран 1-ый вариант:
разделителю else соответствует ближайший предыдущий разделитель then.
Выбирающие операторы: оператор варианта
Оператор варианта состоит из выражения, называемого селектором, и списка операторов, каждый из которых отмечен меткой - константой того же типа, что и селектор.
Селектор должен быть скалярного типа, но не вещественного. Метка – данное того же типа
Case <селектор> of
<список меток варианта> : < оператор >;
. . . . . . . . . .
< список меток варианта > : < оператор >
[else < оператор >]
end
Пример:
case DayNumber mod 7 of
2,3 : Writeln(‘Выходной день’);
4,5,6,0 : Writeln(‘Безрадостный рабочий день’);
1 : Writeln(‘Занятие по программированию’)
end;
case ch of
‘a’,’b’,’c’ : ch := succ(ch);
‘y’,’z’ : ch := pred(ch);
‘f’,’g’ : {пустой вариант}
else ch := pred(pred(ch)
end;
Техника программирования ветвлений.
1. Реализация дерева решений вложенными ветвлениями
If a >0
Then if D >0
Then Write (‘a > 0, D > 0’)
Else Write (‘a > 0, D <= 0’)
Else If D > 0
Then Write (‘a <= 0, D > 0’)
Else Write (‘a <= 0, D <= 0’)
2. Последовательный многоуровневый анализ условий
If Len < 158 then Size := 1
Else If Len < 164 then Size := 2 {Len >= 158}
Else If Len < 172 then Size := 3 {Len >= 164}
Else Size := 4 {Len >= 172}
4. Последовательный одноуровневый анализ условий
begin
If A mod 3 = 0 then Writeln(‘Число делится на 3’);
If A mod 5 = 0 then Writeln(‘Число делится на 5’);
If A mod 7 = 0 then Writeln(‘Число делится на 7’);
end;
5. Порядок анализа зависимых условий
If
D
< 0
Then
Writeln
(‘No Solutions’) Else
If D
> 0 Then
Writeln(‘Two Solutions’)
Else
Writeln
(‘One Solution’)
If
D
= 0
Then
Writeln
(‘One Solution’) Else
If D
< 0 Then
Writeln(‘No Solutions’)
Else
Writeln
(‘Two Solutions’)
Техника использования составных условий
Пример: требуется выяснить, является ли одно из двух чисел A, B равным нулю.
1 вариант условия: A*B = 0 2 вариант условия: (A = 0) Or (B = 0)