Алгоритмы и способы их описания. Презентация к уроку на тему "алгоритмы" Презентация по информатике что такое алгоритм

Алгоритмы

Введение в программирование


Алгоритм

Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово алгоритм возникло в Европе после перевода на латынь книги этого математика.

Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.


  • 1. Достать ключ из кармана.
  • 2. Вставить ключ в замочную скважину.
  • 3. Повернуть ключ два раза против часовой стрелки.
  • 4. Вынуть ключ

  • Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке);
  • Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае);
  • Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения);
  • Массовость (один и тот же алгоритм можно использовать с разными исходными данными);
  • Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях).

  • Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке);
  • Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание);
  • Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий)
  • Вспомогательный алгоритм (алгоритм, который можно использовать в других алгоритмах, указав только его имя).

  • В устной форме.
  • В письменной форме на естественном языке.
  • В письменной форме на формальном языке.
  • Для более наглядного представления алгоритма широко используется графическая форма - блок-схема , которая составляется из стандартных графических объектов.

Вид стандартного графического объекта

Назначение

Начало алгоритма

Конец алгоритма

Выполняемое действие записывается внутри прямоугольника

Условие выполнения действий записывается внутри ромба

Счетчик кол-во повторов

Последовательность выполнения действий


Пример записи алгоритма в виде блок-схемы

Ввод чисел а и b

Вычисление площади s=a*b

Вывод результата на экран


  • Алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает.
  • Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.

Исполнители алгоритмов

Объект, который будет выполнять алгоритм, обычно называют исполнителем.

  • Исполнитель - объект, который выполняет алгоритм.

Идеальными исполнителями являются машины, роботы, компьютеры...

  • Компьютер – автоматический исполнитель алгоритмов.
  • Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой .

  • Что такое алгоритм? Приведите примеры алгоритмов.
  • Какие свойства алгоритмов вы знаете?
  • Какие виды алгоритмов вы знаете?
  • Какие способы записи алгоритмов вы знаете?
  • Что такое исполнитель алгоритмов?
  • Что такое программа?

PRINT "Привет!"


PRINT "Привет!"


PRINT


INPUT "Введите длину: ", a

INPUT "Введите ширину: ", b

PRINT "Площадь прямоугольника равна ",s

Понятия алгоритмаПОНЯТИЯ АЛГОРИТМА
Алгоритм - это точное предписание, которое
определяет процесс, ведущий от исходных
данных к требуемому конечному результату.
Пример: правила сложения, умножения, решения
алгебраических уравнений, умножения матриц и т.п.
К сведению: Слово алгоритм происходит от algoritmi, являющегося латинской
транслитерацией арабского имени хорезмийского математика IX века аль-Хорезми.
Благодаря латинскому переводу трактата аль-Хорезми европейцы в XII веке
познакомились с позиционной системой счисления, и в средневековой Европе
алгоритмом называлась десятичная позиционная система счисления и правила счета в
ней.

Понятия алгоритмаалгоритмае алгоритма

ПОНЯТИЯ АЛГОРИТМААЛГОРИТМАЕ
АЛГОРИТМА
Применительно к электронно-вычислительной машине
алгоритм определяет вычислительный процесс,
начинающийся с обработки некоторой совокупности
возможных исходных данных и направленный на
получение определенных этими исходными данными
результатов. Термин вычислительный процесс
распространяется и на обработку других видов
информации, например, символьной, графической или
звуковой.

Основные свойства алгоритмовОсновные свойства алгоритмов

ОСНОВНЫЕ СВОЙСТВА АЛГОРИТМОВОСНОВНЫЕ
СВОЙСТВА АЛГОРИТМОВ
1.
Результативность. Означает возможность получения
результата после выполнения конечного количества операций.
2.
Определенность. Состоит в совпадении получаемых
результатов независимо от пользователя и применяемых
технических средств.
3.
Массовость. Заключается в возможности применения
алгоритма к целому классу однотипных задач, различающихся
конкретными значениями исходных данных.
4.
Дискретность. Возможность расчленения процесса
вычислений, предписанных алгоритмом, на отдельные этапы,
возможность выделения участков программы с определенной
структурой.

Задание алгоритма:адание алгоритма

