Презентация "Алгоритмы. Введение в программирование"

Подписи к слайдам:
Алгоритмы
  • Введение
  • в программирование
Появление алгоритмов связывают
  • Появление алгоритмов связывают
  • с зарождением математики.
  • Более 1000 лет назад (в 825 году)
  • ученый из города Хорезма
  • (современный Узбекистан)
  • Абу Адаллах (или Абу Джафар) Мухаммад ибн Муса аль Хорезми.
  • В переводе с арабского языка это означает:
  • отец Абдаллаха (или отец Джафара), Мухаммад, сын Мусы из Хорезма.
  • создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами.
  • В 1120 году книга была переведена в Европе на латынь.
  • 783 – 850 г.г.
  • Эти книги, написанная в Багдаде в 820-830 гг., сыграли огромную роль в развитии математики в эпоху средневековья.
  • От нее же произошли слова
  • «алгебра» (от «Аль Джабр» в заголовке)
  • и
  • «алгоритм» (algorithm от «аль-Хорезми»).
  • Книга «Аль Джабр Ba-Аль Мукабала»
  • («Наука исключения и сокращения»)
  • арабского математика аль-Хорезми
  • “Книга об индийском счете”
Виды алгоритмов
  • Определённые (детерминированные)
  • Только этот вид мы рассматриваем в школе
  • Неопределённые (стохастические)
  • Алгоритм игры в шахматы, шашки
  • Алгоритм сочинения стихотворений
  • Алгоритм
  • это описание последовательности действий, строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.
  • Составление алгоритма – самый важный этап решения задачи на компьютере.
  • Создавать алгоритмы может только Человек.
Правила создания алгоритма
  • Алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает.
  • Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.
Свойства алгоритмов
  • Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке)
  • Понятность для конкретного исполнителя (каждая команда алгоритма должна входить в СКИ исполнителя)
  • Определенность (любое действие должно быть строго и недвусмысленно определено в каждом случае)
  • Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения)
  • Массовость (один и тот же алгоритм должен быть применим к классу однотипных задач)
  • Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату при всех допустимых входных значениях)
  • Исполнитель алгоритма
  • это объект,
  • который выполняет алгоритм.
  • Набор всех команд исполнителя называется системой команд исполнителя (СКИ).
  • Исполнитель, выполняет алгоритм ФОРМАЛЬНО, не вникая в смысл того, что и зачем делает.
  • Исполнитель «Компьютер»
  • не обладает способностью к анализу результатов,
  • не может обойтись без программы и исходных данных,
  • следовательно,
  • компьютер- формальный исполнитель алгоритмов, записанных на языке программирования в виде программ.
  • Команда – это указание исполнителю совершить некоторое действие.
  • Алгоритм, записанный на «понятном» исполнителю «компьютер» языке программирования, называется
  • программой.
  • Программа состоит из команд и обрабатывает данные.
  • Input N
  • Input M
  • W = N + M
  • Print W
  • Формы записи алгоритмов:
  • словесная форма
  • блок-схема
  • алгоритмический язык
  • графическая
  • Далее
  • программа
  • Словесная форма
  • записи алгоритмов обычно используется для алгоритмов, ориентированных на исполнителя-человека.
  • Команды такого алгоритма выполняются в естественной последовательности одна за другой, если не оговорено противного.
Алгоритм открывания двери
  • 1. Достать ключ из кармана.
  • 2. Вставить ключ в замочную скважину.
  • 3. Повернуть ключ два раза против часовой стрелки.
  • 4. Вынуть ключ
  • Крестьянину нужно перевести через реку волка, козу и капусту.
  • Но лодка такова, что в ней может поместиться крестьянин, а с ним или только волк, или только коза, или только капуста.
  • Но если оставить волка с козой, то волк съест козу, а если оставить козу с капустой, то коза съест капусту.
  • Как перевез свой груз крестьянин?
  • Алгоритм “Перевозчик”
  •     Исходные данные: волк, коза, капуста, лодка, перевозчик на левом берегу.     Результат: волк, коза, капуста, лодка, перевозчик на правом берегу.     Исполнитель: перевозчик.     Последовательность действий             1. Перевези козу.     2. Переправься обратно один.     3. Перевези волка.     4. Перевези козу.     5. Перевези капусту.     6. Переправься обратно один.     7. Перевези козу.
  • Назад
  • Графическая форма
  • используется для таких алгоритмов, которые можно исполнить, даже не умея читать.
  • Как назовёте этот алгоритм?
  • Назад
  • Представление алгоритма
  • на школьном алгоритмическом языке
  • Алг Площадь прямоугольника
  • вещ b, d
  • начало
  • ввод b, d ;
  • s := b * d ;
  • вывод s ;
  • конец
  • b
  • d
  • Назад
Символы блок-схем алгоритмов
  • Вид стандартного графического объекта
  • Назначение
  • Начало и конец алгоритма
  • Ввод или вывод данных
  • Выполняемое действие записывается внутри прямоугольника
  • Условие выполнения действий записывается внутри ромба
  • (условие всегда является утверждением)
  • Счетчик количества повторов цикла
  • Последовательность выполнения действий (линии потока данных)
  • Начало
  • Счетчик
  • Дверь открыта
  • Гуляю
  • Конец
  • Ввод А
  • Вывод D
Пример записи алгоритма «Переход улицы» в виде блок-схемы
  • Начало
  • Дождаться зеленого сигнала
  • светофора
  • Конец
  • Перейти улицу
  • Подойти
  • к переходу
Представление математического алгоритма в виде блок-схемы
  • Начало
  • Вычисление площади
  • s = b * d
  • Конец
  • Ввод чисел
  • b и d
  • Вывод
  • результата (s)
  • на экран
  • Назад
  • Программа – алгоритм для исполнителя «Компьютер», записанный на языке программирования QBasic
  • CLS
  • INPUT "Введите длину: ", b
  • INPUT "Введите ширину: ", d
  • s= b * d
  • PRINT "Площадь прямоугольника равна ",s
  • END
  • Программа – алгоритм для исполнителя «Компьютер», записанный на языке программирования VisualBasic
  • dim b as double
  • dim d as double
  • b= text1.text
  • d= text2.text
  • s=b*d
  • ttxt3.text = s
  • Назад
Виды алгоритмов
  • Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке);
  • Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание);
  • Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий)
  • Вспомогательный алгоритм (алгоритм, который можно использовать в других алгоритмах, указав только его имя).
Вопросы:
  • Что такое алгоритм?
  • Приведите примеры алгоритмов.
  • Какие свойства алгоритмов вы знаете?
  • Какие виды алгоритмов вы знаете?
  • Какие способы записи алгоритмов вы знаете?
  • Что такое исполнитель алгоритмов?
  • Что такое программа?