Алгоритмизация 9 класс Глава 3

advertisement
Алгоритмизация
9 класс
Глава 3
Понятие алгоритм
Алгоритм - это предназначенное для конкретного
исполнителя точное описание последовательности
действий, направленных на решение поставленной
задачи.
Не всякая последовательность команд может
называться алгоритмом.
Алгоритмом является только такая последовательность,
которая удовлетворяет перечисленным ниже свойствам:
Алгоритм - точное предписание исполнителю совершить
определенную последовательность действий для
достижения поставленной цели за конечное число шагов.
Запись алгоритма
Алгоритм можно записать:
 на естественном языке;
 в виде нумерованного списка;
 в виде блок-схемы;
 На алгоритмическом язке.
Программа – это алгоритм, записанный по правилам и
на языке понятным исполнителю.
Свойства алгоритма
1. Дискретность
алгоритма
алгоритм
должен
представлять
процесс
решения
задачи
как
последовательное выполнение простых (или ранее
определенных)
шагов.
Каждое
действие,
предусмотренное алгоритмом, исполняется только после
того, как закончилось исполнение предыдущего. .
2. Определенность (или точность) алгоритма - каждая
команда алгоритма должна однозначно определять
действие исполнителя.
3. Понятность алгоритма - алгоритм, составленный для
конкретного исполнителя, должен включать только те
команды, которые входят в его систему команд.
Свойства алгоритма
4.
5.
6.
У каждого исполнителя имеется свой перечень
команд,
которые
он
может
исполнить.
Совокупность команд, которые могут быть
выполнены
исполнителем,
называется
системой команд исполнителя.
Результативность (конечность) алгоритма алгоритм должен приводить к решению задачи
за конечное число шагов.
Массовость алгоритма - обеспечивающие
решения всего класса задач данного типа,
различающихся только исходными данными.
Этапы решения задач на
компьютере
Исходные данные
Словесная информационная модель
Формализация
Математическая модель
Алгоритмизация
Алгоритм
Программирование
Программа
Отладка, тестирование
(компьютерный эксперимент)
Уточнение модели,
получение результата
Этапы разработки программы
(алгоритма)
выделяются объекты задачи, их свойства и
отношения между ними.

Возможные действия с объектами
 определяются исходные данные и результат;
 определяется последовательность действий
исполнителя, обеспечивающая переход от
исходных данных к результату;
ФОРМАЛЬНЫЙ
НЕФОРМАЛЬНЫЙ
формальный и неформальный исполнитель.
Формальный исполнитель одну и ту же команду всегда выполняет
одинаково.
Неформальный исполнитель может выполнять команду по-разному
Характеристика исполнителя
1) Имя;
2) Круг решаемых задач;
3) Среда обитания исполнителя;
4) СКИ – система команд исполнителя;
5) Система отказов;
6) Режимы работы.
Исполнитель алгоритма — это некоторая система, способная выполнить
действия, предписываемые алгоритмом. Характеристики исполнителя: · среда
— это "место обитания" исполнителя;
элементарные действия — после вызова команды исполнитель совершает
соответствующее элементарное действие;
система команд исполнителя — некий строго заданный список команд, с
заданными условиями применимости и описанными результатами выполнения
команды;
отказы — возникают, если команда вызывается при недопустимом для нее
состоянии среды.
Виды алгоритмов

Линейный;
Разветвляющийся:

Циклический:

• с полным ветвлением;
• неполным ветвлением;
• С заданным числом повторений (n раз);
• С постусловием (пока);
• С предусловием (для).
Линейный
алгоритм
Линейный алгоритм -- команды выполняются в порядке их
записи, т.е. последовательно друг за другом, в порядке их
следования.
Алгоритмические языки
Алгоритмические
языки
формальные
предназначенные для записи алгоритмов.
языки,
Характеристики алгоритмического языка
Алфавит
Синтаксис
Семантика
Набор используемых символов
Система правил образования
конструкций языка
Система правил, определяющих
смысл и способ употребления
конструкций языка
Общий вид программы КуМир на школьном алгоритмическом
языке:
алг <название алгоритма>
нач
<последовательность команд>
кон
Исполнитель Водолей
Алгоритм для исполнителя Водолей
Исполнитель Черепашка
Задание № 105 (1) РТ стр 61-63
Исполнитель Кузнечик
Исполнитель Кузнечик
Исполнитель Рисователь
Увеличить клетку
сетки
Уменьшить клетку сетки
Возврат к начальным
настройкам сетки
Исполнитель
Чертежник
СКИ Чертёжник









