1.82M
Категория: ИнформатикаИнформатика

Алгоритмическая конструкция ветвление. Основные алгоритмические конструкции. Информатика. 8 класс

1.

АЛГОРИТМИЧЕСКАЯ
КОНСТРУКЦИЯ ВЕТВЛЕНИЕ
ОСНОВНЫЕ
АЛГОРИТМИЧЕСКИЕ
КОНСТРУКЦИИ

2.

Ключевые слова
ветвление
полная форма ветвления
неполная форма ветвления
разветвляющийся алгоритм
простое условие
составное условие

3.

Ветвление
Ветвление - алгоритмическая конструкция, в которой в
зависимости от результата проверки условия («да» или «нет»)
предусмотрен выбор одной из двух последовательностей
действий (ветвей).
Алгоритмы,
в
основе
которых
лежит
структура
«ветвление», называют разветвляющимися.

4.

Полная форма ветвления
если <условие>
то <действие 1>
иначе <действие 2>
все
Да
Действие 1
Пример
алг правописание частиц НЕ, НИ
нач
если частица под ударением
то писать НЕ
иначе писать НИ
все
кон
Условие
Нет
Действие 2

5.

Неполная форма ветвления
если <условие>
то <действие 1>
все
Да
Действие 1
Пример:
алг сборы на прогулку
нач
если на улице дождь
то взять зонтик
все
кон
Условие
Нет

6.

Операции сравнения
A<B
А меньше В
A <= B
А меньше или равно В
A=B
А равно В
A>B
А больше В
A >= B
А больше или равно В
A <> B
А не равно В

7.

Вычисление функции f(x)=|x|
Начало
Список данных
X, Y -вещ
Х
да
Х>0
Y:=X
нет
Y:=-X
Y
Конец

8.

Простые и составные условия
Простые условия состоят из одной операции сравнения.
Составные условия получаются из простых с помощью
логических связок and (и), or (или), not (не).
Пример. Алгоритм определения принадлежности точки Х
отрезку [A; B].
A, B, X
да
(X>=A) and (X<=B)
ДА
нет
НЕТ
Ответ:
Ответ:Не
Принадлежит
принадлежит
A=2
B=4
X=4
B=6
X=6

9.

Наибольшая из 3-х величин
Переменной Y присваивается значение большей из трёх
величин A, B и C.
YY
B==>Y
AB
C
Шаг
Y:=A
да
B>Y
нет
Y:=B
1
Константы
А
В
С
10
30
20
Переменная
Y
10
2
да
Y:=C
C>Y
30 > 10 (Да)
нет
3
Условие
30
4
20 > 30 (Нет)
Ответ: Y = 30

10.

Разветвляющийся алгоритм для Робота
В какую клетку переместится Робот после выполнения
следующего фрагмента алгоритма.
если справа свободно или снизу свободно
то закрасить
все
если справа стена
то влево
все
если слева стена
то вправо
все
б а

11.

Самое главное
Для записи любого алгоритма достаточно трёх
основных алгоритмических конструкций (структур):
следования, ветвления, повторения.
Ветвление - алгоритмическая конструкция, в которой
в зависимости от результата проверки условия (да или
нет)
предусмотрен
выбор
одной
из
двух
последовательностей действий (ветвей).
Алгоритмы, в основе которых лежит структура
«ветвление», называют разветвляющимися.

12.

Опорный конспект
Ветвление - алгоритмическая конструкция, в которой в
зависимости от результата проверки условия (да или нет)
предусмотрен выбор одной из двух последовательностей действий
(ветвей).
Алгоритмы, в основе которых лежит структура «ветвление»,
называют разветвляющимися.
Да
Действие 1
Условие
Нет
Действие 2
Полная форма ветвления
Да
Условие
Нет
Действие 1
Неполная форма ветвления

13.

АЛГОРИТМИЧЕСКАЯ
КОНСТРУКЦИЯ ПОВТОРЕНИЕ
ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ
КОНСТРУКЦИИ

14.

Ключевые слова
повторение
циклические алгоритмы
тело цикла
цикл
• с заданным условием продолжения работы
• с заданным условием окончания работы
• с заданным числом повторений

15.

Повторение
Повторение
последовательность
действий,
выполняемых многократно.
Алгоритмы, содержащие конструкцию повторения,
называют циклическими или циклами.
Последовательность
действий,
многократно
повторяющаяся в процессе выполнения цикла, называется
телом цикла.

16.

