Типы алгоритмических структур. 9 класс
«Алгоритм – это всякая система вычислений, выполняемых по строго определённым правилам, которая после какого-либо числа шагов заведомо приводит к решению поставленной задачи.» (А. Колмогоров) «Алгоритм – это точное предписание, определяющее вычислительный процесс, идущий от варьируемых исходных данных к искомому результату.» (А. Марков) «Алгоритм – это строго детерминированная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью понятных исполнителю команд.» (Н.Д. Угринович) «Алгоритм - организованная конечная последовательность действий, понятная исполнителю, чётко и однозначно задающая процесс решения класса задач и позволяющая получить за конечное число шагов результат, однозначно определяемый исходными данными.»
Историческая справка. Понятие «алгоритм» появилось в Европе в XII веке, когда на латынь была переведена книга математика Мухаммеда ибн Муса ал- Хорезми, жившего в годах. В книге «Об индийском счёте» были изложены правила написания арабских цифр и действия над ними «столбиком». Для того времени это был «прорыв» в математике. Значение слова алгоритм очень схоже со значением слов рецепт, процесс, метод, способ.
Массовость Дискретность Свойства алгоритма: Дискретность Дискретность (прерывность, раздельность) – разбиение алгоритма на шаги Детерминированность Детерминированность Детерминированность (определённость) – каждое действие должно быть строго и недвусмысленно определено Точность Конечность, результативность Массовость - Массовость - алгоритм не составляется для решения одной частной задачи, полезнее составить алгоритм для решения класса задач. Точность – запись алгоритма должна быть такой, чтобы на каждом шаге его выполнения было известно, какую команду надо выполнять следующей. Конечность, результативность Конечность, результативность – алгоритм составляется для достижения результата и этот результат должен быть получен за конечное количество шагов.
Способы описания алгоритмов. - словесная форма; Пример. Алгоритм включения компьютера. Подойти к компьютеру. Включить монитор. Включить системный блок. - графическая форма (блок-схема);
- псевдокод (занимает промежуточное положение между словесным описанием алгоритма и языком программирования, он имеет служебные слова – их смысл определён и неизменен); Исполнитель Кенгурёнок: сделай сторона процедура сторона шаг поворот конец процедуры
- язык программирования (этот способ записи алгоритма абсолютно формализован). Пример. Определение чётности введенного числа. BASICPascal INPUT Введите целое число; X A$=четное IF X MOD 2<>0 THEN A$=не+A$ PRINT Введенное число, A$ Var x: Integer; Str: String; Begin Write(Введите целое число); ReadLn(x); If x Mod 2 <> 0 Then Str:=не+Str; WriteLn(Введенное число, Str); End.
При описании любого языка используются следующие понятия: - алфавит (множество простейших знаков, которые могут быть использованы в текстах этого языка); - синтаксис – набор правил, определяющих возможные сочетания из букв языка. - семантика – это набор правил, определяющих значение (смысл) отдельных конструкций языка.
Графическая форма. начало/конец подпрограмма действие, операция присваивания условие ветвления условие цикла ввод/вывод
Типы алгоритмических структур. Линейный алгоритм начало конец Действие 1 Действие 2 Действие N
Алгоритмическая структура «ветвление» (разветвляющийся алгоритм) Условие Действие 2Действие 1 Да Нет полная форма
Алгоритмическая структура «ветвление» (разветвляющийся алгоритм) неполная форма Действие Условие Да Нет
Алгоритмическая структура «выбор» Условие 1 Действие 2 Действие 1 Условие 2 Действие 3
Алгоритмическая структура «цикл» Цикл со счётчиком Тело цикла Да Нет организация счётчика
Цикл с предусловием Условие Тело цикла Да Нет
Цикл с постусловием Условие Тело цикла Да Нет
НАЧАЛО Ягоды собраны? Сорви ягоду Положи в корзину Унеси корзину КОНЕЦ ДА НЕТ Пример циклического циклического алгоритма
НАЧАЛО Ягоды собраны? Сорви ягоду Положи в корзину Унеси корзину КОНЕЦ ДА НЕТ Пример Циклического алгоритма алгоритма
Задание 1. Определите значение целочисленной переменной х после выполнения следующего фрагмента блок-схемы: 1) 1; 2) 5; 3) 10; 4) 15.. нет y:=y-xx:=x-y да x>y x<>y x:=55; y:=75 нет да
Определите значение целочисленных переменных x, y и t после выполнения фрагмента программы (ниже представлена одна и та же программа, представленная на разных языках программирования): 1) x=2; y=5; t=5; 2) x=7; y=5; t=5; 3) x=2; y=2; t=2; 4) x=5; y=5; t=5. Задание 2. Бейсик ПаскальАлгоритмический x=5 y=7 t=x x=y MOD x y=t x:=5; y:=7; t:=x; x:=y Mod x; y:=t; x:=5 y:=7 t:=x x:=mod (x,y) y:=t
Задача 2: Компьютер должен перемножить два числа – 167 и 121. Если их произведение превышает 2000, то компьютер должен напечатать текст ПРОИЗВЕДЕНИЕ БОЛЬШОЕ, иначе текст ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ. После этого компьютер в любом случае доложен напечатать само произведение. Var a, b, y: integer: BEGIN a:=167; b:=121; y:=a*b; If y>2000 then WriteLn (ПРОИЗВЕДЕНИЕ БОЛЬШОЕ) else WriteLn (ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ); WriteLn (y) END.
Домашняя работа: выучить конспект урока и написать программу к задаче: В компьютер вводятся два произвольных положительных числа – длины сторон двух кубиков. Компьютер должен подсчитать объем одного кубика – большего по размеру. Обозначим а 1 – сторону одного кубика, а 2 – сторону другого, bol – сторону большего кубика, V - объем кубика.
Спасибо за урок! Успехов в выполнении домашнего задания!