Домой;
покажись - Чертежник будет виден на поле;
скройся; - Чертежник не будет виден на поле;
Подними перо; - Чертежник перемещается по полю, не
оставляя следа (в начале рисования перо всегда поднято);
Опусти перо; - Чертежник при перемещении по полю рисует
за собой линию (в начале рисования перо всегда поднято);
Сместиться в точку ( x, y ); - Чертежник перемещается в
точку
с координатами (x, y);
Сместиться на вектор ( dx, dy ); Чертежник перемещается
на вектор (x, y) от текущего положения;
установить цвет (“название цвета”) – Чертежник рисует
заданным цветом контур фигуры.
закрасьRGB (r, g, b) - Чертежник закрашивает заданным
цветом фигуру.
Что нарисует Чертёжник?
Цикл
Исполнитель Робот
Цикл
«Повтори n раз»
Цикл
Цикл n раз – это составная команда,
которая используется, когда некоторую
последовательность команд в алгоритме
необходимо повторить заранее известное
количество раз.
Структура цикла
нц n раз
тело цикла (список команд)
кц
Цикл. Повтори n раз
Пример 1. Составить программу закрашивания вертикального
ряда, состоящего из трех клеток, считая что Робот находится
где-то в центре поля.
Исполнитель Робот
Вспомогательные алгоритмы
Вспомогательные алгоритмы
При
создании
средних
по
размеру
программ
используется структурное программирование, структура
программы должна отражать структуру решаемой
задачи, чтобы алгоритм решения был ясно виден из
исходного
текста.
Программа
разбивается
на
множество
подпрограмм
(вспомогательных
алгоритмов), каждая из которых выполняет какое-то
действие, предусмотренное исходным заданием.
Комбинируя вспомогательные алгоритмы, удается
сформировать итоговый алгоритм используя блоки кода
(подпрограммы), имеющих определенную смысловую
нагрузку. Обращаться к ним, можно по их имени.
Очень
важная
характеристика
вспомогательных
алгоритмов
это
возможность
их
повторного
использования.
Вспомогательный алгоритм
(процедура)
Метод последовательного уточнения - это алгоритм
решения некоторой подзадачи для написания общей
программы.
В теле основного алгоритма записывается команда
выполнения вспомогательного, которая называется
вызовом.
При написании программы сначала записывается
основной алгоритм, а затем вспомогательные.
Один и тот же вспомогательный алгоритм можно
вызывать несколько раз.
Структура программы с процедурами
Программа
…
Процедура1;
…
Процедура2;
…
Процедура1
Вызов процедуры
осуществляется по
её имени
Команды процедуры;
Процедура2
Команды процедуры;
Пример
Пример
Исполнитель Робот
Цикл в цикле
Вложенные циклы (цикл в цикле)
Пример 3. Составить программу закрашивания
прямоугольника размером 6*5 клеток. Робот находится в левом
верхнем углу поля.
Разветвляющийся алгоритм
Команды ветвления
Направляют алгоритм по одному из нескольких
возможных путей в зависимости от выполнения или
невыполнения некоторого условия.
В алгоритмическом языке существуют две команды
ветвления: если и выбор.
Команда если
Команда если имеет две формы – полную и
неполную.
Для полного ветвления команда если имеет вид:
если условие
то набор команд 1
иначе набор команд 2
все
В случае истинного условия выполняется набор
команд 1, ложного – набор команд 2. Затем компьютер
переходит к выполнению команд, следующих после
ключевого слова все.
Команда если
Для неполного ветвления команда если имеет вид:
если условие
то набор команд 1
все
Если условие истинно, то выполняется набор команд 1,
ложно – компьютер переходит к выполнению команд,
следующих после ключевого слова все.
Операции сравнения
A<B
A <= B
А меньше В
А меньше или равно В
A=B
А равно В
A>B
А больше В
A >= B
А больше или равно В
A <> B
А не равно В
Вычисление функции
f(x)=|x|
Начало
Список данных
X, Y -вещ
Х
да
Х>0
Y:=X
не
т
Y:=-X
Y
Конец
Простые и составные условия
Простые условия состоят из одной операции сравнения.
Составные условия получаются из простых с помощью
логических связок and (и), or (или), not (не).
Пример. Алгоритм определения принадлежности точки Х
отрезку [A; B].
A, B, X
да
ДА
(X>=A) and (X<=B)
не
т
НЕТ
Пример. Алгоритм определения принадлежности точки Х
отрезку [A; B].
Наибольшая из 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
4
Условие
30
20 > 30 (Нет)
Пример программы
Разветвляющийся алгоритм для Робота
В какую клетку переместится Робот после выполнения
следующего фрагмента алгоритма.
если справа свободно
или снизу свободно
то закрасить
все
если справа стена
то влево
все
если
слева стена
то вправо
все
б а
Пример 1.
Презентация Робот_КуМир 7_команды ветвления.ppt
Робот находится внутри прямоугольника, состоящего из двух
клеток, расположенных вертикально. В какой именно клетке
находится Робот, неизвестно. Необходимо перевести его в
другую клетку.
А
Нахождение корней квадратного уравнения
Пример 6
Нахождение минимума и максимума двух, трех, четырех данных
чисел без использования массивов и циклов.
Для проверки работоспособности программы придумать
несколько различных примеров троек чисел и вручную самим найти
ответ. Примеры должны быть максимально разнообразными:
 min3(1,2,3)=1
 min3(3,4,2)=2
 min 3(2,1,2)=1
 min3(3,3,3)=3
