Алгоритмы обработки информации.ppt
- Количество слайдов: 20
Алгоритмы обработки информации Определение, свойства и описание алгоритма
История происхождения Слово «алгоритм» пришло с Востока, в результате перевода с арабского на европейские языки имени великого ученого IX века Аль. Хорезми, который изложил правила математических действий над числами в позиционной десятичной системе счисления. (Аль-Хорезми [имя] + Аритмос [число] → алгоритм)
Определение Алгоритм – понятное и точное предписание исполнителю выполнить конечную последовательность действий, приводящих от исходных данных к искомому результату.
Исполнитель алгоритма Возможности исполнителя определяются его системой команд – СКИ (Система команд исполнителя). Это конечное множество команд-инструкций, которые исполнитель понимает, т. е. умеет выполнять
Свойства алгоритма n Понятность - состоит в том, что в алгоритме должны быть использованы только команды из СКИ. Пример нарушения понятности В программе на Паскале записан оператор: D: = b^2 – 4*a*c; Программист имел в виду, что значок ^ обозначает возведение в степень. Но такой операции (команды) в Паскале нет. Программа не может быть выполнена.
Свойства алгоритма n Дискретность означает, что каждая команда алгоритма должна выполняться отдельно от других: выполнение должно начинаться после окончания предыдущей команды и закончится до начала выполнения следующей команды. Иллюстрация дискретности Фрагмент алгоритма X: =1; X: =X+1; Y: =Y-2; Каждая следующая команда использует результат выполнения предыдущей команды, поэтому может быть выполнена только после ее завершения.
Свойства алгоритма n Конечность (результативность) – результат должен быть получен за конечное число шагов выполнения алгоритма Пример нарушения конечности Фрагмент программы на Паскале |Real s, r; S: =0; k: =1; While k<100 do s: =s + k; Это бесконечный цикл, поскольку значение r не изменяется. Компьютер прервет выполнение программы, когда значение S выйдет из допустимого диапазона для вещественных чисел.
Различие «команда алгоритма» и «шаг» (действия) алгоритма Шаг – это действие, предпринимаемое исполнителем по команде алгоритма Если алгоритм содержит циклы, то число шагов при его выполнении может быть большим, чем число команд. А за счет выполнения ветвлений число шагов при его выполнении может оказаться меньшим, чем число команд.
Свойства алгоритма n Точность алгоритма означает, что каждая команда должна определять однозначное действие исполнителя, не требуя от него «самостоятельных» решений Например, если команда содержит числовой параметр, то значение этого параметра должно быть определено до выполнения этой команды.
Свойства алгоритма n Массовость – означает, что алгоритм должен быть предназначен для решения не одной частной задачи, а некоторого класса задач. Например, алгоритм должен решать не только квадратное уравнение: 3 х2 -5 х+1=0, но и любые квадратные уравнения вида ax 2+bx+c=0 Свойство массовости не является необходимым свойством алгоритма, оно определяет его качество.
Универсальность алгоритма по отношению к исходным данным При любых значениях исходных данных алгоритм должен правильно выполняться и не должен аварийно завершать свое выполнение. Под аварийным завершением понимается такая ситуация, когда исполнитель не может выполнить какую-то из команд алгоритма. Например, выполнить деление на ноль или вычислить квадратный корень из отрицательного числа.
Способы описания алгоритмов Язык блок-схем Учебный алгоритмический язык (УАЯ) Языки программирования Графическое отображение алгоритма Структурное описание Системы описания с русскими служебными программ для словами выполнения на компьютере
Основные элементы блок-схемы
Алгоритмические структуры n n n Следование Ветвление Цикл
Следование Язык блок-схем Ввод a, b, c D: =b 2 -4 ac Учебный алгоритмический язык Ввод a, b, c D: =b 2 -4 ac Язык программирования Паскаль Readln (a, b, c); D: =b-b-4*a*c;
Ветвление Язык блок-схем Учебный алгоритмический язык Если d≥ 0 то да d≥ 0 нет “нет корней” иначе Вывод “нет корней” кв Язык программирования Паскаль If d>=0 then begin x 1: =(-b+sqrt(D))/2*a; x 2: =(-b-sqrt(D))/2*a; end else Writeln(‘нет корней’)
Цикл с предусловием Язык блок-схем F: =1; k: =1 нет k≤ N да F: =F·k k: = k+1 Учебный алгоритмический язык F: =1; k: =1 Пока k ≤ N повторять нц F: =F ·k K: = k+1 кц Язык программирования Паскаль F: =1; k: =1; While k<=N do begin F: =f*k; K: =k+1; End;
Цикл с постусловием Язык блок-схем F: =1; k: =1 F: =F·k k: = k+1 нет k≤ N да Учебный алгоритмический язык F: =1; k: =1 повторять F: =F ·k K: = k+1 до k > N Язык программирования Паскаль F: =1; k: =1; repeat F: =f*k; K: =k+1; Until k>N;
Цикл с параметром Язык блок-схем F: =1 K: =1, N, 1 да F: =F·k Учебный алгоритмический язык F: =1; k: =1 для k : =1 до N шаг 1 нц F: =F ·k кц Язык программирования Паскаль F: =1; for k: =1 to N do F: =f*k;
Вопросы и задания Что такое система команд исполнителя? 2. Определите систему команд для автоматического кассового аппарата в магазине. 3. В чем разница между понятиями «команда алгоритма» и «шаг выполнения алгоритма» ? Приведите примеры, когда не совпадает число команд и число шагов. 4. Постройте алгоритм решения следующей задачи. Дано два числа: a и b. Вычислить Запишите алгоритм на языке блок-схем и на УАЯ 1.
Алгоритмы обработки информации.ppt