Презентация по информатике что такое алгоритм. Алгоритмы и способы их описания
Cлайд 1
Cлайд 2
Возникновение термина «алгоритм» Понятие алгоритма, примеры алгоритмов Основные свойства алгоритмов Способы задания алгоритмов Обозначения, используемые в блок-схемах алгоритмов Виды алгоритмовCлайд 3
Имя Хорезми, в его латинизированной форме Алхорезми, увековечено в повсеместно известном математическом термине алгоритм. Алгоритм - это несколько измененная форма имени Алхорезми, под влиянием греческого слова „ аритмос" - число. Великий узбекский математик 9 века Аль Хорезми Мухамед бен Муса Возникновение понятия алгоритмCлайд 4
А л г о р и т м- это определённая последовательность действий, выполнение которых позволяет получить решение поставленной задачи. Каждое действие в записи алгоритма называется командой. Каждый алгоритм рассчитан для выполнения определенным исполнителем. Исполнять алгоритмы может не только человек, но и животные, насекомые, растения, а так же поручить исполнение алгоритма можно и неодушевленным механизмам и устройствам.Cлайд 5
Пример алгоритма, изучаемого в школьном курсе математики: Алгоритм выполнения арифметических операций Произвести вычисления в скобках или раскрыть скобки в выражении (если они есть); Выполнить все действия второй ступени (умножение и деление); Выполнить действия первой ступени (сложение и вычитание).Cлайд 6
Пример алгоритма, изучаемого в школьном курсе русского языка: Алгоритм Правописание приставок на «з», «с». 1. Выделяем корень слова. 2. Если корень начинается со звонкой перейти к пункту 3, в противном случае к пункту 4 3. В приставке пишем «з». Перейти к пункту 5 4. В приставке пишем «с». 5. Записать словоCлайд 7
Примеры алгоритмов из жизни: Руководство по ремонту, эксплуатации и обслуживанию автомобиля Рецепт Правила пользования телефоном Инструкция по эвакуации во время пожара Распорядок дняCлайд 8
Основные свойства алгоритмов: 1. Дискретность Алгоритм должен состоять из конкретных действий, следующих в определённом порядке. Пример. Алгоритм приготовления блюда быстрого питания: 1. Высыпать в емкость содержимое пакетика. 2. Налить в емкость 200 мл горячей воды. 3. Перемешать.Cлайд 9
Детерминированность (однозначность) Любое действие должно быть строго и недвусмысленно определено в каждом случае Пример При управлении самолетом используются сложные алгоритмы, исполнителями которых являются пилот или бортовой компьютер. Каждая команда алгоритма определяет однозначное действие исполнителяCлайд 10
Один и тот же алгоритм можно использовать с разными исходными данными. 3. Массовость Пример Алгоритмы сложения, вычитания, умножения и деления могут быть применены для любых чисел в различных позиционных системах счисления.Cлайд 11
Алгоритм должен приводить к решению задачи за конечное число шагов. 4. Результативность Пример. Алгоритм сложения целых чисел в десятичной системе счисления: 1. Записать числа в столбик. 2. Сложить числа младшего разряда. 3. Записать результат под горизонтальной чертой.Cлайд 12
5. Понятность Алгоритм должен содержать только те команды, которые входят в систему команд исполнителя. Пример При включении компьютера выполняются алгоритмы тестирования и загрузки операционной системы. Эти алгоритмы выполняет компьютер, поэтому они должны быть записаны на понятном компьютеру машинном языке.Cлайд 13
Свойства Пример выполнения свойства Пример невыполнения свойства Дискретность Казнить нельзя, помиловать. Казнить, нельзя помиловать. Детерминированность (точность) На дубе ларец, а в ларце утка, а в утке яйцо, в яйце игла, в игле смерть Кощея. Поди туда, не знаю куда, принеси то, не знаю что. Массовость Каждой дочери отец привёз по дорогому подарку. Принц мог жениться только на настоящей принцессе. Понятность Инструкция по-русски. Инструкция на японском языке. Результативность Мышка хвостиком махнула, яйцо и разбилось. Баба била-била, не разбила.Cлайд 14
словесный – при данном способе в каждой строке перечисляется определенная команда. графический – с помощью блок- схем. с помощью алгоритмического языка. формульный Табличный – способ, наиболее часто используемый в экономических задачах). Способы представления алгоритмовCлайд 15
Элементы блок схем: Обозначение блока Пояснение Начало, конец процесса обработки данных Ввод исходных данных, вывод результатов Вычислительное действие (операция присваивания) Проверка условия (условный переход) Начало циклаCлайд 16
Cлайд 17
Линейный алгоритм Линейный алгоритм – это алгоритм, в котором команды выполняются последовательно одна за другой.Cлайд 18
Алгоритм-
это точное и понятное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи
СВОЙСТВА АЛГОРИТМОВ
1. Дискретность
2. Понятность (определенность)
3. Однозначность (детерминированность)
4. Массовость
5. Результативность (конечность)
Свойства алгоритмов:
- Однозначность – каждый шаг исполнителя может и должен быть истолкован одним и только одним способом;
- Понятность – алгоритм должен быть составлен только из команд, входящих в систему команд исполнителя;
- Массовость - позволяет решить определенный класс задач;
Свойства алгоритмов:
- Результативность (или конечность) – выполнение алгоритма должно приводить к результату за конечное число шагов;
- Дискретность (или детализация) – алгоритм поддаётся расчленению на элементарные (дискретные) шаги, которые могут быть исполнены при помощи системы команд исполнителя;
СПОСОБЫ ОПИСАНИЯ
НА ЕСТЕСТВЕННОМ
ЯЗЫКЕ
АЛГОРИТМИЧЕСКИЙ
ЯЗЫК или
ПРОГРАММА
В ВИДЕ ФОРМУЛ
ГРАФИЧЕСКИЙ-
БЛОК-СХЕМА
Блок - схема
Это запись алгоритма в виде отдельных блоков, соединенных между собой стрелками.
Пример блок - схемы
Алгоритм нахождения суммы 10-ти чисел
Виды блоков
Наименование
Обозначение
Ввод-вывод
Функции
Выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных.
Документ
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод).
Выбор направления выполнения алгоритма в зависимости от некоторых переменных условий.
Вывод данных на бумажный носитель.
Пуск-останов
Начало, конец, прерывание процесса обработки данных.
ИСПОЛНИТЕЛИ АЛГОРИТМОВ
ЧЕЛОВЕК
РОБОТ
КОМПЬЮТЕР
Исполнитель – объект, который выполняет алгоритм
ИСПОЛНИТЕЛЬ ВЫПОЛНЯЕТ
АЛГОРИТМ ФОРМАЛЬНО
Основной характеристикой исполнителя, с точки зрения управления, является система команд исполнителя (СКИ) - это конечное множество команд, которые понимает исполнитель, т.е. умеет их выполнять
Виды алгоритмов
Существует три основных вида алгоритмов, которые и являются базовыми при написании программ
Линейный алгоритм – это алгоритм, в котором все действия выполняются в строгом порядке, последовательно, одно за другим
Например: включение персонального компьютера
Алгоритм, в котором осуществляется выбор действий в зависимости от какого-то условия, называют разветвляющимся
НАЧАЛО
Настроение
хорошее?
Позвонить другу
Погулять
КОНЕЦ
Циклический алгоритм –
это алгоритм, содержащий повторяющие действия с какой–либо изменяющейся величиной ( параметром)
Повторяющаяся последовательность действий называется циклом , а эти действия – циклическими
Пример циклического алгоритма
НАЧАЛО
Ягоды
собраны?
Сорви ягоду
Положи в корзину
Унеси корзину
Слайд 2
- Алгоритм - конечная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью точных и понятных исполнителю команд.
- Слово «алгоритм» происходит от algorithmi - латинской формы написания имени великого математика IX века аль-Хорезми
Слайд 3
- Приготовление торта- алгоритм:
- Замесить тесто
- Раскатать коржи
- Выпечь коржи
- Дать коржам остыть
- 5. Украсить торт
- Алгоритмы встречаются нам повсюду, например:
Слайд 4
Исполнитель
- Исполнитель - управляющий объект совершающий последовательность действий, направленных на достижение поставленной цели
- Исполнителем может быть человек, робот, компьютер, язык программирования и т.д. Исполнитель умеет выполнять некоторые команды.
- СКИ - совокупность команд, которые данный исполнитель умеет выполнять, называется системой команд исполнителя.
Слайд 5
Свойства алгоритмов
Слайд 6
Дискретность
- Описываемый алгоритмом процесс разбит на последовательность отдельных шагов.
- Запись представляет собой упорядоченную совокупность разделенных предписаний, образующих дискретную (прерывную) структуру алгоритма.
- Только выполнив требования одного предписания, можно приступить к выполнению следующего.
Слайд 7
- Алгоритмы составляются ориентацией на определенного исполнителя.
- Все команды в алгоритме должны быть понятны исполнителю, т.е. принадлежать его СКИ.
- Понятность
Слайд 8
Детерминированность
- Последовательность выполнения действий д.б. строго определенной.
- Каждый шаг алгоритма д.б. четким и однозначным.
- Алгоритм не должен содержать предписаний, смысл которых может восприниматься неоднозначно, т.е. одна и та же команда, будучи понятна разным исполнителям, после исполнения каждым из них должна давать одинаковый результат.
- Также недопустимы ситуации, когда после выполнения очередной команды исполнителю неясно, какая из команд должна выполняться на следующем шаге.
Слайд 9
Результативность
При точном исполнении всех предписаний алгоритм приводит к решению задачи за конечное число шагов и при этом получается определенный результат. Вывод о том, что решения не существует - тоже результат.
Слайд 10
Массовость
Алгоритм разработан в общем виде, обеспечивая решение не одной конкретной задачи, а некоторого класса задач данного типа. В простейшем случае массовость обеспечивает возможность использования различных исходных данных.
Слайд 11
Формы записи алгоритма
- Словесная (на естественном языке)
- Графическая (блок – схема)
- Программная (тексты на языках программирования)
Слайд 12
Исполнители алгоритмов
- Языки программирования:
- 1.Машинноориентированные языки: Автокод, Assembler
- 2. Языки программирования высокого уровня: машиннонезависимые языки:
- C++, Delphi, Visual Basic, Turbo Pascal,
- al = 10100110 sar al, 3 al = 11110100 sar al, 2 al = 11111101 bl = 00100110 sar bl, 3 bl = 00000010
- Программа – алгоритм записанный на языке программирования.
Слайд 13
- Процессор понимает только язык машинных команд. Обязательный элемент любой системы программирования
- Транслятор – программа - переводчик с языка программирования на ЯМК.
- Компилятор - переводит программу на ЯМК до ее исполнения
- Интерпритатор– перевод программы на ЯМК и ее исполнение производятся параллельно
Слайд 14
Блок
Алгоритм изображается в виде последовательности связанных между собой функциональных блоков. Каждый блок выполняет одно или несколько действий. Каждому типу действий соответствует геометрическая фигура.
Линейный алгоритм Простейшие задачи имеют линейный алгоритм решения (имеют структуру "следование"). Алгоритм линейной структуры представляет собой последовательность действий и не содержит каких-либо условий Таким образом, в таких алгоритмах все этапы решения задачи выполняются строго последовательно.
Циклические алгоритмы Цикл – это многократное повторение действий. Циклические алгоритмы С пост условием - В этом цикле с начало проверяется условие, затем происходит действие С пред условием – Здесь в начале происходит действие,далее проверяетс я условие условием
Линейный алгоритм 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) {иначе выводим">