1.Слово «алгоритм» происходит от имени великого среднеазиатского учёного Мухаммеда аль-Хорезми́, жившего в первой половине IX ве́ка (точные годы его жизни неизвестны, но считается, что он родился около 780 года, а умер около 850). «Аль-Хорезми» означает «из Хорезма» (исторической области в нынешнем Узбекистане, центром которой был город Хива).
Около 825 года аль-Хорезми написал сочинение, в котором впервые дал описание придуманной в Индии позиционной десятичной системы счисления. К сожалению, арабский оригинал его книги не сохранился, так что её оригинальное название нам неизвестно. Аль-Хорезми сформулировал правила вычислений в новой системе и, вероятно, впервые использовал цифру 0 для обозначения пропущенной позиции в записи числа (её индийское название арабы перевели как as-sifr или просто sifr, отсюда такие слова, как цифра и шифр). Приблизительно в это же время индийские цифры начали применять и другие арабские учёные. В первой половине XII века книга аль-Хорезми в латинском переводе проникла в Европу. Переводчик, имя которого до нас не дошло, дал ей название «Algoritmi de numero Indorum» («Индийское искусство счёта, сочинение аль-Хорезми»).
2.Алгори́тм — точный набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное время.
3.Формы представления алгоритмов.
• словесная (записи на естественном языке);
• графическая (изображения из графических символов);
• псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке;
• программная (тексты на языках программирования).
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных.
Графическом представление — алгоритм изображается в виде последовательности связанных между собой функциональных блоков.
Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий.
В таблице приведены наиболее часто употребляемые символы.

4.Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е. основных) элементов. Естественно, что при таком подходе к алгоритмам изучение основных принципов их конструирования должно начинаться с изучения этих базовых элементов. Для их описания будем использовать язык схем алгоритмов и школьный алгоритмический язык.
представлена комбинацией трех базовых структур: следование, ветвление, цикл. |
Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.
1. Базовая структура "следование". Образуется последовательностью действий, следующих одно за другим:
| Школьный алгоритмический язык | Язык блок-схем |
| действие 1 действие 2 . . . . . . . . . действие n | ![]() |
2. Базовая структура "ветвление". Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:
- если—то;
- если—то—иначе;
- выбор;
- выбор—иначе.
| Школьный алгоритмический язык | Язык блок-схем |
| 1. если—то | |
если условие
то действия
все
| ![]() |
| 2. если—то—иначе | |
если условие
то действия 1
иначе действия 2
все
| ![]() |
| 3. выбор | |
выбор
при условие 1: действия 1
при условие 2: действия 2
. . . . . . . . . . . .
при условие N: действия N
все
| ![]() |
| 4. выбор—иначе | |
выбор
при условие 1: действия 1
при условие 2: действия 2
. . . . . . . . . . . .
при условие N: действия N
иначе действия N+1
все
| ![]() |
| Школьный алгоритмический язык | Язык блок-схем |
если x > 0 то y := sin(x) все | ![]() |
если a > b то a := 2*a; b := 1 иначе b := 2*b все | ![]() |
выбор при n = 1: y := sin(x) при n = 2: y := cos(x) при n = 3: y := 0 все | ![]() |
выбор при a > 5: i := i+1 при a = 0: j := j+1 иначе i := 10; j:=0 все | ![]() |
3. Базовая структура "цикл". Обеспечивает многократное выполнение некоторой совокупности действий, которая называетсятелом цикла. Основные разновидности циклов представлены в таблице:
| Школьный алгоритмический язык | Язык блок-схем |
| Цикл типа пока. Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока. | |
нц пока условие тело цикла (последовательность действий) кц | ![]() |
| Цикл типа для. Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. | |
нц для i от i1 до i2 тело цикла (последовательность действий) кц | ![]() |
| Школьный алгоритмический язык | Язык блок-схем |
нц пока i <= 5 S := S+A[i] i := i+1 кц | ![]() |
нц для i от 1 до 5 X[i] := i*i*i Y[i] := X[i]/2 кц | ![]() |
5.Этапы разработки алгоритма:
- Разработка приближенного алгоритма, ориентированного на создающего его человека. Определение цели, приблизительного плана действий для её достижения. Такой алгоритм понятен только его создателю.
- Детализация алгоритма с учетом специфики среды и объекта осуществляющего выбор среды и объектов, посредством которых он будет реализован. Т.е. алгоритм должен быть представлен в форме понятной тому кто будет выполнять описанные в нем действия.
6.Иначе его еще называют методом пошаговой детализации.
Нисходящее проектирование программы, когда первоначально программа рассматривается, как совокупность действий, каждое из которых затем детализируется и представляется как последовательность более простых и конкретных действий и т. д. Вплоть до отдельных операторов языка; такой подход позволяет реализовать наличие двух видов подпрограмм в языке – процедур и функций.
Первоначально продумывается общая структура алгоритма без детальной проработки отдельных его частей. Блоки требующие дальнейшей детализации, обозначаются пунктирной линией. Далее прорабатываются отдельные блоки, не детализированные на предыдущем шаге.
Таким образом, на каждом шаге разработки уточняется реализация фрагмента алгоритма (или программы) , т.е. решается более простая задача. Полностью закончив детализацию всех блоков, получаем решение задачи в целом.
Если на каждом шаге детализации использовать принципы структурного программирования, то получается хорошая структурированная программа в целом.













Маруся, уменьшите размер 1 картинки, чтобы она помещалась в сообщение...
ОтветитьУдалитьЗадание зачтено.
ОтветитьУдалить