Реклама:

Выбор кодируется на Паскале примерно так же, как на ПЛ/1. Типичен следующий оператор IF-THEN-ELSE:

IF ПОЛ = ЖЕНСКИЙ THEN

F: = F + 1 ELSE

М: = М + 1

Как и в языках Коболе и ПЛ/1, не предусмотрено явного оператора или слова «END» для конструкции IF-THEN-ELSE. Кроме того, в языке Паскаль есть оператор CASE для реализации выборов со многими условиями.

Повторение реализуется на Паскале несколькими широко употребимыми способами. Одной из наиболее распространенных является конструкция WHILE...DO, например,

WHILE А<10 DO BEGIN

В: = В + А; А: = А + 1

END;

Ограничивающие слова «BEGIN» и «END» позволяют кодировать повторение «в одну строку», как в языке ПЛ/1. Этот вид образования блоков может использоваться и в конструкции IF-THEN-ELSE.

Вот другой распространенный способ реализации повторения на языке Паскаль:

FOR X: = a to b оператор, например: FOR X: = 1 ТО 10 DO BEGIN

END;

И наконец, весьма популярен оператор REPEAT-UNTIL, например,

REPEAT

UNTIL X>10;

В случае REPEAT-UNTIL слова BEGIN и END не нужны потому что слово UNTIL создает удобный ограничитель для множества исполнимых операторов внутри цикла. Снова как в конструкции DO-UNTIL из языка ПЛ/1, эта реализация повторения не предусматривает варианта нуля появлений.

Замечание: здесь следует отметить, что конструкция Кобола ВЫПОЛНЯТЬ-ДО фактически работает так же, как DO WHILE из языка ПЛ/1, т.е. проверка условия производится в начале повторения, а не в конце, как можно было бы подумать. В этом проявляется своеобразие языка, которое делает его таким интересным.

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

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

12.3. Кодирование инвертированных программ

Метод инвертирования программ подробно рассматривается в гл. 7. В этой главе мы просто покажем, как важные операции инвертирования кодируются на двух наиболее распространенных языках - Коболе и ПЛ/1.

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


⇐ Предыдущая страница| |Следующая страница ⇒