Средства и языки представления алгоритмов
Средства описания алгоритмов
Алгоритм моделирует решение задачи в виде точно определенной последовательности действий для некоторого исполнителя по преобразованию исходных данных в результирующие.
Для его описания используется алгоритмический язык – набор символов и правил образования и истолкования конструкций из этих символов для записи алгоритмов.
Основными изобразительными средствами алгоритмов являются следующие способы их записи:
Словесный способ предполагает словесное (без формул и таблиц) описание алгоритма. Этим способом можно описывать алгоритмы с любой степенью детализации.
При этом способе отсутствует наглядность вычислительного процесса, т.к. нет достаточной формализации.
На рисунке 3.1 приведен пример словесной записи алгоритма. Пусть задан массив чисел. Требуется проверить, все ли числа принадлежат заданному интервалу. Интервал задается границами А и В.
Рисунок 3.1. Пример словесной записи алгоритма
Никаких правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания не имеет широкого распространения, так как допускает неоднозначность толкования при описании некоторых действий.
Формульно-словесный способ более компактный. Он предполагает задание инструкций с использованием математических символов и выражений в сочетании со словесными пояснениями.
Например, требуется написать алгоритм вычисления площади треугольника по трем сторонам (рисунок 3.2).
Рисунок 3.2. Пример формульно-словесной записи алгоритма
При использовании этого способа может быть достигнута любая степень детализации, более наглядно, но не строго формально.
Графический способ получил наибольшее распространение. В этом способе алгоритм представляется в виде схемы, состоящей из элементов символов, отражающих отдельные операции технологического процесса обработки данных и отдельные вычислительные операции.
Каждый этап процесса переработки данных представляется в виде геометрических фигур (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций (таблица 3.1).
Таблица 3.1 Основные конструкции, применяемые для построения блок-схем
Оператор блок-схемы | Описание |
| Блок, характеризующий начало/конец алгоритма |
| Блок, предназначенный для описания отдельных действий (процесс) |
| Блок, предназначенный для обращения к вспомогательным алгоритмам (предопределенный процесс) |
| Блок ввода/вывода |
| Блок «решение» (проверка условия или условный блок) |
| Блок, описывающий цикл |
| Соединительные блоки |
Алгоритмы, представленные графическими средствами, получили название визуальные алгоритмы.
Общими правилами при проектировании визуальных алгоритмов являются следующие:
— В начале алгоритма должны быть блоки ввода значений входных данных.
— После ввода значений входных данных могут следовать блоки обработки и блоки условия.
— В конце алгоритма должны располагаться блоки вывода значений выходных данных.
— В алгоритме должен быть только один блок начала и один блок окончания.
— Связи между блоками указываются направленными или ненаправленными линиями.
Псевдокод позволяет формально изображать логику программы, не заботясь при этом о синтаксических особенностях конкретного языка программирования. Обычно представляет собой смесь операторов языка программирования и естественного языка. Является средством представления логики программы, которое можно применять вместо блок-схемы (рисунок 3.3).
Рисунок 3.3. Запись алгоритма в виде псевдокода
Строгих синтаксических правил для записи псевдокода не существует, Это облегчает запись алгоритма при проектировании и позволяет описать алгоритм, используя любой набор команд. Однако в псевдокоде обычно используются некоторые конструкции, присущие формальным языкам, что облегчает переход от псевдокода к записи алгоритма на языке программирования. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором используемых слон и конструкций.
Таблицы значений представляют алгоритм неявно, как некоторое преобразование конкретных исходных данных в выходные. Табличный способ описания алгоритмов может быть с успехом применен для проверки правильности функционирования разработанного алгоритма на конкретных тестовых наборах входных данных, которые вместе с результатами выполнения алгоритма фиксируются в «таблицах трассировки». Данный способ носит, в основном, вспомогательный характер.
Операторный способ предполагает представление алгоритма в виде последовательности операторов. Возможность рассматривать дискретный алгоритм, являющийся совокупностью элементарных предписаний (инструкций), как совокупность элементарных операторов, следует из того, что каждое элементарное предписание можно считать оператором. Для описания элементарных операторов вводятся обозначения, определяемые языком программирования.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Средства описания алгоритмов
Алгоритм моделирует решение задачи в виде точно определенной последовательности действий для некоторого исполнителя по преобразованию исходных данных в результирующие.
Для его описания используется алгоритмический язык – набор символов и правил образования и истолкования конструкций из этих символов для записи алгоритмов.
Основными изобразительными средствами алгоритмов являются следующие способы их записи:
Словесный способ предполагает словесное (без формул и таблиц) описание алгоритма. Этим способом можно описывать алгоритмы с любой степенью детализации.
При этом способе отсутствует наглядность вычислительного процесса, т.к. нет достаточной формализации.
На рисунке 3.1 приведен пример словесной записи алгоритма. Пусть задан массив чисел. Требуется проверить, все ли числа принадлежат заданному интервалу. Интервал задается границами А и В.
Рисунок 3.1. Пример словесной записи алгоритма
Никаких правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания не имеет широкого распространения, так как допускает неоднозначность толкования при описании некоторых действий.
Формульно-словесный способ более компактный. Он предполагает задание инструкций с использованием математических символов и выражений в сочетании со словесными пояснениями.
Например, требуется написать алгоритм вычисления площади треугольника по трем сторонам (рисунок 3.2).
Рисунок 3.2. Пример формульно-словесной записи алгоритма
При использовании этого способа может быть достигнута любая степень детализации, более наглядно, но не строго формально.
Графический способ получил наибольшее распространение. В этом способе алгоритм представляется в виде схемы, состоящей из элементов символов, отражающих отдельные операции технологического процесса обработки данных и отдельные вычислительные операции.
Каждый этап процесса переработки данных представляется в виде геометрических фигур (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций (таблица 3.1).
Таблица 3.1 Основные конструкции, применяемые для построения блок-схем
Оператор блок-схемы | Описание |
Блок, характеризующий начало/конец алгоритма | |
Блок, предназначенный для описания отдельных действий (процесс) | |
Блок, предназначенный для обращения к вспомогательным алгоритмам (предопределенный процесс) | |
Блок ввода/вывода | |
Блок «решение» (проверка условия или условный блок) | |
Блок, описывающий цикл | |
Соединительные блоки |
Алгоритмы, представленные графическими средствами, получили название визуальные алгоритмы.
Общими правилами при проектировании визуальных алгоритмов являются следующие:
— В начале алгоритма должны быть блоки ввода значений входных данных.
— После ввода значений входных данных могут следовать блоки обработки и блоки условия.
— В конце алгоритма должны располагаться блоки вывода значений выходных данных.
— В алгоритме должен быть только один блок начала и один блок окончания.
— Связи между блоками указываются направленными или ненаправленными линиями.
Псевдокод позволяет формально изображать логику программы, не заботясь при этом о синтаксических особенностях конкретного языка программирования. Обычно представляет собой смесь операторов языка программирования и естественного языка. Является средством представления логики программы, которое можно применять вместо блок-схемы (рисунок 3.3).
Рисунок 3.3. Запись алгоритма в виде псевдокода
Строгих синтаксических правил для записи псевдокода не существует, Это облегчает запись алгоритма при проектировании и позволяет описать алгоритм, используя любой набор команд. Однако в псевдокоде обычно используются некоторые конструкции, присущие формальным языкам, что облегчает переход от псевдокода к записи алгоритма на языке программирования. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором используемых слон и конструкций.
Таблицы значений представляют алгоритм неявно, как некоторое преобразование конкретных исходных данных в выходные. Табличный способ описания алгоритмов может быть с успехом применен для проверки правильности функционирования разработанного алгоритма на конкретных тестовых наборах входных данных, которые вместе с результатами выполнения алгоритма фиксируются в таблицах трассировки. Данный способ носит, в основном, вспомогательный характер.
Операторный способ предполагает представление алгоритма в виде последовательности операторов. Возможность рассматривать дискретный алгоритм, являющийся совокупностью элементарных предписаний (инструкций), как совокупность элементарных операторов, следует из того, что каждое элементарное предписание можно считать оператором. Для описания элементарных операторов вводятся обозначения, определяемые языком программирования.
Таким образом, все способы представления алгоритмов можно считать взаимодополняющими друг друга. Например, на этапе проектирования алгоритмов наилучшим способом является графическое представление, на этапе проверки алгоритма — табличное описание, на этапе применения — запись в виде программы.
Статьи к прочтению:
Такое описание Ада вы услышите впервые | Умар аль-Банна
Похожие статьи:
Для записи алгоритмов используют различные способы в зависимости от предназначения алгоритма. Рассмотрим следующие способы описания алгоритма:…
Для разработки структуры программы удобнее пользоваться записью алгоритма в виде блок-схемы (в англоязычной литературе используется термин flow-chart)….
Средства и языки описания (представления) алгоритмов
Автор: Пользователь скрыл имя, 17 Января 2012 в 21:13, курсовая работа
Описание работы
Работа содержит 1 файл
курсовая.doc
Больше всего программистам нравится в интерпретаторах возможность получения быстрого ответа. Здесь нет необходимости в компилировании, так как интерпретатор всегда готов для вмешательства в вашу программу. Введите RUN и результат вашего самого последнего изменения оказывается на экране. Однако интерпретаторные языки имеют недостатки. Необходимо, например, иметь копию интерпретатора в памяти все время, тогда как многие возможности интерпретатора, а, следовательно, и его возможности могут не быть необходимыми для исполнения конкретной программы. Слабо различимым недостатком интерпретаторов является то, что они имеют тенденцию отбивать охоту к хорошему стилю программирования. Поскольку комментарии и другие формализуемые детали занимают значительное место программной памяти, люди стремятся ими не пользоваться. Хуже всего то, что интерпретаторы тихоходны. Ими затрачивается слишком много времени на разгадывание того, что делать, вместо того чтобы заниматься действительно делом. При исполнении программных операторов, интерпретатор должен сначала сканировать каждый оператор с целью прочтения его содержимого (что этот человек просит меня сделать?), а затем выполнить запрошенную операцию. Операторы в циклах сканируются излишне много.
Итак, мы дали понятие алгоритма, определили его свойства и способы записи, рассмотрели классификацию и языки описания алгоритмов.
На основании вышеизложенного сделаем краткие выводы.
Любой человек постоянно встречается с множеством задач: от самых простых и хорошо известных до очень сложных. Для множества из них существуют определенные правила (инструкции, предписания), объясняющие исполнителю, как решать данную задачу. Эти правила человек может изучить заранее или сформулировать сам в процессе решения. Чем более точно и однозначно будут описаны правила решения задач, тем быстрее человек овладеет ими и будет эффективнее их применять. Такие правила принято называть алгоритмами.
Существуют несколько общих свойств алгоритмов, позволяющих отличать алгоритмы от других инструкций: это дискретность, определенность, результативность, массовость.
Различают три типа базовых структур: следование, развилка и цикл. В зависимости от применяемых базовых структур различают следующие типы алгоритмов: линейные, разветвляющиеся и циклические.
Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько «близок к машине», что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй цели идеально отвечает язык, который настолько «близок к решаемой задаче», чтобы концепции ее решения можно было выражать прямо и коротко.
Средства представления алгоритмов
АЛГОРИТМЫ
Основные понятия
Понятие «алгоритм» появилось в девятом веке и связано с именем
математика Аль-Хорезми, который сформулировал правила выполнения
четырех арифметических действий над многозначными числами.
В настоящее время понятие алгоритма – одно из фундаментальных
понятий науки информатики. С одной стороны, алгоритм является
предметом изучения такой отрасли математики как теория алгоритмов, с
другой стороны, в информатике существует неформальное определение
алгоритма, и алгоритмизация выступает в качестве общего
Алгоритм– это точно определенная последовательность действий
для некоторого исполнителя, выполняемых по строго определенным
правилам и приводящих через некоторое количество шагов
Исполнитель алгоритмовопределяет элементарные действия, из
которых формируется алгоритм. Отдельные действия, составляющие
алгоритм, называются операциями. При этом под операцией понимается
как какое-то единичное действие, например, сложение, так и группа
Основными особенностями любого алгоритма являются решение
задачи в обобщенном виде и возможность выполнять действия по
решению задачи для конкретных значений (не только человеку, но и
различным техническим устройствам (исполнителям)). Основным
исполнителем несложных алгоритмов является человек. Достаточно
вспомнить последовательность действий для решения систем линейных
уравнений, вычисления корней уравнений.
При решении сложных задач исполнителем является программное
обеспечение ЭВМ, и составление алгоритма решения задачи является
необходимым этапом, детализирующим метод решения для
определенность – выполнив очередное действие, исполнитель
должен точно знать, что ему делать дальше;
дискретность – прежде, чем выполнить определенное действие,
надо выполнить предыдущее;
массовость – по одному и тому же алгоритму решаются
однотипные задачи и неоднократно;
понятность – алгоритм строится человеком для конкретного
исполнителя и должен быть ему понятен. Это облегчает его проверку и
модификацию при необходимости;
результативность – алгоритм всегда должен приводить
Мы видим, что в процессе формального решения задачи ее решение
сначала описывается на языке математики в виде системы формул, а затем
на языке алгоритмов в виде некоторого процесса, в котором используются
ранее определенные математические формулы и условия их выполнения.
Таким образом, алгоритм рассматривается как средство описания
процесса решения задачи, как связующее, промежуточное звено в цепочке
«метод решения – реализующая программа».
Средства представления алгоритмов
Построение алгоритмов подчиняется отдельным законам, использует
специальный язык для обозначений основных понятий и терминов,
активно используется для описания методов решения задач.
Алгоритм, реализующий решение задачи, можно задать различными
способами на основе различных языковых средств: графических,
Графические средствапредставления алгоритмов имеют ряд
преимуществ благодаря визуальности и явному отображению процесса
решения задачи. Алгоритмы, представленные на языке графических
объектов, получили название визуальные алгоритмы.
Текстовое описаниеалгоритма является достаточно компактным и
может быть реализовано на абстрактном или реальном языках
программирования в виде программы для ЭВМ. Таблицы значений
представляют алгоритм неявно, как некоторое преобразование конкретных
исходных данных в выходные.
Табличный способописания алгоритмов может быть с успехом
применен для проверки правильности функционирования разработанного
алгоритма на конкретных тестовых наборах входных данных, которые
вместе с результатами выполнения алгоритма фиксируются в «таблицах
Таким образом, все три способа представления алгоритмов можно
считать взаимодополняющими друг друга. На этапе проектирования
алгоритмов наилучшим способом является графическое представление, на
этапе проверки алгоритма – табличное описание, на этапе применения –
текстовая запись в виде программы.
Визуальные алгоритмы
При проектировании визуальных алгоритмов используют следующие
графические блоки, представленные на рис. 2.
Рассмотрим общие правила при проектировании визуальных
в начале алгоритма должны быть блоки ввода значений
после ввода значений входных данных могут следовать
блоки обработки и блоки условия;
в конце алгоритма должны располагаться блоки вывода
значений выходных данных;
в алгоритме должен быть только один блок начала и один
связи между блоками указываются направленными или
Этап проектирования алгоритма следует за этапом выбора
формальной модели и методов решения задачи, на котором определены
входные и выходные данные, а также зависимости между ними.
При построении алгоритмов для сложной задачи используют
системный подход с использованием последовательной декомпозиции
решаемой задачи на ряд подзадач до тех пор, пока не будут определены
задачи, для которых алгоритмическое решение известно или оно может
быть оперативно найдено.
Одним из системных методов разработки алгоритмов является метод
структурной алгоритмизации. Этот метод основан на визуальном
представлении алгоритма в виде последовательности управляющих
структурных фрагментов. Выделяют три базовые управляющие процессом
обработки информации структуры: композицию, альтернативу и итерацию.
С помощью этих структур можно описать решение большого класса задач
Композиция (следование)– это линейная управляющая
конструкция, не содержащая альтернативу и итерацию. Она предназначена
для описания единственного процесса обработки информации.
Альтернатива– это нелинейная управляющая конструкция, не
содержащая итерацию. Она предназначена для описания процессов
решения различных задач обработки информации, выбор которых зависит
от значений входных данных.
Итерация– это циклическая управляющая конструкция, которая
содержит композицию и ветвление. Она предназначена для организации
повторяющихся процессов обработки последовательности
Линейные алгоритмы не содержат блока условия. Они
предназначены для представления линейных процессов. Такие алгоритмы
применяют для описания обобщенного решения задачи в виде
Пример линейного алгоритма приведен на рис. 3.
В соответствии с наличием в алгоритмах управляющих структур
композиции, альтернативы и итерации алгоритмы классифицируют на
линейные, разветвленные и циклические алгоритмы.
Разветвленные алгоритмы
Разветвленные алгоритмыв своем составе содержат блок условия
и различные конструкции ветвления. Ветвление– это структура,
обеспечивающая выбор между альтернативами.
Каждая управляющая структура ветвления имеет один вход и один
выход. Ветвления содержат блок условия, в котором записывают
логические условия, такие как А > С, X С принимает значение «истина» или «ложь» и процесс вычислений
включает блок действия Z = A или Z = C. Аналогично происходит и в
управляющей структуре неполного ветвления (рис. 4, б). Только в этом
Пример 4. Составить алгоритм определения корней уравнения X 2 +B*X+C=0.
Решение. При составлении этого алгоритма надо рассмотреть случаи, когда
уравнение не имеет корней и когда имеется только один корень. Обозначим корни
уравнения через переменные Х1, Х2.
D – промежуточная переменная для вычисления дискриминанта.
Алгоритм вычисления корней уравнения заданного вида приведен на рис. 9.
Задания для самостоятельного выполнения
Цель заданий. Приобрести умения в синтезе формальной и
алгоритмической моделей решения задач. Сформировать компетенции
анализа и синтеза алгоритмических моделей при решении простых задач.
Порядок выполнения.Составить формальные и алгоритмические
модели решения следующих задач:
1. В книжном магазине вы желаете купить три книги. У вас имеется
небольшая сумма наличных денег и пластиковая карта, на счету которой
большая сумма денег. Вам бы не хотелось сегодня пользоваться
пластиковой картой, так как Вы в дальнейшем запланировали крупную
покупку. Определите способ покупки.
2. Определите вариант пути от дома до места учебы, в зависимости от
времени выхода из дома и времени начала учебных занятий.
3. В избирательной компании в органы власти участвуют две партии:
зеленых и прозрачных. Какая информация будет опубликована в СМИ по
4. Для двух чисел Х, Y определить, являются ли они корнями уравнения
5. Определить, является ли точка с координатами X, Y точкой пересечения
диагоналей квадрата со стороной R, одна вершина которого расположена в
6. Определить значения функции в зависимости от значения аргумента
1. Что называют алгоритмом?
2. Определите понятие «исполнитель алгоритмов».
3. Каковы особенности алгоритмов?
4. Перечислите свойства алгоритмов.
5. Каким образом используются алгоритмы при решении задач?
6. Для чего применяют алгоритмы?
7. Укажите способы задания алгоритмов и их соотношения.
8. Каковы средства и основные блоки визуального представления алгоритмов?
9. Сформулируйте общие правила при проектировании визуальных
10. Как используется системный подход к построению алгоритмов?
11. В чем заключается метод структурной алгоритмизации?
12. Какие существуют базовые алгоритмические структуры? Приведите
13. Чем отличаются алгоритмические структуры композиция и альтернатива?
14. Чем отличаются алгоритмические структуры альтернатива и итерация?
15. Как классифицируются алгоритмы по структурному признаку?
16. Приведите примеры линейных и разветвленных алгоритмов.