Типы циклов
Могут быть
Заданы условия
продолжения работы
Заданы условия
окончания работы
Пока есть кирпич
Задано число
повторений
Ровно 100 кирпичей
Пока не наступит
ночь

17.

Цикл с заданным условием продолжения
работы
(цикл-ПОКА, цикл с предусловием)
нц пока <условие>
<тело цикла (последовательность действий)>
кц
нет
Условие
да
Тело цикла

18.

Погрузка кирпичей
алг погрузка
нач
нц пока есть кирпичи
взять один кирпич
если кирпич целый
то положить кирпич в машину
иначе отложить кирпич в сторону
все
кц
кон

19.

Цикл с заданным условием окончания работы
(цикл-ДО, цикл с постусловием)
Тело цикла
нет
Условие
да
Запись на алгоритмическом языке:
нц
<тело_цикла (последовательность действий)>
кц при <условие>

20.

Цикл с постусловием
Пример. Алгоритм по выучиванию наизусть четверостишия.
алг четверостишие
нач
нц
прочитать четверостишие по книге 1 раз
прочитать четверостишие наизусть
кц при не сделал ошибку
кон

21.

Задача о тренировках
План тренировок:
В 1-й день пробежать 10 км.
Каждый
следующий
день
увеличивать расстояние на 10% от
результата предыдущего дня.
Как только дневной пробег
достигнет или превысит 25 км,
прекратить
увеличение
и
пробегать 25 км ежедневно.
Начиная с какого дня спортсмен
будет пробегать 25 км?
Пусть x — количество
километров, которое
спортсмен пробежит в
некоторый i-й день. Тогда в
следующий (i + 1)-й день он
пробежит x + 0,1x километров
(0,1x — это 10% от x).
Начало
Список данных
i – цел
x – вещ
i := 1
x := 10
i := i +1
x := x +0.1*x
x>= 25
да
i
нет
Конец

22.

Цикл с заданным числом повторений
(цикл-ДЛЯ, цикл с параметром)
i = i1, i2
Тело цикла
Запись на алгоритмическом языке:
нц для i от i1 до i2 шаг R
<тело_цикла (последовательность действий)>
кц

23.

Цикл с заданным числом повторений
алг переправа
нач
нц для i от 1 до 5
два мальчика переправляются на противоположный берег.
один мальчик высаживается на берег
другой мальчик плывёт обратно
солдат переправляется через реку
мальчик возвращается на исходную позицию
кц
кон

24.

Повторение
Пример. Для исполнителя Робот цикл с известным числом
повторений реализуется с помощью следующей конструкции:
нц <число повторений> раз
<тело цикла>
кц
Так, если правее Робота не встретится препятствий, то,
выполнив приведённый ниже алгоритм, он переместится на
пять клеток вправо и закрасит эти клетки:
алг
нач
нц 5 раз
вправо; закрасить
кц
кон

25.

Самое главное
Для записи любого алгоритма достаточно трёх основных
алгоритмических конструкций (структур): следования, ветвления,
повторения.
Повторение - алгоритмическая конструкция, представляющая
собой последовательность действий, выполняемых многократно.
Алгоритмы, содержащие конструкцию «повторение», называют
циклическими или циклами.
Последовательность действий, многократно повторяющаяся в
процессе выполнения цикла, называется телом цикла.
В зависимости от способа организации повторений различают три
типа циклов:
1) цикл с заданным условием продолжения работы;
2) цикл с заданным условием окончания работы;
3) цикл с заданным числом повторений.

26.

Опорный конспект
Повторение - алгоритмическая конструкция, представляющая
собой последовательность действий, выполняемых многократно.
Алгоритмы, содержащие конструкцию «повторение», называют
циклическими или циклами.
Последовательность действий, многократно повторяющаяся в
процессе выполнения цикла, называется телом цикла.
Тип цикла
С заданным
условием
продолжения
работы
С заданным
условием
окончания
работы
С заданным
числом
повторений
Цикл - ПОКА
Цикл - ДО
Цикл - ДЛЯ

27.

Кумир
Робот может выполнять команды: вверх, вниз, вправо,
влево, закрасить.
Робот может проверять условия: сверху свободно, снизу
свободно, справа свободно, слева свободно, добавление
частицы не меняет условие на противоположное. Не сверху
свободно, не снизу свободно, не справа свободно, не слева
свободно.
Полное ветвление
(запись в алгоритмическом языке)
если <условие>
. . то <команда1>
. . иначе <команда2>
все
Пример:
использовать Робот
алг ветвление_полное
нач
. если сверху свободно
. . то вверх
. . иначе вниз
. все
кон
Да
Вверх
Сверху
свобод
но
Нет
Вниз

28.

Кумир
Неполное ветвление
(запись в алгоритмическом языке)
если <условие>
. . то <команда1>
все
Пример:
использовать Робот
алг ветвление_неполное
нач
. если сверху свободно
. . то вверх
. все
кон
Да
Вверх
Сверху
свобод
но
Нет

29.

Кумир
Цикл с предусловием (пока)
(запись в алгоритмическом языке)
нц пока <условие>
<команда>
кц
Пример:
использовать Робот
алг Линия
нач
нц пока сверху свободно
закрасить
вверх
кц
кон
Нет
Сверху
свобод
но
Да
Закрасить
вверх

30.

Кумир
Цикл с постусловием (при)
(запись в алгоритмическом языке)
нц
<команда>
кц_при <условие>
Пример:
использовать Робот
алг Линия
нач
нц
закрасить; вверх
кц_при слева свободно
кон
Закрасить
вверх
Да
Слева
свобод
но
Нет

31.

Кумир
Цикл на число повторений (раз)
(запись в алгоритмическом языке)
нц N раз
<команда>
кц
Пример:
использовать Робот
алг столбик
нач
. нц 5 раз
. . закрасить
. . вверх
. кц
кон
Да
5 раз
Нет
Закрасить
вверх

32.

Кумир
Вспомогательный алгоритм (процедура)
•Алгоритм по которому решается некоторая подзадача из основной задачи и который, как правило выполняется
многократно, называется вспомогательным алгоритмом.
•Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или
процедурой.
•Вспомогательный алгоритм вызывается из основной программы через имя. Вспомогательный алгоритм
записывается после основного алгоритма. У вспомогательного алгоритма обязательно должно быть имя.
использовать Робот
алг
нач
вниз
квадрат
вниз
вниз
кон
алг квадрат
нач
закрасить
вправо
закрасить
вниз
закрасить
влево
закрасить
кон

33.

Вложенные циклы и ветвления
• При решении некоторых задач с роботом необходимо использовать вложенные циклы или ветвления.
• Цикл называется вложенным, если он размещается внутри другого цикла.
• Рассмотрим вложенный цикл на примере цикла пока.
• Мы знаем, что цикл состоит из заголовка цикла, который определяет количество повторений тела цикла.
• Тело цикла, это та часть цикла, которая повторяется при выполнении цикла.
• Телом цикла может быть команда, несколько команд, а также другой цикл или ветвление.
• В том случае, когда телом цикла является другой цикл или ветвление, они называются вложенными.
Внешний цикл
Вложенный цикл
На первом проходе, внешний цикл вызывает
внутренний, который исполняется до своего
завершения, после чего управление
передается в тело внешнего цикла. На
втором проходе внешний цикл опять
вызывает внутренний. И так до тех пор, пока
не завершится внешний цикл.
Нет
Услови
е
Да
Условие
1
Да
а
Команда 1
Нет
Внутренний
(вложенный)
цикл

34.

Кумир
Задача 1 Робот находится на стене, в которой есть отверстия,
двигаясь вдоль стены вправо, робот должен закрашивать все
клеточки, где есть отверстия.
Составим алгоритм решения задачи с вне6шим циклом пока и
вложенным циклом пока.
использовать Робот
алг
нач
. нц пока справа свободно
нц пока снизу свободно
. закрасить; вправо
. . кц
. . вправо
. кц
кон

35.

Варианты решения
использовать Робот
алг
нач
. нц пока справа свободно
. . если снизу свободно
. . . то закрасить; вправо
. . . иначе вправо
. . все
. кц
кон
использовать Робот
алг
нач
. нц
. . вправо
. . нц пока снизу свободно
. . . закрасить; вправо
. . кц
. кц при не справа свободно
кон

36.

