Отправляет email-рассылки с помощью сервиса Sendsay

Всё о работе в Интернет

  Все выпуски  

Рассмотрены основные понятия алгоритмического языка: алгоритм, команда, служебный объект, величина и имя.


Уважаемый подписчик! Сразу же вынужден извиниться за некорректную ссылку, указанную в материалах предыдущего занятия. Ссылка http://a-morgun.narod.ru/a08-01/a0008-0001-0001-0001.html – правильная.

Нам уже известно, что написанию программы решения задачи предшествует разработка соответствующего алгоритма. Поэтому сегодня мы с вами приступаем к рассмотрению достаточно эффективного современного способа представления алгоритмов в виде словесных описаний на, так называемом, алгоритмическом языке (АЯ).

Запомните! Только алгоритмы на АЯ допускают практически формальное (понятное, простое и удобное) своё преобразование в подпрограммы на языке Паскаль.

ОСНОВНЫЕ ПОНЯТИЯ АЛГОРИТМИЧЕСКОГО ЯЗЫКА

К основным понятиям алгоритмического языка относятся алгоритм, команда, служебный объект, величина и имя.

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

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

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

Команда алгоритма  –  это указание исполнителю на выполнение некоторых действий. Различают простые и структурные команды. Разные команды отличаются между собой правилом записи и правилом выполнения.

Последовательность нескольких команд алгоритма, начало и конец которой отмечены служебными словами нс и кс, называют серией. Серию можно рассматривать как единую составную команду.

Служебные объекты алгоритмического языка предназначены для записи команд и для оформления алгоритмов. Основная особенность любого служебного объекта состоит в том, что его смысл и способ употребления в алгоритме однозначно определён заранее. Среди служебных объектов различают служебные слова и служебные знаки.

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

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

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

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

Среди переменных величин особо выделяют переменные (термин употребляется как имя существительное). Для переменных в алгоритме используют обозначения, которые называют именами переменных. Типы переменных в алгоритме указывают с помощью стандартных имён типов.

Выше упоминались некоторые объекты алгоритма, с которыми должны быть связаны определённые имена. Такие объекты алгоритма называются именованными. К ним относятся сами алгоритмы, а также типы, переменные и константы. Имена могут быть стандартными или выбранными произвольно.

Слишком много новых терминов! Не правда ли? А ведь это пока только алгоритмический язык. В реальном Паскале их ещё больше. Кстати, АЯ тем и хорош, что позволяет нам, в отличие от Паскаля, ограничиться самым главным. 

Теперь приведём пример алгоритма, в котором можно было бы обнаружить всё вышеупомянутое.

алг Проверка ( арг x, y: цел; рез z: цел, s: лит )

дано произвольные значения уровней x и y

надо значение суммы уровней z и сообщение s об их допустимости

нач p: вещ

p := Ln ( x ) + Ln ( y )

если ( p < 5 ) или ( p > 5 + 5 )

то s := ”выход уровней за допустимые пределы”

иначе нс z := x + y ; s := ”уровни в норме” кс

кон

1. Три первые строки приведённого алгоритма являются его заголовком. Алгоритм имеет имя Проверка. Параметрами алгоритма являются переменные x, y, z и s. Из них переменные x и y являются его аргументами (исходными данными), а переменные z и s – результатами. Параметры x, y и z имеют целочисленный тип, параметр s – литерный (текстовый). Произвольный комментарий после слов дано и надо кратко формулирует общее назначение алгоритма. Считается, что заголовок определяет, как выглядит алгоритм извне.

2. Остальные шесть строк, начинающиеся словом нач и заканчивающиеся словом кон, являются основной частью алгоритма, передающей его внутреннее содержание. Здесь мы видим вспомогательную промежуточную переменную p, имеющую вещественный тип. Кроме того, основная часть алгоритма содержит последовательность из двух команд: команды присваивания p := Ln ( x ) + Ln ( y ) и команды ветвления если ( < 5 ) или ( > 5 + 5 ) то := “выход уровней за допустимые пределы” иначе нс z := x + y ; s := “уровни в норме” кс.

3. Команда присваивания является простой командой, а команда ветвления – структурной, поскольку содержит в своём составе простые команды присваивания после слов то и иначе, а также условие их выполнения ( < 5 ) или ( > 5 + 5 ) после слова если.  

4. В составе команды ветвления имеется последовательность двух команд присваивания z := x + y ; s := “уровни в норме”, начало и конец которой отмечены служебными словами нс и кс. Такая последовательность, рассматриваемая как единая составная команда, называется серией.

5. Служебными объектами алгоритма являются служебные слова алг, арг, рез, цел, лит, вещ, дано, надо, нач, кон, предназначенные для оформления алгоритма, служебные слова если, то, иначе, :=, нс, кс, предназначенные для записи команд, а также служебное слово или, предназначенное для указания операции. Кроме того, служебными объектами данного алгоритма являются следующие служебные знаки: знаки препинания точка с запятой и двойные кавычки { ; ” }, знаки операций сложения и сравнения { + < > }, а также круглые скобки { ( ) }.  

6. В выполнении команд нашего алгоритма принимают участие величины, несущие информацию о тех или иных значениях. К ним относятся величины p, x, y, Ln ( x ) + Ln ( y ), 5, + y, z, принимающие числовые значения, величины < 5, > 5 + 5, принимающие логические (вида “да  нет”) значения и величины s, ”выход уровней за допустимые пределы”, ”уровни в норме”, принимающие литерные значения. Обратите внимание, что в результате выполнения команды присваивания величина, представленная первоначально только в форме выражения Ln ( x ) + Ln ( y ), оказалась представленной ещё и в форме переменной p. С другой стороны, для ранее неопределённой величины p было образовано новое значение, равное значению выражения Ln ( x ) + Ln ( y ).

7. В нашем алгоритме использованы величины трёх типов: числовые целые и числовые вещественные, литерные, а также логические. При этом для переменных x, y, z, p, s их тип указан явно с помощью служебных слов цел, вещ и лит. Оба числовых типа цел и вещ считаются простыми, поскольку любое числовое значение элементарно (единственно, отдельно и неделимо). Литерный тип лит считается структурированным, поскольку текстовое значение в целом представляет собой совокупность значений отдельных знаков (букв).

8. В нашем алгоритме использованы постоянные величины 5, 5 + 5, ”выход уровней за допустимые пределы” и ”уровни в норме”. Их значения соответствуют тому, что написано, и считать их иными невозможно. Все остальные являются переменными величинами. Например, значение величины x + y может быть разным в зависимости от значений величин x и y. Постоянная величина 5 является константой. По её внешнему виду мы легко определяем, что она имеет целочисленный тип. Постоянные величины ”выход уровней за допустимые пределы” и ”уровни в норме” – тоже константы. Вполне очевидно, что они имеют литерный тип.  

9. В нашем алгоритме есть также, так называемые, переменные (термин употребляется как имя существительное). К ним относятся переменные величины, обозначенные x, y, z, s и p.

10. В заключение нашего комментария перечислим именованные объекты нашего алгоритма. Именованный объект алгоритм имеет произвольно выбранное имя Проверка. Именованные объекты переменные имеют произвольно выбранные имена x, y, z, s и p. А такие именованные объекты, как типы переменных, имеют стандартные имена цел, вещ и лит.

Обратите внимание, что необходимость истолковать основные понятия АЯ повлекла за собой использование целой группы других новых понятий. Это значит, что между всеми ними существует чрезвычайно тесная взаимосвязь. Невозможно понять что-то одно, не затрагивая при этом другое.

Чтобы получить более подробное изложение материала занятия №3 “Основные понятия алгоритмического языка”, перейдите по ссылке http://a-morgun.narod.ru/a06-01/a0006-0001-0002.html

При необходимости задать вопрос, проконсультироваться или обсудить что-либо обращайтесь через Гостевую книгу моего персонального сайта http://a-morgun.narod.ru


В избранное