ЗАДАНИЕ АЛГОРИТМА:АДАНИЕ
АЛГОРИТМА
Для задания алгоритма необходимо описать
следующие его элементы:
набор объектов, составляющих совокупность возможных
исходных данных, промежуточных и конечных
результатов;
правило начала;
правило непосредственной переработки информации
(описание последовательности действий);
правило окончания;
правило извлечения результатов.

Способы описания алгоритмовСпособы описания алгоритмов

СПОСОБЫ ОПИСАНИЯ АЛГОРИТМОВСПОСОБЫ
ОПИСАНИЯ АЛГОРИТМОВ
Словесно - формульный;
структурный или блок - схемный;
с помощью графов - схем;
с помощью сетей Петри.

Словесно-формульный алгоритмСловесно – формульный алгоритм

СЛОВЕСНО-ФОРМУЛЬНЫЙ АЛГОРИТМСЛОВЕСНО –
ФОРМУЛЬНЫЙ АЛГОРИТМ
При словесно-формульном способе алгоритм записывается в
виде текста с формулами по пунктам, определяющим
последовательность действий.
Пример: необходимо найти значение следующего выражения: у = 2а – (х+6).
Словесно-формульным способом алгоритм решения этой задачи
может быть записан в следующем виде:
1. Ввести значения а и х.
2. Сложить х и 6.
3. Умножить a на 2.
4. Вычесть из 2а сумму (х+6).
5. Вывести у как результат вычисления выражения.

Блок-схема - схемы

БЛОК-СХЕМА
- СХЕМЫ
При блок - схемном описании алгоритм изображается
геометрическими фигурами (блоками), связанными по
управлению линиями (направлениями потока) со стрелками. В
блоках записывается последовательность действий.
Преимущества:
1. наглядность: каждая операция вычислительного процесса
изображается отдельной геометрической фигурой.
2. графическое изображение алгоритма наглядно показывает
разветвления путей решения задачи в зависимости от различных
условий, повторение отдельных этапов вычислительного процесса и
Другие детали.
К сведению: Оформление программ должно соответствовать определенным
требованиям. В настоящее время действует единая система программной документации
(ЕСПД), которая устанавливает правила разработки, оформления программ и
программной документации. В ЕСПД определены и правила оформления блок-схем
алгоритмов (ГОСТ 10.002-80 ЕСПД, ГОСТ 10.003-80 ЕСПД).

Пример блок-схемыример блок - схемы

ПРИМЕР БЛОК-СХЕМЫРИМЕР БЛОК СХЕМЫ
Алгоритм нахождения суммы 10-ти чисел

Блоки на блок-схемах Блоки на блок - схемах

БЛОКИ НА БЛОК-СХЕМАХ
БЛОКИ НА БЛОК - СХЕМАХ
Операции обработки данных и носители информации
изображаются на схеме соответствующими
блоками.
Большая часть блоков по построению условно вписана в прямоугольник
со сторонами а и b. Минимальное значение а = 10 мм, увеличение а
производится на число, кратное 5 мм. Размер b=1,5a. Для от дельных
блоков допускается соотношение между а и b, равное 1:2. В пределах
одной схемы рекомендуется изображать блоки одинаковых размеров.
Все блоки нумеруются.

Виды блоковиды блоков

ВИДЫ БЛОКОВИДЫ БЛОКОВ
Наименование
Обозначение
Функции
Процесс
Выполнение операции или группы операций,
в результате которых изменяется значение,
форма представления или расположение
данных.
Вводвывод
Преобразование данных в форму, пригодную
для обработки (ввод) или отображения
результатов обработки (вывод).
Решение
Выбор направления выполнения алгоритма в
зависимости от некоторых переменных
условий.
Предопредел
енный
процесс
Использование ранее созданных и отдельно
написанных программ (подпрограмм).
Документ
Вывод данных на бумажный носитель.

Виды блоков

ВИДЫ БЛОКОВ
Наименование
Магнитный
диск
Пуск-останов
Обозначение
Функции
Ввод-вывод данных, носителем
которых служит магнитный диск.
Начало, конец, прерывание
процесса обработки данных.
Соединитель
Указание связи между
прерванными линиями,
соединяющими блоки.
Межстраничн
ый
соединитель
Указание связи между
прерванными линиями,
соединяющими блоки,
расположенные на разных листах.
Комментарий
Связь между элементом схемы и
пояснением.

