- Эволюция языков программирования. Классификация алгоритмических языков. Их использование. Языков высокого и низкого уровня.
Алгоритм- это точное, общепонятное предписание, однозначно приводящее от исходных данных к конечному результату.
Алгоритмом называютпоследовательность действий, которую необходимо выполнить для получения результата, начиная от исходных данных до момента получения результата.
Слово алгоритм появилось еще в 9в. Когда на латинский язык переводились труды великого восточного ученого Мухаммеда Аль Хорезми (рис.1).
Он занимался математикой и первым написал четкие, краткие указания, следуя которым можно было решить уравнения первой и второй степени. На латынь имя Аль Хорезми перевели как Алгоритм. И учителя, обучая решению уравнений первой и второй степени, говорили: «Следуйте указаниям алгоритма», а потом просто: «Следуйте алгоритму».
Алгоритм - это конечная последовательность однозначных предписаний, исполнение которых позволяет с помощью конечного числа шагов получить решение задачи, однозначно определяемое исходными данными.
Алгоритм может быть предназначен для выполнения его человеком или компьютером.
Если приглядеться, то алгоритмы окружают нас повсюду в жизни. Начиная со школьной математики (алгоритм деления углов, приведения к общему знаменателю и т.д.) до инструкции по пользованию микроволновой печью. С алгоритмом обязательно связаны понятия исполнителя, и СКИ.
Исполнитель алгоритма – это объект или субъект, для которого составлен алгоритм.
СКИ (система команд исполнителя)- эта вся совокупность команд, которые исполнитель умеет выполнять.
Пример: Исполнитель чертежник имеет свою систему команд: вперед (1 см), направо (90 градусов по часовой стрелке). Результатом исполнения следующего алгоритма будет рисунок (рис. 2).
Рисунок 2 – Алгоритм выполнения чертежа
Вперед (1 см), направо 90, вперед (1 см),
направо 90, направо 90, направо 90,
вперед (1 см), направо 90, вперед (1 см)
Возникает вопрос: любая ли последовательность действий (или инструкция) является алгоритмом?
Конечно, нет. Не всякая инструкция алгоритм, а только та, которая обладает определенными свойствами.
Свойства алгоритма:
1. Понятность – алгоритм составлен только из команд, входящих в состав СКИ.
2. Точность – каждая команда алгоритма определяет однозначное действие исполнителя.
3. Дискретность - алгоритм состоит из ряда шагов, последовательность операций определена, новая операция выполняется только после завершения предыдущей.
4. Массовость - алгоритм должен быть применен для класса подобных задач.
5. Эффективность – возможность получения результата при минимальном числе операций.
6. Результативность - алгоритм должен приводить к решению поставленной задачи за конечное число шагов
Привести примеры алгоритмов, не удовлетворяющих свойствам.
1. Исполнитель: робот;
СКИ: вперед, вправо, влево, назад;
Алгоритм «перехода к заданному месту»:
Вправо; Вперед; Влево; Вверх; Вправо.
Рисунок 3 - Алгоритм «перехода к заданному месту»
Данный алгоритм не удовлетворяет свойству понятности, так как в СКИ нет команды Вверх.
2. Алгоритм «взятия ручки с синей пастой с парты»
Зайти в класс;
Подойти к парте;
Взять ручку с синей пастой.
Данный алгоритм не удовлетворяет свойству точности, так как в не указано к какой именно парте подойти.
3. Алгоритм нахождения суммы двух чисел.
Прибавить 2+3; Результат вывести на экран.
Данный алгоритм не удовлетворяет свойству массовости.
4. Алгоритм вывода на печать квадратов натуральных чисел от 1 до 15.
Задать х значение 1;
Пока х меньше 15 выводить на экран х2;
Данный алгоритм не удовлетворяет свойствурезультативности, так как получили бесконечный цикл.
5. Алгоритм просмотра телевизора;
Просмотр телепередачи
Выключить телевизор
Выбрать нужную программу
Включить телевизор
Данный алгоритм не удовлетворяет свойствудискретности, так как последовательность операций не определена.
6. Алгоритм решения задачи «Конюх»
А
Б
Б
Б
Б
С
Ч
Ч
Ч
За ограниченное число ходов необходимо поменять местами белых и черных коней. При решении задачи должно получиться минимальное количество ходов. Выяснить вопрос об эффективности.
Алгоритм является основным фундаментальным понятием информатики.
Можно выделить три крупных класса алгоритмов: вычислительные, информационные, управляющие.
Вычислительные алгоритмы, как правило, работают со сравнительно простыми типами данных (числа, матрицы), но сам процесс вычисления может быть долгим и сложным.
Информационные алгоритмы представляют собой набор сравнительно простых процедур (поиск, замена) но работают с большими объемами информации (базы данных).
Управляющие алгоритмы характеризуются тем, что данные к ним поступают от внешних процессов, которыми они управляют. Результаты работы данных алгоритмов представляют собой различные управляющие воздействия.