Алгоритм - понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.
Исполнитель алгоритма - это тот объект или субъект, для управления которым составлен алгоритм.
Система команд исполнителя (СКИ) - это вся совокупность команд, которые исполнитель умеет выполнять.
Свойства алгоритма: понятность, точность, конечность.
Понятность: алгоритм составляется только из команд, входящих в СКИ исполнителя.
Точность: каждая команда алгоритма управления определяет однозначное действие исполнителя.
Конечность (или результативность):выполнение алгоритма должно приводить к результату за конечное число шагов.
Среда исполнителя: обстановка, в которой функционирует исполнитель.
Определенная последовательность действий исполнителя всегда применяется к некоторым исходным данным. Например, для приготовления блюда по кулинарному рецепту нужны соответствующие продукты (данные). Для решения математической задачи (решения квадратного уравнения) нужны исходные числовые данные (коэффициенты уравнения).
Полный набор данных: необходимый и достаточный набор данных для решения поставленной задачи (получения искомого результата).
записи алгоритмов.
Наибольшую распространенность получили графический, словесный и в виде программ для ЭВМ.
Графический предполагает использование определенных графических символов - блоков.
Наименование блокаОбозначение блокаСодержаниеПроцесс Обработка информацииПринятие решения Логический блок проверки истинности или ложности некоторого условияПередача данных Ввод или вывод информацииПуск, остановка Начало или конец программыМодификация Организация циклического процесса - заголовок цикла
Совокупность блоков образует так называемую блок-схему алгоритма.
Словесная запись алгоритмов ориентирована, прежде всего на исполнителя-человека и допускает различную запись предписаний, но при этом запись должна быть достаточно точна.
При записи алгоритмов в виде программдля ЭВМ используются языки программирования - системы кодирования предписаний и правила их использования. Для записи алгоритмов в виде программ характерна высокая степень формализации.
Алгоритмы работы с величинами. Основные алгоритмические структуры.
Величина - это отдельный информационный объект, который имеет имя, значение и тип.
Исполнителем алгоритмов работы с величинами может быть человек или специальное техническое устройство, например компьютер. Такой исполнитель должен обладать памятью для хранения величин.
Величины бывают постоянными и переменными.
Постоянная величина (константа) не изменяет своего значения в ходе выполнения алгоритма. Константа может обозначаться собственным значением (числа 10, 3.5) или символическим именем (число ).
Переменная величина может изменять значение в ходе выполнения алгоритма. Переменная всегда обозначается символическим именем (X, A, R5 и т.п.).
Тип величины определяет множество значений, которые может принимать величина, и множество действий, которые можно выполнять с этой величиной. Основные типы величин: целый, вещественный, символьный, логический.
Выражение - запись, определяющая последовательность действий над величинами. Выражение может содержать константы, переменные, знаки операций, функции. Пример:
А + В; 2*X-Y; K + L - sin(Х)
Команда присваивания - команда исполнителя, в результате которой переменная получает новое значение. Формат команды:
<имя переменной>:=<выражение>
Исполнение команды присваивания происходит в таком порядке: сначала вычисляется <выражение>, затем, полученное значение присваивается переменной.
Пример. Пусть переменная А имела значение 6. Какое значение получит переменная А после выполнения команды: А:= 2 * А - 1? Решение. Вычисление выражения 2*А - 1 при А=6 даст число 11. Значит новое значение переменной А будет равно 11.
В дальнейшем будет предполагаться, что исполнителем алгоритмов работы с величинами является компьютер. Любой алгоритм может быть построен из команд присваивания, ввода, вывода, ветвления и цикла.
Команда ввода - команда, по которой значения переменных задаются через устройства ввода (например, клавиатуру).
Пример: ввод А - ввод значения переменной А с клавиатуры компьютера.
Команда вывода: команда, по которой значение величины отображается на устройстве вывода компьютера (например, на мониторе).
Пример: вывод X - значение переменной X выводится экран.
Команда ветвления - разделяет алгоритм на два пути в зависимости от некоторого условия; затем исполнение алгоритма выходит на общее продолжение. Ветвление бывает полное и неполное. Описание ветвления в блок-схемах и на Алгоритмическом языке:
Полное ветвлениеНеполное ветвлениеБлок-схемаесли < условие > то < Cерия 1 > иначе < Cерия > квесли < условие > то < Cерия > кв
Здесь под серией понимается одна или несколько последовательных команд; кв - конец ветвления.
Команда цикла обеспечивает повторное выполнение последовательности команд (тела цикла) по некоторому
var a, b: array[1..n] of integer; i, j, step, t: integer; flag: boolean;
begin Randomize; Writeln('Исходные элементы массива'); for i := 1 to n do begin a[i] := Random(10) - 5; Write(a[i]:4) end; { Сортируем массив (метод Шелла) } step := n div 2; while step > 0 do begin for j := n - step downto 1 do begin i := j; while i <= n - step do begin if a[i] > a[i + step] then begin t := a[i]; a[i] := a[i + step]; a[i + step] := t end; i := i + step end end; step := step div 2 end; { проходим по массиву и если элемент встречается более одного раза подряд, переносим его в другой массив } j := 0; t := a[1]; flag := false; for i := 2 to n do begin if (a[i] = t) and (not flag) then begin j := j + 1; b[j] := t; flag := true end else begin flag := false; t := a[i] end end; Writeln; Writeln('Отобранные элементы массива'); for i := 1 to j do Write(b[i]:4); Writeln end.
Предлагается хранить типы блоков в массиве. Каждый элемент - 2Б, количество элементов - 2^20 => всего требуется 2МБ.
При перезаписи блока и очередной переоценке необходимо учитывать типы данных в блоке до перезаписи (T0), после перезаписи (T1) и в соседних блоках (TL, TR).
Если T0 = T1, то количество кусков данных не изменяется, т.е. W[i+1] = W[i] TL = T0 = TR <> T1 -> W[i+1] = W[i] + 2 TL = T1 = TR <> T0 -> W[i+1] = W[i] - 2 TL = TR, T0 <> TL, T1 <> TL -> W[i+1] = W[i]
Если все четыре типа не совпадают, то W[i+1] = W[i] Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.
Алгоритм - понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.
Исполнитель алгоритма - это тот объект или субъект, для управления которым составлен алгоритм.
Система команд исполнителя (СКИ) - это вся совокупность команд, которые исполнитель умеет выполнять.
Свойства алгоритма: понятность, точность, конечность.
Понятность: алгоритм составляется только из команд, входящих в СКИ исполнителя.
Точность: каждая команда алгоритма управления определяет однозначное действие исполнителя.
Конечность (или результативность):выполнение алгоритма должно приводить к результату за конечное число шагов.
Среда исполнителя: обстановка, в которой функционирует исполнитель.
Определенная последовательность действий исполнителя всегда применяется к некоторым исходным данным. Например, для приготовления блюда по кулинарному рецепту нужны соответствующие продукты (данные). Для решения математической задачи (решения квадратного уравнения) нужны исходные числовые данные (коэффициенты уравнения).
Полный набор данных: необходимый и достаточный набор данных для решения поставленной задачи (получения искомого результата).
записи алгоритмов.
Наибольшую распространенность получили графический, словесный и в виде программ для ЭВМ.
Графический предполагает использование определенных графических символов - блоков.
Наименование блокаОбозначение блокаСодержаниеПроцесс
Обработка информацииПринятие решения
Логический блок проверки истинности или ложности некоторого условияПередача данных
Ввод или вывод информацииПуск, остановка
Начало или конец программыМодификация
Организация циклического процесса - заголовок цикла
Совокупность блоков образует так называемую блок-схему алгоритма.
Словесная запись алгоритмов ориентирована, прежде всего на исполнителя-человека и допускает различную запись предписаний, но при этом запись должна быть достаточно точна.
При записи алгоритмов в виде программдля ЭВМ используются языки программирования - системы кодирования предписаний и правила их использования. Для записи алгоритмов в виде программ характерна высокая степень формализации.
Алгоритмы работы с величинами. Основные алгоритмические структуры.
Величина - это отдельный информационный объект, который имеет имя, значение и тип.
Исполнителем алгоритмов работы с величинами может быть человек или специальное техническое устройство, например компьютер. Такой исполнитель должен обладать памятью для хранения величин.
Величины бывают постоянными и переменными.
Постоянная величина (константа) не изменяет своего значения в ходе выполнения алгоритма. Константа может обозначаться собственным значением (числа 10, 3.5) или символическим именем (число ).
Переменная величина может изменять значение в ходе выполнения алгоритма. Переменная всегда обозначается символическим именем (X, A, R5 и т.п.).
Тип величины определяет множество значений, которые может принимать величина, и множество действий, которые можно выполнять с этой величиной. Основные типы величин: целый, вещественный, символьный, логический.
Выражение - запись, определяющая последовательность действий над величинами. Выражение может содержать константы, переменные, знаки операций, функции. Пример:
А + В; 2*X-Y; K + L - sin(Х)
Команда присваивания - команда исполнителя, в результате которой переменная получает новое значение. Формат команды:
<имя переменной>:=<выражение>
Исполнение команды присваивания происходит в таком порядке: сначала вычисляется <выражение>, затем, полученное значение присваивается переменной.
Пример. Пусть переменная А имела значение 6. Какое значение получит переменная А после выполнения команды: А:= 2 * А - 1?
Решение. Вычисление выражения 2*А - 1 при А=6 даст число 11. Значит новое значение переменной А будет равно 11.
В дальнейшем будет предполагаться, что исполнителем алгоритмов работы с величинами является компьютер. Любой алгоритм может быть построен из команд присваивания, ввода, вывода, ветвления и цикла.
Команда ввода - команда, по которой значения переменных задаются через устройства ввода (например, клавиатуру).
Пример: ввод А - ввод значения переменной А с клавиатуры компьютера.
Команда вывода: команда, по которой значение величины отображается на устройстве вывода компьютера (например, на мониторе).
Пример: вывод X - значение переменной X выводится экран.
Команда ветвления - разделяет алгоритм на два пути в зависимости от некоторого условия; затем исполнение алгоритма выходит на общее продолжение. Ветвление бывает полное и неполное. Описание ветвления в блок-схемах и на Алгоритмическом языке:
Полное ветвлениеНеполное ветвлениеБлок-схемаесли < условие >
то < Cерия 1 >
иначе < Cерия >
квесли < условие >
то < Cерия >
кв
Здесь под серией понимается одна или несколько последовательных команд; кв - конец ветвления.
Команда цикла обеспечивает повторное выполнение последовательности команд (тела цикла) по некоторому