Вопросы и задания
Известно,
31 января
2011 года9 приходится
Дополнитечто
алгоритм
из примера
так, чтобы сна
его
понедельник.
Какиебыло
значения
быть присвоены
помощью можно
найтидолжны
наибольшую
из четырёх
Определите,
Приведите
Запишите
Какие
Запишите
алгоритмы
алгоритм
пример
алгоритм
есть ли
называют
разветвляющегося
определения
среди
правописания
цифр
разветвляющимися?
заданного
принадлежности
приставок,
алгоритма
целого
из
Составьте
алгоритм,
с
помощью
которого
можно
литерной
переменной
y
в
алгоритме,
определяющем
Запишите
Составьте
алгоритм
алгоритм,
определения
с
помощью
количества
которого
можно
чётных
величин
A,
B,
C
и
D.
Составьте
Даны
алгоритм
две
точки
возведения
на плоскости.
чётного
числа в из
Какая
задача
решается
с
помощью
следующего
точки
Х
отрезку
[А;
В]
с
использованием
комбинации
начинающихся
трёхзначного
повседневной
числа
с
буквы
одинаковые
жизни.
«з»
(«с»).
определить,
существует
ли
треугольник
сзаданными
длинами
чисел
среди
целых
чисел
А,
В киначалу
С.2011
определить,
является
ли
треугольник
с
день
недели
длязаданных
любого
числа
(chislo)
января
Определите,
квадрат,
какая
из
а
них
нечётного
находится
в
куб.
ближе
алгоритма?
двух
ветвлений.
сторон
с.
года?
длинами сторон
a,
b,a,сb,равносторонним.
координат.
chislo:=Y:=A
chislo
mod 7
К:=0
если
chislo=3
тоНетнет
у:='…‘
да Да
А>=0
B>Y
если
chislo=4
то у:='…‘
K:=K+1
если chislo=5 то у:='…‘
Y:=B
Да
B>=0 тоНет
если chislo=6
у:='…‘
K:=K+1
если
chislo=0 то у:='…‘
да
нет
C>Y то у:='…‘
если chislo=1
K
если chislo=2 то у:='…'
Y:=C

37.

Вопросы и задания
Напишите алгоритм, под управлением которого
Определите значения переменных n и m после
Робот обойдёт прямоугольную область, обнесённую
Объявлен
набор фрагмента
в школьную
баскетбольную
выполнения
алгоритма
стеной,
по
периметру
иделится
закрасит
угловые
клетки.
Население
города
Н на
увеличивается
на
Одноклеточная
Каждая
бактерия
амёба
каждые
три
две
часа
в
делится
течение
1 2
Запас
рыбы
в
пруду
оценён
в
А
тонн.
Ежегодный
Сумма
Приведите
10
000
рублей
пример
положена
циклического
сберегательный
алгоритма:
банк,
Составьте
алгоритм
нахождения
произведения
z
двух
Дана
последовательность
5,
9,
13,
17,
...
.
команду.
Известен
рост
каждого
из
N
учеников,
Размеры
областиалгоритм
неизвестны.
Составьте
алгоритм
для
определения
количества
цифр
в
клетки.
минуты.
Составьте
В
начальный
момент
вычисления
имеется
одна
времени,
бактерия.
через
5%ежегодно.
В
текущем
году
оно
составляет
40
000
прирост
при
этом
рыбы
прирост
составляет
составляет
15%.
Ежегодный
5%годовых.
планСоставьте
отлова
натуральных
чисел
x
и y без
использования
Начало
а)
из
повседневной
жизни;
желающих
попасть
в
эту
команду.
Составьте
блок-схему
алгоритма
для
подсчёта
числа
записи
произвольного
натуральноговычисления
числа.
Составьте
блок-схему
алгоритма
которое
будет
Х
амёб.
человек.
алгоритм,
определяющий,
через
какой количества
промежуток
операции
умножения.
В
тонн.
Наименьший
запас
рыбы
составляет
С тонн.
слагаемых,
сумма
которых
равна
324.
Составьте
алгоритм
подсчёта
количества
бактерий через
10 минут.
б)Составьте
из *литературного
произведения;
блок-схему
алгоритма
вычисления
n,m
времени
первоначальная
сумма
увеличится
ввего
два
раза.
Исполните
каждый
шаг
в
(Запас
ниже алгоритм,
Симеющих
тонн фиксируя
уже
восстанавливается.)
претендентов,
шанснепопасть
команду,
в) из любой
предметной
области,
изучаемой
в школе.
предполагаемой
численности
населения
города
через
таблице
значений
переменных.
Составьте
блок-схему
алгоритма
подсчёта
если рост игрока
команды
должен быть для
не менее
170
m:=m-2
3 года. Составьте таблицу
значений переменных,
n:=n*2
количества
лет, в течение которых можно выдерживать
см.
задействованных в алгоритме.
заданный план.
Нет
m<6
Да
n,m
Конец
English     Русский Правила