Разветвляющиеся алгоритмы.
Сформулируйте определение разветвляющегося алгоритма ?
- Разветвляющийся алгоритм – алгоритм, в котором в зависимости от выполнения или не выполнения некоторого условия совершается либо одна, либо другая последовательность действий.
Какие формы ветвления вы знаете?
1)Полная;
2)Неполная.
Как записывается полная(неполная) форма ветвления на языке Паскаль?
1) If
3) Case of
then
значение 1:
выполняемый оператор 1;
else ;
значение 2:
выполняемый оператор 2;
-------------
2) If
значение n:
then ;
выполняемый оператор n;
end;
Как выглядит блок-схема полного(неполного) ветвления?
вход
1)
вход
2)
к
да
нет
p
..
..
выход
выход
вход
вход
4)
3)
p
выход
выход
b readln(a,b); if ab then Вывод ab c:=a+b c:=2*c Вывод c конец " width="640"
начало
Program sum;
Ввод
a,b
Var a, b, c:integer;
Begin
да
нет
ab
readln(a,b);
if ab then
Вывод
ab
c:=a+b
c:=2*c
Вывод
c
конец
Составной оператор
отделенных друг от друга точкой с
запятой и ограниченная Begin….End.
Пример:
....
Begin {начало}
... {группа операторов}
End; {конец}
....
b readln(a,b); if ab then Вывод ab begin группа операторов writeln(’ab’); c:=a+b c:=a+b; end; c:=2*c c:=2*c; writeln(c); Вывод c End. конец " width="640"
начало
Program sum;
Ввод
a,b
Var a, b, c:integer;
Begin
да
нет
ab
readln(a,b);
if ab then
Вывод
ab
begin
группа
операторов
writeln(’ab’);
c:=a+b
c:=a+b;
end;
c:=2*c
c:=2*c;
writeln(c);
Вывод
c
End.
конец
Пример 1 : имеется коробка карандашей, надо
поточить все карандаши в этой коробке.
начало
начало
точить 1-ый карандаш
взять карандаш
точить 2-ой карандаш
точить карандаш
точить 3-ий карандаш
коробка
пуста?
нет
точить 4-ый карандаш
да
точить 5-ый карандаш
конец
точить 6-ой карандаш
конец
Циклические алгоритмы
- Алгоритм, предусматривающий многократное повторение одного и того же действия над новыми данными, называется циклическим .
Различают три вида циклов:
-Цикл с постусловием;
-Цикл с предусловием;
-Цикл с параметром.
Пример 1 : имеется коробка карандашей, надо
поточить все карандаши в этой коробке.
начало
начало
точить 1-ый карандаш
взять карандаш
точить 2-ой карандаш
точить карандаш
точить 3-ий карандаш
коробка
пуста?
нет
точить 4-ый карандаш
да
точить 5-ый карандаш
конец
точить 6-ой карандаш
конец
Цикл с постусловием
Особенности:
вход
1)
тело цикла
расположено до
проверки условия
s
р
нет
2)
цикл выполняется хотя бы 1 раз
да
выход
Цикл с постусловием
( цикл - до)
Repeat
;
;
.....................
Until
;
Пример 2: собирай грибы, пока в корзине
есть место.
начало
есть место ?
нет
да
собирай грибы
конец
Цикл с предусловием
Особенности:
вход
тело цикла
1)
расположено после
проверки условия
нет
р
да
2)
Цикл может
ни разу не
выполниться
s
выход
Цикл с предусловием
(цикл - пока)
While do
Пример 3: описать процесс обучения в школе.
начало
K:=1
K
Учебный год
K:=K+1
конец
цикл с параметром
вход
Особенности:
Задание начальных
параметров цикла
1)
число повторений
цикла известно
заранее или может
быть вычислено
нет
Проверка условия
да
2)
Тело цикла
параметр только
целого типа
(integer)
Задание новых
значений параметров
выход
, то For i:=n downto 1 do ; downto автоматически уменьшает значение параметра на 1 " width="640"
цикл с параметром
параметр
значение 2
значение 1
For i:=1 to n do ;
to автоматически увеличивает
значение параметра на 1
Если , то
For i:=n downto 1 do ;
downto автоматически уменьшает
значение параметра на 1