Презентация подготовлена учеником 10 А класса Зверевым Артёмом
Алгоритм – это строгая последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью понятных исполнителю команд. Пример. Алгоритм Евклида эффективный метод вычисления наибольшего общего делителя (НОД). Назван в честь греческого математика Евклида; один из древнейших алгоритмов, который используют до сих пор. a, b a !=0 and b !=0 a > b b = b % aa = a % b print (a+b) Да Нет
1.Дискретность алгоритм должен представлять процесс решения задачи как последовательное выполнение некоторых простых шагов. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, то есть преобразование исходных данных в результат осуществляется во времени дискретно. 2.Определённость. В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Таким образом, алгоритм выдаёт один и тот же результат для одних и тех же исходных данных. 3.Понятность алгоритм должен включать только те команды, которые доступны исполнителю и входят в его систему команд. 4.Завершаемость (конечность) при корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов. 5.Массовость (универсальность). Алгоритм должен быть применим к разным наборам исходных данных. 6.Результативность завершение алгоритма определёнными результатами.
1.«Следование» - это часть алгоритма, в которой все команды исполняются одна за другой в порядке их записи. Линейным называется алгоритм, выполнение шагов которого происходит последовательно в порядке возрастания их номеров. В схеме он изображается последовательностью вычислительных блоков и блоков ввода-вывода. * S1, S2 и т.д. - команды
Задача. В доме работает лифт, который может вместить или двух детей или одного взрослого. Пустой лифт не едет. Запишите алгоритм спуска с верхнего этажа мамы и двух девочек. Решение. Две девочки спускаются на лифте вниз; Одна девочка поднимается на лифте вверх; Мама спускается на лифте вниз; Вторая девочка поднимается на лифте вверх; Две девочки спускаются на лифте вниз. Две девочки спускаются на лифте вниз Одна девочка поднимается на лифте вверх Мама спускается на лифте вниз Вторая девочка поднимается на лифте вверх Две девочки спускаются на лифте вниз
2. «Ветвление» это часть алгоритма, в которой выполняется либо одна, либо другая последовательность действий в зависимости от результата проверки условия. Ветвлением (условием) называется алгоритм, в котором предусмотрено прохождение различных вариантов работы в зависимости от выполнения или не выполнения некоторого условия. В блок-схеме это условие записывается в ромб-блок сравнения. Формы ветвления полноенеполное S1S2 Условие S1 Условие ДаНетДаНет * S1, S2 и т.д. - команды
3. «Цикл» это часть алгоритма, в которой некоторую последовательность действий необходимо повторить несколько раз. Алгоритм циклической структуры алгоритм, в котором предусмотрено выполнение одной и той же последовательности действий. Циклом называется участок алгоритма, реализующий многократно повторяющиеся при различных значениях параметров однотипные вычисления (например, расчеты по одной и той же формуле), Алгоритм, содержащий цикл, называется циклическим. Конструкция цикла «до» Да
Конструкция цикла «пока» (В цикле «пока» тело цикла выполняется до тех пор, пока выполняется условие.)
Можно сказать, что первые языки программирования возникали еще до появления современных электронных вычислительных машин: уже в XIX веке были изобретены устройства, которые можно с долей условности назвать программируемыми к примеру, механические пианино и ткацкие станки. Для управления ими использовались наборы инструкций, которые в рамках современной классификации можно назвать предметно- ориентированными языками программирования.
К началу XX века для кодирования данных и управления разнообразными механическими операциями начали применяться перфокарты. Позднее, в годах, А. Чёрч и А. Тьюринг разработали математические абстракции лямбда-исчисление и машину Тьюринга соответственно для формализации алгоритмов; первая из упомянутых абстракций сохраняет свое влияние на построение языков программирования и по сей день.
В это же время, в 1940-е годы, появились электрические цифровые компьютеры и был разработан язык, который можно считать первым высокоуровневым языком программирования для ЭВМ «Plankalkül», созданный немецким инженером К. Цузе в период с 1943 по 1945 годы. Строилось программное обеспечение и для американского компьютера «Марк-1»; одна из активных участниц этого процесса, программист Грейс Хоппер, впоследствии разработала первый компилятор для языков программирования.
Программисты ЭВМ начала 1950-х годов, в особенности таких, как UNIVAC и IBM 701, при создании программ пользовались непосредственно машинным языком то есть писали на языке первого поколения. Вскоре на смену такому методу программирования пришло применение языков второго поколения, также ограниченных спецификациями конкретных машин, но более простых для запоминания. Они традиционно известны под наименованием языков ассемблера. Позднее, к концу десятилетия, языки второго поколения были усовершенствованы: в них появилась поддержка макрокоманд.
Одновременно с этим начали появляться уже и языки третьего поколения такие, как Фортран, Лисп и Кобол. Языки программирования этого типа более абстрактны и универсальны, не имея жесткой зависимости от конкретной аппаратной платформы и используемых на ней машинных команд. Обновленные версии перечисленных языков до сих пор имеют хождение в разработке программного обеспечения, и каждый из них оказал определенное влияние на последующее развитие языков программирования. Тогда же, в конце 1950-х годов, появился Алгол, также послуживший основой для ряда дальнейших разработок в этой сфере. Необходимо заметить, что на формат и применение ранних языков программирования в значительной степени влияли интерфейсные ограничения.