Правила созданий блок-схем Правила создания блок - схем

ПРАВИЛА СОЗДАНИЙ БЛОК-СХЕМ
ПРАВИЛА СОЗДАНИЯ БЛОК - СХЕМ
1.
2.
3.
4.
5.
6.
7.
Линии, соединяющие блоки и указывающие последовательность
связей между ними, должны проводится параллельно линиям
рамки.
Стрелка в конце линии может не ставиться, если линия
направлена слева направо или сверху вниз.
В блок может входить несколько линий, то есть блок может
являться преемником любого числа блоков.
Из блока (кроме логического) может выходить только одна линия.
Логический блок может иметь в качестве продолжения один из
двух блоков, и из него выходят две линии.
Если на схеме имеет место слияние линий, то место пересечения
выделяется точкой. В случае, когда одна линия подходит к другой
и слияние их явно выражено, точку можно не ставить.
Схему алгоритма следует выполнять как единое целое, однако в
случае необходимости допускается обрывать линии, соединяющие
блоки.

Структурные схемы алгоритмовСтруктурные схемы алгоритмов

СТРУКТУРНЫЕ СХЕМЫ АЛГОРИТМОВСТРУКТУРНЫЕ
СХЕМЫ АЛГОРИТМОВ
Последовательность двух или более операций;
выбор направления;
повторение.
Любой вычислительный процесс может быть представлен как
комбинация этих элементарных алгоритмических структур.

Виды алгоритмовВиды алгоритмов

ВИДЫ АЛГОРИТМОВВИДЫ АЛГОРИТМОВ
линейные;
ветвящиеся;
циклические.

Линейные алгоритмыЛинейные алгоритмы

ЛИНЕЙНЫЕ АЛГОРИТМЫЛИНЕЙНЫЕ
АЛГОРИТМЫ
В линейном алгоритме операции выполняются
последовательно, в порядке их записи. Каждая
операция является самостоятельной, независимой от
каких-либо условий. На схеме блоки, отображающие
эти операции, располагаются в линейной
последовательности.
Линейные алгоритмы имеют место, например, при вычислении
арифметических выражений, когда имеются конкретные числовые
данные и над ними выполняются соответствующие условию задачи
действия.

Пример линейного алгоритмаПример линейного алгоритма

ПРИМЕР ЛИНЕЙНОГО АЛГОРИТМАПРИМЕР
ЛИНЕЙНОГО АЛГОРИТМА
Составить блок – схему алгоритма
вычисления арифметического
выражения
у=(b2-ас):(а+с)

ветвлением

АЛГОРИТМ С ВЕТВЛЕНИЕМАЛГОРИТМ С
ВЕТВЛЕНИЕМ
Алгоритм называется ветвящимся, если для его реализации
предусмотрено несколько направлений (ветвей). Каждое
отдельное направление алгоритма обработки данных является
отдельной ветвью вычислений.
Ветвление в программе - это выбор одной из нескольких
последовательностей команд при выполнении программы. Выбор
направления зависит от заранее определенного признака,
который может относиться к исходным данным, к
промежуточным или конечным результатам. Признак
характеризует свойство данных и имеет два или более значений.
Ветвящийся процесс, включающий в себя две ветви, называется простым, более
двух ветвей - сложным.
Сложный ветвящийся процесс можно представить с помощью простых ветвящихся
процессов.

АЛГОРИТМ С ВЕТВЛЕНИЕМАЛГОРИТМ С
ВЕТВЛЕНИЕМ
Направление ветвления выбирается логической проверкой, в
результате которой возможны два ответа:
1.
2.
«да» - условие выполнено
«нет» - условие не выполнено.
Следует иметь в виду, что, хотя на схеме алгоритма должны быть показаны все
возможные направления вычислений в зависимости от выполнения
определенного условия (или условий), при однократном прохождении
программы процесс реализуется только по одной ветви, а остальные
исключаются.
Важно! Любая ветвь, по которой осуществляются вычисления, должна приводить
к завершению вычислительного процесса.

Пример алгоритма с ветвлениемПример алгоритма с ветвлением

ПРИМЕР АЛГОРИТМА С ВЕТВЛЕНИЕМПРИМЕР
АЛГОРИТМА С ВЕТВЛЕНИЕМ
Составить блок-схему алгоритма
с ветвлением для вычисления
следующего выражения:
Y = (а+b), если Х <0;
с/b, если Х>0.

