Слайд 2
План лекции
Разветвленный алгоритм
Примеры разветвленных алгоритмов
Условный оператор
Составной оператор
Вложенные условные
операторы
Оператор выбора
Решение задач
Слайд 3
Разветвленный алгоритм
Разветвленным алгоритмом называется такой алгоритм, в котором
выбирается один из нескольких возможных путей (вариантов) вычислительного процесса.
Ветвью
алгоритма называется каждый подобный путь.
Слайд 4
Полная разветвленная алгоритмическая структура
Действие 1
Действие 2
. . .
условие
.
. .
да
нет
Слайд 5
Неполная разветвленная алгоритмическая структура
Действие 1
. . .
условие
. .
.
да
нет
Слайд 6
Условный оператор
Оператор if выбирает между двумя вариантами развития
событий:
if
(если)
then
(тогда)
[else ];
(иначе)
Обратите внимание,
что перед словом else (когда оно присутствует, конечно же) символ ";" не ставится - ведь это разорвало бы оператор на две части.
Слайд 7
Условный оператор
Условный оператор if работает следующим образом:
Сначала вычисляется
значение - это может быть любое выражение, возвращающее
значение типа boolean.
Затем, если в результате получена "истина" (true), то выполняется оператор, стоящий после ключевого слова then, а если "ложь" (false) - без дополнительных проверок выполняется оператор, стоящий после ключевого слова else. Если же else-ветвь отсутствует, то не выполняется ничего.
Слайд 8
Составной оператор
Составной оператор - объединение нескольких операторов в
одну группу. Группа операторов внутри составного оператора заключается в
операторные скобки (begin-end).
begin
оператор 1;
оператор 2;
end;
Слайд 9
Составной условный оператор
Если в качестве оператора должна выполниться
серия операторов, то они заключаются в операторные скобки begin-end.
Конструкция Begin ... End называется составным оператором.
if <логическое выражение>
then
begin
оператор 1;
оператор 2;
...
end
else
begin
оператор 1;
оператор 2;
...
end;
Слайд 10
Пример разветвленного алгоритма
Задача 1. Вычислить отношение двух целых
чисел.
Var
a,b : integer;
ratio : real;
Begin
writeln(‘Введите два числа: ‘);
read
(a,b);
ratio:= a / b;
writeln (‘Отношение = ‘,ratio:6:2);
End.
Когда вы введете 0 для второго значения, программа напечатает сообщение об ошибке
(Divide by zero - Деление на ноль) и остановится.
Слайд 11
Ввод a,b
Вывод ratio
b=0
да
нет
Делить на 0 нельзя.
ratio=a/b
Program z1 (input,
output);
Var
a,b: integer;
ratio :real;
Begin
writeln (‘Введите a, b’);
read (a, b);
if b=0 then
writeln (‘Делить на 0
нельзя ‘)
else
begin
ratio:=a/b; write (ratio)
end
End.
начало
конец
Слайд 12
Полная разветвленная структура
Задача 2. Вывести на экран большее
из двух данных чисел.
Program z2;
Var
x, y : integer;
{вводимые числа}
Begin
writeln(‘Введите 2 числа ‘); {вводим два целых числа через пробел}
readln(x,y);
if x>y
then
writeln (x) {если х больше y, то выводим х}
else
writeln (y) {иначе выводим y}
readln;
End.
Слайд 13
Неполная разветвленная структура
Задача 3. Составить программу, которая, если
введенное число отрицательное меняет его на противоположное.
Program Chisla;
Var
x
: integer; {вводимое число}
Begin
writeln(‘Введите число ‘); {вводим целое число}
readln(x);
if x<0
then
x:=-x;
writeln (x);
readln;
End.
Слайд 14
Вложенные условные операторы
Program z4;
Var
a, b, c :
integer;
Begin
writeln(‘Введите числа a, b, c’);
readln(a,b,c);
if (a<=b) and (b<=c)
then
begin
a:=sqr(a);
b:=sqr(b);
c:=sqr(c);
end
else
if (a>b) and (b>c)
then
begin
b:=a;
c:=a;
end
else
begin
a:=-a;
b:=-b;
c:=-c;
end
writeln(a,b,c);
readln;
End.
Задача 4. Даны целые числа a, b, c. Если a ≤ b ≤ c, то все числа заменить их квадратами, если a>b>c, то каждое число заменить наибольшим из них, в противном случае сменить знак каждого числа.
Слайд 15
Оператор выбора
Оператор case позволяет сделать выбор между несколькими
вариантами:
case of
: ;
[<список_констант> : <один_оператор>;]
[<список_констант> : <один_оператор>;]
[else <один_оператор>;]
end;
Слайд 16
Оператор выбора
Существуют дополнительные правила, относящиеся к структуре этого
оператора:
Переключатель должен относиться только к порядковому типу данных, но
не к типу longint.
Переключатель может быть переменной или выражением.
Список констант может задаваться как явным перечислением, так и интервалом или их объединением.
Повторение констант не допускается.
Тип переключателя и типы всех констант должны быть совместимыми
Слайд 17
Оператор выбора
Пример оператора выбора:
case symbol of
'a'..'z',
'A'..'Z' : writeln('Это латинская буква');
'а'..'я', 'А'..'Я' :
writeln('Это русская буква');
'0'..'9' : writeln('Это цифра');
' ',#10,#13,#26 : writeln('Это пробельный символ');
else writeln('Это служебный символ');
end;
Слайд 18
Оператор выбора
Задача 5. Написать программу преобразования цифр в
слова.
Program z5;
Var
a, b, c : integer;
Begin
writeln(‘Введите
цифру ‘);
readln(a);
case a of
0 : writeln (‘ноль‘);
1 : writeln (‘один‘);
2 : writeln (‘два‘);
3 : writeln (‘три‘);
4 : writeln (‘четыре‘);
5 : writeln (‘пять‘);
6 : writeln (‘шесть‘);
7 : writeln (‘семь‘);
8 : writeln (‘восемь‘);
9 : writeln (‘девять‘)
else writeln (‘Это число не является цифрой‘);
end;
readln;
End.
Слайд 19
Решение задач
Задача 6. Чтобы получить одну молекулу серной
кислоты H2SO4 нужно 2 атома водорода (Н), 1 атом
серы (S) и 4 атома кислорода (О).В химическом реакторе имеется А атомов водорода, В атомов кислорода и С атомов серы. Составьте алгоритм или напишите программу, вычисляющую, сколько молекул серной кислоты может получится из такого количества атомов?
Слайд 20
Решение задач
Алгоритм решения этой задачи может быть записан
следующим образом:
Переменные: тип -
целый A,B,C,M1,M2,K;
Ввести A,D,C;
Вычислить целую часть от деления А на 2
М1=цел.часть (А/2);
Вычислить целую часть от деления B на 4
М2=цел.часть (B/4);
Найти минимальное из трех чисел С, М1, М2
K=min(C,M1,M2);
Выдать на печать: В редакторе образуется К молекул кислоты.
Слайд 21
Решение задач
Задача 7. Определить принадлежит ли точка А(X0,Y0)
данной фигуре.
Слайд 22
Решение задач
Задача 8. Напишите программу, которая вычисляет стоимость
междугородного телефонного разговора (цена одной минуты определяется расстоянием до
города, в котором находится абонент). Исходными данными для программы являются код города и длительность разговора. Ниже приведены коды некоторых городов.