Команда выбор
Для полного ветвления
команда выбор имеет
вид:
выбор
при условие 1: серия 1
при условие 2: серия 2
…
при условие n: серия n
иначе серия n+1
все
Для неполного ветвления
команда выбор имеет вид:
выбор
при условие 1: серия 1
при условие 2: серия 2
…
при условие n: серия n
все
Пример 1
Робот с трех сторон вплотную окружен стенами.
Необходимо перевести Робота в соседнюю клетку
.
А
Исполнитель Робот
Цикл пока
(цикл с предусловием)
По учебнику А.Г Кушниренко «Информатика»;
Т.Л.Удалова, М.В.Ануфриева «Информатика КуМир»
Л.Л.Босова Рабочая тетрадь. Информатика и ИКТ
Цикл пока
Цикл пока (цикл с параметром, итерационный цикл) – это
составная команда, которая будет повторяться до тех пор, пока
выполняется условие, записанное после ключевого слова пока.
Общий вид цикла пока:
нц пока условие (логическое выражение)
Тело цикла (последовательность команд)
кц
Если условие в цикле пока все время будет истинным,
произойдет «зацикливание». Поэтому в теле цикла должны
содержаться команды, которые изменяют условие задачи. Если
условие в цикле пока все время будет ложным, то тело цикла не
выполнится ни разу.
Пример 1
Составим программу, которая закрашивает k клеток по
вертикали вниз, с использованием цикла пока.
А
Пример 2
Робот находится в верхней клетке коридора шириной в
одну клетку, который тянется вниз вправо и заканчивается
тупиком, как показано на рисунке. Необходимо провести
Робота до конца коридора.
А
Пример 4
Подсчет суммы нечетных чисел. Определите чему всегда равна
сумма первых N нечетных чисел
Пример 2
Составим программу, закрашивающую один ряд клеток вдоль
стены под ней, вычислим длину стены. Робот находится под
горизонтальной стеной у её левого края.
А
Исполнитель Робот
Цикл для
(цикл с параметром)
По учебнику А.Г Кушниренко «Информатика»;
Т.Л.Удалова, М.В.Ануфриева «Информатика КуМир»
Цикл для
Цикл для используется в алгоритмах, в которых набор команд
необходимо выполнить последовательно с заданным шагом s в
некотором диапазоне величин от min до max.
Общий вид цикла для:
нц для i от min до max шаг s
Тело цикла (последовательность команд)
Кц
i – имя переменной целого типа (управляющая переменной цикла
или параметром цикла);
Min – начальное значение параметра цикла;
Max - конечное значение параметра цикла;
S – шаг изменения параметра цикла. Если s=1, то его можно не
писать, цикл для будет иметь вид:
нц для i от min до max
Тело цикла (последовательность команд)
кц
Пример 1
Составим программу, которая закрашивает k клеток по
вертикали вниз, с использованием цикла для. Исходное
положение робота – левый верхний угол.
имя переменной целого типа
диапазоне величин
от min до max
Пример:
b:= mod(a,5);
b:= mod(div(a,5),5) v b:=mod(div(y,5));
b:= div(a,5);
b:= div(mod(a,5),5) v div(mod(y,5) ;
div – деление нацело (остаток отбрасывается)
mod – остаток от деления
Задачи ОГЭ
Программа выводит сумма чисел кратных 3 и
оканчивающихся на 8.
Программа выводит кол-во чисел кратных 3 и
оканчивающихся на 8.
Напишите программу, которая должна вывести одно число – минимальное
четное число.
Вывести одно число : среднее арифметическое
положительных чисел, кратных 8
Вычисление длины окружности и площади круга
Пример 1
Используемая литература:






А.Г.Кушниренко, Г.В.Лебедев, Я. Н. Зайдельман
Информатика 7-9 классы. Учебник для
общеобразовательных учебных заведений;
Удалова Т.Л., Ануфриева М.В. Информатика. КуМир;
Л. Л. Босова 7-9 класс учебник и рабочая тетрадь. БИНОМ,
2012-2013 г;
http://www.klyaksa.net/htm/konspektsch/kumir/index.htm сайт ИНФОРМАТИКА И ИНФОРМАЦИОННОКОММУНИКАЦИОННЫЕ ТЕХНОЛОГИИ В ШКОЛЕ;
Задачи есть во всех сборниках подготовки к ОГЭ и ЕГЭ.
Авторы: С.С.Крылов, Д.М.Ушаков, Е.М.Зорина, Самылкина,
Ю.С.Путимцева и др.;
ФИПИ. Открытй банк заданий ОГЭ
http://85.142.162.126/os/xmodules/qprint/index.php?proj=74676
951F093A0754D74F2D6E7955F06
Download