Алгоритм – последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью понятных исполнителю команд.
Исполнителем алгоритма может быть человек или автоматическое устройство – компьютеры, роботы, станки, спутники, сложная бытовая техника и даже детские игрушки. Каждый алгоритм создается в расчете на вполне конкретного исполнителя.
Разработчики систем искусственного интеллекта пытаются научить машину, подобно человеку, самостоятельно строить программу своих действий, исходя из условия задачи.
Ставится цель превращения компьютера из формального исполнителя в интеллектуального исполнителя.
Работа обоих исполнителей состоит из четырёх блоков, но формальный исполнитель работает по уже готовой программе, а интеллектуальный – сам составляет программу и получает результат.
Информация для компьютера - данные и программы, представленные в форме, приемлемой для её передачи и обработки на компьютере.
Для работы с данными компьютеру необходимы инструкции (команды, правила действия). Команды формируются в перечень команд.
Компьютер является универсальным исполнителем по обработке информации. Значит, для него, как для любого исполнителя, существует определённая система команд (СКИ). Такая система команд для компьютера называется языком машинных команд (ЯМК)
Программа для компьютера – это алгоритм, разработанный на ЯМК. Или, Программа управления компьютером – это последовательность команд ЯМК, где каждая команда – директива для процессора на выполнение определённого действия.
Согласно принципам Джона фон Неймана, программа во время её исполнения и данные, которые она обрабатывает, находятся в оперативной памяти (принцип хранимой в памяти программы). Процессор исполняет программу начиная с первой команды и заканчивая последней.
Устройством, которое обрабатывает информацию в компьютере, является процессор, следовательно, алгоритм должен использовать систему команд процессора, или другими словами записан на машинном языке, представляющем собой последовательности нулей и единиц
Сначала программисты, работавшие на компьютерах первого поколения (50-е – 60-е г.), составляли программы на ЯМК (в двоичных кодах), но это довольно сложная работа, поэтому для облегчения программирования были созданы языки программирования высокого уровня (ЯПВУ) - это искусственно созданные языки с несколькими десятками слов (операторов) и строгими правилами синтаксиса. Составление программ на ЯПВУ намного проще. Примеры ЯПВУ: Фортран, Паскаль, Бейсик, Си и др.
Для того чтобы процессор мог выполнить программу, написанную на языке программирования, она и данные с которыми она работает должны быть загружены в оперативную память. Программа написана и загружена в оперативную память и для того чтобы процессор ее выполнил в оперативной памяти, должна быть еще и программа переводчик (транслятор), который переводит программу с языка высокого уровня на язык машинных команд
Таким образом, цепочка событий от составления программы на ЯПВУ до получения результатов решения задачи выглядит так
Человек всегда должен понимать ограниченность возможность компьютера как исполнителя, необходимость предусмотреть все тонкости команд, поручаемых компьютеру. Человек разрабатывает алгоритм, записывает его на ЯПВУ и анализирует результаты выполнения программы.
Компьютер является формальным исполнителем программ.
Итак, компьютер не может обойтись без программы и исходных данных, подготовить их может только человек.
Поэтому можно говорить, что решение задач компьютером - это формальное исполнение алгоритма (программы), а компьютер является формальным исполнителем.
Компьютер может быть использован для решения самых разнообразных задач, поэтому, исходя из условия задачи, человек решает, каким программным средством пользоваться. Если в состав ПО входят программы, подходящие для решения задач человека, то удобнее ими воспользоваться (текстовый редактор, электронные таблицы, базы данных, презентации).
В случае, если нельзя воспользоваться готовым программным обеспечением, приходится прибегать к программированию (операционные системы, доработка ОС, трансляторы, драйверы, архиваторы, антивирусы).
Принцип программы, хранимой в памяти компьютера, считается важнейшей идеей современной компьютерной архитектуры. Суть идеи заключается в том, что
1) программа вычислений вводится в память ЭВМ и хранится в ней наравне с исходными числами;2) команды, составляющие программу, представлены в числовом коде по форме ничем не отличающемся от чисел.
Определение 1:Алгоритм - это система точных и понятных предписаний о содержании и последовательности выполнения конечного числа действий, необходимых для решения любой задачи данного типа.
Определение 2:Алгоритм - это правило, предписывающее последовательность действий над входной информацией и приводящее к результату.
Понятие алгоритма
Свойства алгоритма.
1. Универсальность (массовость) - применимость алгоритма к различным наборам исходных данных.
2. Дискретность - процесс решения задачи по алгоритму разбит на отдельные действия.
3. Конечность - каждое из действий и весь алгоритм в целом обязательно завершаются.
4. Результативность - по завершении выполнения алгоритма обязательно получается конечный результат.
5. Выполнимость (эффективность, конечность) - результата алгоритма достигается за конечное число шагов.
6. Детерминированность (определенность) - алгоритм не должен содержать предписаний, смысл которых может восприниматься неоднозначно. Т.е. одно и то же предписание после исполнения должно давать один и тот же результат.
7. Последовательность (понятность) – порядок исполнения команд должен быть понятен исполнителю и не должен допускать неоднозначности.
Способы описания алгоритмов
Вербальный (словесный), когда алгоритм описывается на человеческом языке;
Графический, когда алгоритм описывается с помощью набора графических изображений.
Символьный, когда алгоритм описывается с помощью специального набора символов (специального языка);
Словесная форма записи алгоритмов обычно используется для алгоритмов, ориентированных на исполнителя-человека. Команды такого алгоритма выполняются в естественной последовательности, если не оговорено противного.
Графическая запись с помощью блок-схем осуществляется рисованием последовательности геометрических фигур, каждая из которых подразумевает выполнение определенного действия алгоритма. Порядок выполнения действий указывается стрелками. Написание алгоритмов с помощью блок-схем регламентируется ГОСТом.
Блок-схемы
Преимущества:
наглядность: каждая операция вычислительного процесса изображается отдельной геометрической фигурой.
графическое изображение алгоритма наглядно показывает разветвления путей решения задачи в зависимости от различных условий, повторение отдельных этапов вычислительного процесса и Другие детали.
Виды блоков
Наименование | Обозначение | Функции |
Процесс | Выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных. | |
Ввод | Преобразование данных в форму, пригодную для обработки (ввод) | |
Решение | Выбор направления выполнения алгоритма в зависимости от некоторых переменных условий. | |
Предопреде-ленный процесс | Использование ранее созданных и отдельно написанных программ (подпрограмм). | |
Вывод |
|
Линейные алгоритмы
В линейном алгоритме операции выполняются последовательно, в порядке их записи. Каждая операция является самостоятельной, независимой от каких-либо условий. На схеме блоки, отображающие эти операции, располагаются в линейной последовательности.
Алгоритм с ветвлением
В разветвляющемся алгоритме выполнение действия зависит от условия
Ветвление в программе — это выбор одной из нескольких последовательностей команд при выполнении программы. Выбор направления зависит от заранее определенного признака, который может относиться к исходным данным, к промежуточным или конечным результатам. Признак характеризует свойство данных и имеет два или более значений.
Алгоритм с ветвлением
Направление ветвления выбирается логической проверкой, в результате которой возможны два ответа:
«да» — условие выполнено
«нет» — условие не выполнено.
Следует иметь в виду, что, хотя на схеме алгоритма должны быть показаны все возможные направления вычислений в зависимости от выполнения определенного условия (или условий), при однократном прохождении программы процесс реализуется только по одной ветви, а остальные исключаются.
Важно! Любая ветвь, по которой осуществляются вычисления, должна приводить к завершению вычислительного процесса.
Циклические алгоритмы
Алгоритмы циклической структуры: в зависимости от выполнения или невыполнения какого-либо условия выполняется повторяющаяся последовательность действий, называющаяся телом цикла. Различают циклы с предусловием и постусловием:
Этапы организации цикла
подготовка (инициализация) цикла (И);
выполнение вычислений цикла (тело цикла) (Т);
модификация параметров (М);
проверка условия окончания цикла (У).
27
Языки программирования содержат операторы цикла со счетчиком. Они используются, когда изначально известно, сколько итераций (проходов) цикла необходимо выполнить. Модель цикла со счетчиком может быть описана с помощью классического цикла с предусловием.
Инициализация переменной счетчика
Тело цикла
Изменение счетчика
Условие на значение счетчика
да
нет
Продолжение выполнения АЛГОРИТМА
Виды циклов
Цикл называется детерминированным, если число повторений тела цикла заранее известно или определено.
Цикл называется итерационным, если число повторений тела цикла заранее неизвестно, а зависит от значений параметров (некоторых переменных), участвующих в вычислениях.
Этапы подготовки и решения задач на ЭВМ
На ЭВМ могут решаться задачи различного характера, например:
научно-инженерные; разработки системного программного обеспечения; обучения; управления производственными процессами и т. д.
В процессе подготовки и решения на ЭВМ научно -инженерных задач можно выделить следующие этапы:
постановка задачи;
математическое описание задачи;
выбор и обоснование метода решения;
алгоритмизация вычислительного процесса;
составление программы;
отладка программы;
решение задачи на ЭВМ и анализ результатов.
В задачах другого класса некоторые этапы могут отсутствовать, например, в задачах разработки системного программного обеспечения отсутствует математическое описание.
© ООО «Знанио»
С вами с 2009 года.