Что такое алгоритмический язык

Алгоритмический язык программирования

Алгоритмический язык программирования — формальный язык, используемый для записи, реализации и изучения алгоритмов. В отличие от большинства языков программирования, алгоритмический язык не привязан к архитектуре компьютера, не содержит деталей, связанных с устройством машины.

Для изучения основ алгоритмизации применяется так называемый Русский алгоритмический язык (школьный алгоритмический язык), использующий понятные школьнику слова на русском языке.

Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов, в качестве основы для «безмашинного» курса информатики.

Основные служебные слова алгоритмического языка

  • алг (алгоритм)
  • арг (аргумент)
  • рез (результат)
  • нач (начало) — начало алгоритма
  • кон (конец) — конец алгоритма
  • дано — исходные данные в произвольной форме
  • надо — цель алгоритма
  • утв
  • цел (целый)
  • вещ (вещественный)
  • сим (символьный)
  • лит (литера) — строка
  • лог (логический)
  • таб(таблица) — для обозначения массива
  • длин (длина) — количество элементов массива
  • если
  • то
  • иначе
  • все
  • выбор
  • при
  • знач
  • нц (начало цикла)
  • кц (конец цикла)
  • пока
  • для
  • от
  • до
  • шаг

Логические функции и значения для составления выражений

  • и
  • или
  • не
  • да
  • нет
  • ввод
  • вывод

Общий вид алгоритма

Часть алгоритма от слова алг до слова нач называется заголовком , а часть, заключенная между словами нач и кон — телом алгоритма .

В предложении алг после названия алгоритма в круглых скобках указываются характеристики (арг, рез) и тип значения (цел, вещ, сим, лит или лог) всех входных (аргументы) и выходных (результаты) переменных. При описании массивов (таблиц) используется служебное слово таб, дополненное граничными парами по каждому индексу элементов массива.

В записи алгоритма ключевые слова обычно подчёркиваются либо выделяются полужирным шрифтом. Для выделения логических блоков применяются отступы, а парные слова начала и конца блока соединяются вертикальной чертой.

Основные алгоритмические структуры

Подробное описание основных алгоритмических структур приведено в этой статье. Ниже приводятся шаблоны составления этих структур на алгоритмическом языке.
Неполная развилка

Язык алгоритмический

Алгоритмический язык — это искусственная система языковых средств (см. Язык), обладающая выразительными возможностями, достаточными для того, чтобы с её помощью можно было установить любое детерминированное общепонятное предписание о выполнении некоторой последовательности операций, ведущих к решению той или иной конкретной задачи. Такого рода предписания носят название алгоритмов (см. Алгоритм), от которого происходит термин «алгоритмический язык». В систематическое употребление этот термин был введён в 1958 году Г. Боттенбрухом. Понятие алгоритмического языка сформировалось в годах XX века в процессе становления компьютерного программирования как самостоятельной научно-прикладной дисциплины. Однако теоретические истоки этого понятия прослеживаются ещё в работах годов С. К. Клини, Э. Л. Поста, А. М. Тьюринга и А. Чёрча по уточнению общего математического понятия алгоритма. В настоящее время теория алгоритмических языков, а также проблематика, связанная с их разработкой и использованием, составляет один из наиболее важных разделов информатики.

В логико-лингвистическом и гносеологическом аспекте алгоритмические языки представляют собой одну из моделей императива (повелительного наклонения), и потому выступают, с одной стороны, как средство фиксации операционного знания, а с другой — как инструмент машинной, человеко-машинной, а некоторых случаях и человеческой коммуникации. За короткий промежуток времени алгоритмические языки превратились в новое познавательное средство, органически вошедшее в научную и практическую деятельность человека. Обычно к ним предъявляется требование «универсальности», заключающееся в том, что должна иметься возможность моделирования с их помощью любых алгоритмов из числа тех, которые дают какое-либо уточнение общего понятия алгоритма (например, машин Тьюринга). Абсолютная точность синтаксиса алгоритмического языка необходима не во всех случаях. Она обязательна в рассмотрениях содержательного характера. Но в определённых ситуациях (например, когда тексты, записанные на каком-либо алгоритмическом языке, начинают выступать в роли средства общения с компьютером) этот алгоритмический язык должен быть оформлен в виде соответствующего формализованного языка (см. Язык формализованный) с чётко описанным синтаксисом и точно заданной семантикой его грамматических категорий (см. Семантика). Центральное место в таких алгоритмических языках занимают тексты, называющиеся программами (в сущности, именно они и выражают понятие алгоритма). Понятие программы формулируется в чисто структурных терминах синтаксиса этого языка (см. Синтактика), без какого-либо обращения к смысловым категориям. Точно такой же характер носит и описание процедуры выполнения программы. Поэтому в роли исполнителя алгоритмов, записанных на формализованных алгоритмических языках, может выступать не только человек, но и наделённое соответствующими возможностями автоматическое устройство, например, компьютер, с помощью которого сейчас возможно выполнять все основные виды алгоритмов.