Циклические алгоритмы Циклические алгоритмы

ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ
ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ
Циклическими называются алгоритмы, содержащие
циклы.
Цикл - это многократно повторяемый участок
алгоритма.

Этапы организации цикла Этапы организации цикла

ЭТАПЫ ОРГАНИЗАЦИИ ЦИКЛА
ЭТАПЫ ОРГАНИЗАЦИИ ЦИКЛА
подготовка (инициализация) цикла (И);
выполнение вычислений цикла (тело цикла) (Т);
модификация параметров (М);
проверка условия окончания цикла (У).
Порядок выполнения этих этапов, например, Т и М, может
изменяться.

Типы циклов иклов

ТИПЫ ЦИКЛОВ
ИКЛОВ
В зависимости от расположения
проверки условия окончания цикла
различают циклы с нижним и
верхним окончаниями.
Для цикла с нижним окончанием
(рис. а) тело цикла выполняется как
минимум один раз, так как сначала
производятся вычисления, а затем
проверяется условие выхода из
цикла.
В случае цикла с верхним
окончанием (рис. б) тело цикла
может не выполниться ни разу в
случае, если сразу соблюдается
условие выхода.
а
б
Примеры циклических алгоритмов

Виды цикловВиды циклов

ВИДЫ ЦИКЛОВВИДЫ ЦИКЛОВ
Цикл называется детерминированным, если
число повторений тела цикла заранее известно или
определено.
Цикл называется итерационным, если число
повторений тела цикла заранее неизвестно, а
зависит от значений параметров (некоторых
переменных), участвующих в вычислениях.

Пример циклического алгоритма клического алгоритма

ПРИМЕР ЦИКЛИЧЕСКОГО АЛГОРИТМА
КЛИЧЕСКОГО АЛГОРИТМА
Алгоритм
нахождения суммы
10-ти чисел

Список литературы:

СПИСОК ЛИТЕРАТУРЫ:
http://dssp.petrsu.ru/~IVK/zhirin/inf/inf/read13.h
tml
https://yunc.org/%D0%90%D0%9B%D0%93%D0%
9E%D0%A0%D0%98%D0%A2%D0%9C
https://ru.wikipedia.org/wiki/%D0%90%D0%BB%
D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0
%BC
http://poznayka.org/s66239t1.html

1 слайд

2 слайд

СОДЕРЖАНИЕ ПРЕЗЕНТАЦИИ История возникновения. Понятие алгоритм. Примеры алгоритмов. Исполнители алгоритмов. Что такое программа. Свойства алгоритма. Типы алгоритмов. Способы описания алгоритмов. Основные блоки графического описания алгоритма. На главную © Нечаева Ольга Ивановна 2006 год История возникновения. Понятие алгоритм. Примеры алгоритмов. Исполнители алгоритмов. Что такое программа. Свойства алгоритма. Типы алгоритмов. Способы описания алгоритмов. Основные блоки графического описания алгоритма. На главную

3 слайд

НЕМНОГО ИСТОРИИ основатель алгебры, от его имени произошел термин «алгоритм». В мировой науке он был известен своим трактатом по математике, основанном на позиционном принципе. Благодаря переводу этого труда с арабского на латинский язык, «арабские» цифры навсегда вошли в мировую математику. Имя автора в латинизированной форме Algorismus и Algorithmus первоначально дало название правилам четырех арифметический действий, при десятичной системе счисления. Впоследствии слово «алгоритм» стало обозначать всякий регулярный процесс, за конечное число шагов дающий решение определённого класса задач. Аль-Хорезми (786-850 гг. н.э.) - © Нечаева Ольга Ивановна 2006 год

4 слайд

Алгоритм - это совокупность правил выполнения определенных действий, обеспечивающих решение задачи. А Л Г О Р И Т М В жизни мы постоянно выполняем разные алгоритмы. © Нечаева Ольга Ивановна 2006 год Составляем распорядок дня, чтобы многое успеть. Понятие алгоритм – одно из фундаментальных в информатике.

5 слайд

ПРИМЕРЫ АЛГОРИТМОВ Достаем кулинарную книгу и строго следуем рецепту, написанному в ней, чтобы блюдо удалось и можно было угостить своих друзей. Соблюдаем правила дорожного движения при переходе через улицу. © Нечаева Ольга Ивановна 2006 год

6 слайд

ИСПОЛНИТЕЛИ АЛГОРИТМОВ Алгоритм составляется с учетом исполнителя. Исполнителем может быть человек, автомат, компьютер. © Нечаева Ольга Ивановна 2006 год

7 слайд

ПРОГРАММА © Нечаева Ольга Ивановна 2006 год Каждый исполнитель имеет свою систему команд (СКИ). Программа - это алгоритм, записанный на языке исполнителя. Рассмотрим пример: возьмем учебного исполнителя Черепашку. Пусть этот исполнитель имеет три команды: вперед(1 см), направо(900), налево (900). Исходное положение исполнителя: Код программы будет выглядеть так: налево (900) вперед(1 см) вперед 1 см направо(900) вперед(1см) Какой код программы надо написать, чтобы Черепашка начертила букву Г?

8 слайд

© Нечаева Ольга Ивановна 2006 год СВОЙСТВА АЛГОРИТМА (Требования к составлению алгоритма) Дискретность. Процесс решения задачи должен быть разбит на последовательность отдельных шагов. Однозначность (точность). Команды алгоритма должны быть точно определены (например, нельзя написать 3-4 стакана муки, надо указать 3 стакана). Результативность. После выполнения всех команд алгоритма, должен быть получен результат. Универсальность (массовость). Важное свойство при решении задач на ЭВМ. Алгоритм должен быть применим для решения ни одной конкретной задачи, а для некоторого класса задач. Например, для решения квадратного уравнения с разными коэффициентами). Понятность. Алгоритм должен быть написан на языке понятном исполнителю.

9 слайд

Линейный. Команды такого алгоритма выполняются последовательно сверху вниз. Например, нахождение гипотенузы прямоугольного треугольника по двум его катетам. ТИПЫ АЛГОРИТМОВ © Нечаева Ольга Ивановна 2006 год Разветвляющийся. В зависимости от поставленного условия алгоритм позволяет выбрать один из вариантов решения задачи. Примерами могут быть нахождение корней квадратного уравнения или богатырь на распутье из русских сказок. Циклический. В алгоритме встречаются повторяющиеся действия. Например, при заучивании стихотворения вам приходится перечитывать и повторять одни и те же строки.






Линейный алгоритм Простейшие задачи имеют линейный алгоритм решения (имеют структуру "следование"). Алгоритм линейной структуры представляет собой последовательность действий и не содержит каких-либо условий Таким образом, в таких алгоритмах все этапы решения задачи выполняются строго последовательно.




Циклические алгоритмы Цикл – это многократное повторение действий. Циклические алгоритмы С пост условием - В этом цикле с начало проверяется условие, затем происходит действие С пред условием – Здесь в начале происходит действие,далее проверяетс я условие условием








Линейный алгоритм Program pokupka; Uses crt; Var a, b, d, den: real; ostatok: real; begin clrscr; write ("введите стоимость перчаток, портфеля и галстука "); readln (a, b, d); write ("введите количество имеющихся у вас денег "); readln (den); oststok:= den – a – b – c; writeln ("после покупки у вас останется ", ostatok:5:2, "руб. "); readln; end.


Y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим" title="Разветвляющийся алгоритм Program (имя); Var x, y: integer; {вводимые числа} Begin writeln("Введите 2 числа "); {вводим два целых числа через пробел} readln(x,y); if x>y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим" class="link_thumb"> 11 Разветвляющийся алгоритм Program (имя); Var x, y: integer; {вводимые числа} Begin writeln("Введите 2 числа "); {вводим два целых числа через пробел} readln(x,y); if x>y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим y} End. y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим"> y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим y} End."> y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим" title="Разветвляющийся алгоритм Program (имя); Var x, y: integer; {вводимые числа} Begin writeln("Введите 2 числа "); {вводим два целых числа через пробел} readln(x,y); if x>y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим">
y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим" title="Разветвляющийся алгоритм Program (имя); Var x, y: integer; {вводимые числа} Begin writeln("Введите 2 числа "); {вводим два целых числа через пробел} readln(x,y); if x>y then writeln (x) {если х больше y, то выводим х} else writeln (y) {иначе выводим">