Слайд 1Структурные операторы управления
Pascal
Слайд 2Назначение и виды
Данные операторы включают в себя другие операторы и
управляют последовательностью их выполнения.
Виды:
составной;
условный;
выбора
цикла.
Слайд 3Составной оператор
Составной оператор объединяет группу операций в единое целое, после
чего они могут считаться одним оператором.
Формат:
begin
;
end;
Слайд 4Условный оператор
Условный оператор позволяет выбирать одно из двух возможных действий
в зависимости от условия.
Условие – это свойство величин, которое может
соблюдаться или не соблюдаться для их конкретных значений. Условие представляет собой логическое выражение, значение которого является «True»/ «False».
Примеры:
X<>Y
S mod 3=0
D (логическая переменная);
Слайд 5Условный оператор
Логическое выражение может быть сложным, включающим логические операции: NOT,
OR, AND, XOR. Тогда говорят о составном условии.
Примеры:
(a >90) or
(b >90) or (c >90) - 'Треугольник - тупоугольный'
(a<90) and (b <90) and (c <90) - 'Треугольник - остроугольный'
Слайд 7Условный оператор
Формат полной формы
if
then
else
;
Слайд 8Условный оператор
Пример:
var a,b:real;
begin
writeln(’ введите 2 числа’);
readln(a,b);
if b = 0 then
writeln(’ошибка ввода’)
else
writeln(’ Result := ’, a/b);
readln
end.
Слайд 9Условный оператор
var X, Y, Max: Integer;
begin
..
if X > Y then
Max
:= X
else
Max := Y;
..
end;
Слайд 10Условный оператор
if
then
;
Формат неполной формы
Слайд 11Условный оператор
Пример:
var a, Result :real;
begin
writeln(’ введите число’);
readln(a);
if a >= 0
then Result := sqrt( a);
…
Readln
end.
Слайд 12Правила оформления условного оператора
Отдельные составные части сложного логического выражения
заключаются в скобки.
После слова then и перед словом else
ставить «;» нельзя.
После Then и Else должен быть один оператор, иначе операторы заключаются в операторный блок.
В случае “вложенных” условных операторов компилятор всегда считает, что else относится к последней из конструкций if, в которой не было раздела else
Слайд 13Например, в конструкции
if then
if then
else ;
else будет отнесено компилятором ко второй конструкции if
Слайд 14Если же необходимо отнести else к первому if
if then
begin
if then
end
else ;
Нет
Да
условие
условие
Да
Нет
S2
Слайд 15Оператор выбора
Оператор выбора позволяет выбирать одно из нескольких возможных действий
(операторов).
Формат:
case of
: ;
...
значений n>: <оператор n>;
[else <оператор>]
end;
Слайд 16Правила оформления оператора выбора
выражение (переключатель) должно иметь порядковый тип
после
списка значений должен быть один оператор. Если в какой –
либо ветви необходимо выполнить несколько операторов, то используется составной оператор.
Слайд 17Списки значений
могут содержать одно или несколько разделенных запятыми возможных
значений константных выражений; а также диапазоны значений;
константы и константные выражения
должны быть совместимы по типу с объявленным выражением;
не могут включать переменные и многие функции;
не должны пересекаться;
должны располагаться в возрастающем порядке (рекомендовано для получения оптимального кода).
Слайд 18Определить порядок целого числа
N от 0 до 999
Var
N: integer;
…
Randomize; N:=Random(1000);
case N of
0..9: writeln('однозначное');
10..99: writeln('двузначное');
100..999: writeln('трехзначное')
end;
Слайд 19Определить тип символа
Var symbol: Char;
…
case symbol of
’0’..’9’: writeln('это
цифра');
’a’..’z’: writeln('стр.буква');
’A’..’Z’: writeln('прописная буква')
else writeln(‘Это др. символ’)
end;
Слайд 20Циклы
Цикл – это группа последовательных действий, завершающаяся переходом при выполнении
некоторого условия на первую команду этой группы.
Существуют два основных
вида циклов:
Цикл с известным числом повторений.
Пример такого цикла- вычисление суммы последовательности чисел:
X=X1+X2+…+Xn= nk=1 Xk
Циклы с неизвестным количеством повторений.
Например, в задаче обработки файла передача файла закончится, как только будет прочитан “конец файла”.
Слайд 21Структура цикла:
Начало: подготовка цикла.
Проверка: определяет момент выхода из цикла.
Тело цикла: содержит рабочую часть и продвижение (обновление параметра или
величины, его заменяющей).
Слайд 22Цикл с предусловием
Позволяет многократно выполнять одни и те же действия
тела цикла в зависимости от некоторого условия, проверяемого каждый раз
перед выполнением тела цикла.
while <условие работы > do
<тело цикло>;
Слайд 23Цикл с предусловием
- это логическое выражение, в
случае истинности которого выполняется тело цикла.
- это один
оператор или совокупность операторов, объединенных в один составной оператор.
В теле цикла обязательно должен изменятся параметр, от которого зависит условие цикла. Иначе произойдет зацикливание.
Слайд 24 Const N=10;
Var X, S: real;k:integer;
Begin
Writeln (‘Input N numbers with Enter:
’);
k:=1; S:=0 // начальные установки (инициализация);
while k
End;
Writeln (‘Srednee = ’, S/N:10:4);
Readln;
End.
Слайд 25Цикл с постусловием
Позволяет многократно выполнять одни и те же действия
тела цикла в зависимости от некоторого условия, проверяемого каждый раз
после выполнения тела цикла.
repeat
<тело цикла>
until <условие окончания цикла>;
Слайд 26 Const N=10;
Var X, S: real; k:integer;
Begin
Writeln (‘Input N number with
Enter: ’);
k:=1; S:=0 // начальные установки
Repeat
Readln(X);
S:=S+abs(X);
Inc(k)
Until k>N;
Writeln (‘Srednee =
’, S/N:10:4);
Readln;
End.
Слайд 27Цикл с параметром
Позволяет многократно выполнять одни и те же действия
в теле цикла в зависимости от значения параметра (счетчика повторений),
изменение которого определено в виде начального и конечного значения в заголовке тела цикла
for <пар.цикла>:=<нач_знач> to <кон.знач> do
<тело цикла>;
for <пар.цикла>:=<нач_знач> downto <кон.знач> do < тело цикла >;
Слайд 28Цикл с парметром
- переменная любого порядкового типа
-
начальное значение - выражение того же типа;
- конечное
значение - выражение того же типа;
<оператор> - произвольный оператор.
Слайд 29 Const N=10;
Var X, S: real; k:integer;
Begin
Writeln (‘Input your number with Enter:
’);
S:=0; // начальные установки (инициализация)
For k:=1 to N do
Begin
Readln(X);
S:=S+abs(X);
End;
Writeln (‘Srednee = ’, S/N:10:4);
Readln;
End.
Слайд 30Пример для подсчета любых сумм первых N чисел - положительных
и отрицательных:
Sum := 0;
if N >= 0 then
for i
:= 1 to N do
Sum := Sum + i
else
for i := -1 downto N do
Sum := Sum + i ;