Все алгоритмические языки можно условно разделить на две основные группы:

  1. теоретические алгоритмические языки (к которым относятся такие, как язык машин Тьюринга или нормальных алгоритмов Маркова) используются в общей теории алгоритмов;
  2. прикладные алгоритмические языки (к которым относятся так называемые языки программирования для компьютеров; в настоящее время их известно более тысячи) — используются в практике машинного решения разнообразных по-своему характеру задач.

На ранней стадии программирования употреблялись «машинно-ориентированные» алгоритмические языки (так называемые языки «низкого уровня»), учитывавшие структуру или даже характеристики конкретных вычислительных машин (систему команд, особенности и структуру памяти и так далее). Впоследствии им на смену пришли «проблемно-ориентированные» алгоритмические языки (так называемые языки «высокого уровня»), освободившие пользователя от необходимости ориентироваться на машины определённого типа и тем самым придавшие его усилиям гораздо большую математическую направленность. Дальнейшим развитием идеи алгоритмического языка стали языки программирования более общего, не обязательно алгоритмического характера. Как и алгоритмические языки, такие языки в конечном счёте тоже нацелены на получение машинных программ, но во многих случаях их тексты допускают определённую свободу в выполнении и, как правило, дают лишь материал для синтеза искомых алгоритмов, а не сами эти алгоритмы. Постоянное проникновение вычислительных машин в научную, культурную и социальную сферы ведёт к значительному повышению роли алгоритмических языков в жизни общества, и это выражается, в частности, в том, что алгоритмы и реализующие их программы (то есть, в конечном счёте, тексты на некоторых алгоритмических языках) всё более приобретают характер реальных ресурсов экономического, научного и культурного потенциала развития, что в свою очередь вызывает к жизни значительное количество серьёзных методологических и гносеологических проблем. Кроме того, расширяющееся (вплоть до обиходного) пользование алгоритмическими языками приводит к установлению особого стиля мышления, и соотношение мышления такого рода с традиционным математическим также представляет собой важную и мало разработанную методологическую проблему.

Что такое алгоритмический язык

Алгоритмический язык

Алгоритм — заранее заданное точное предписание возможному ис­полнителю совершить определённую последовательность действий для получения решения задачи за конечное число шагов.

4.1. Способы задания алгоритма.

На практике наиболее распространены следующие способы задания алгоритмов:

словесная (запись на естественном языке);

графическая (изображения из графических символов);

псевдокоды (полуформализованные описания алгоритмов на ус­ловном алгоритмическом языке, включающие в себя как элементы язы­ка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);

программная (тексты на языках программирования). Словесный способ записи алгоритмов представляет собой описание последователь­ных этапов обработки данных.

Словесный способ

Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задаётся в про­извольном изложении на естественном языке.

Пример. Записать алгоритм нахождения наибольшего общего дели­теля (НОД) двух натуральных чисел (алгоритм Евклида).

Алгоритм может быть следующим:

1) Задать два числа.

2) Если числа равны, то взять любое из них в качестве ответа и остано­виться, в противном случае продолжить выполнение алгоритма.

3) Определить большее из чисел.

4) Заменить большее из чисел разностью большего и меньшего из чисел.

5) Повторить алгоритм с шага 2.

Описанный алгоритм применим к любым натуральным числам и дол­жен приводить к решению поставленной задачи.

Графический способ

При графическом представлении алгоритм изображается в виде по­следовательности связанных между собой функциональных блоков, каж­дый из которых соответствует выполнению одного или нескольких дей­ствий. Такое графическое представление называется схемой алгоритма, или блок-схемой. В блок-схеме каждому типу действий соответствует геометрическая фигура, представленная в виде блочного символа. В таб­лице приведены наиболее часто употребляемые символы.

Начало, конец алгоритма, вход и выход в подпрограмму

Вычислительное действие или последовательность действий

Вычисления по подпрограмме

Ввод-вывод в общем виде

Блок «процесс» применяется для обозначения действия или последо­вательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько от­дельных блоков обработки можно объединять в один блок. Представле­ние отдельных операций достаточно свободно.

Блок «решение» используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.

Блок «модификация» используется для организации циклических кон­струкций. Внутри блока записывается параметр цикла, для которого ука­зываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.

Блок «предопределённый процесс» используется для указания обращении к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.

Псевдокод представляет собой систему обозначений и правил, пред­назначенную для единообразной записи алгоритмов.

В псевдокоде не приняты строгие синтаксические правила для запи­си команд, присущие формальным языкам, что облегчает запись алгорит­ма на стадии его проектирования. Однако в псевдокоде обычно имеют­ся некоторые конструкции, присущие формальным языкам. В псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл ко­торых однозначно определён. Например, алгоритмы на алгоритмическом языке записываются с помощью служебных слов, представленных в таб­лице 1.7.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *