КЕРУЮЧІ СТРУКТУРИ

Звичний цикл FOR-NEXT включений в COMAL у своїй звичайній формі, але з додаванням службового слова DO (виконувати), що вказує на блоковий характер циклу, наприклад:

FOR LOOP=1 TO 10 STEP 2 DO

оператори

NEXT LOOP Цей оператор можна записувати в одному рядку без вказівки NEXT:

FOR CNT = 1 TO 100 DO S = S + 10 У мові COMAL є цикли як WHILE, так і REPEAT,

наприклад: WHILE A> 0 DO оператори ENDWHILE і REPEAT оператори

UNTIL A&gtBOTTOM

а також однорядкова версія циклу WHILE, схожа на FOR: WHILE (NOT A = B) DO A = A + C

Крім того, є справжній оператор вибору CASE, форма якого набагато краще, ніж оператора Бейсика ON-GOTO він дозволяє здійснити вибір оператора за збігом значень складних виразів і допускає вказівки дій для непередбачуваних випадків за допомогою службового слова OTHERWISE (в іншому випадку) Крім того, для завершення оператора використовується, знову-таки щоб підкреслити його блоковий характер, службове слово ENDCASE (кінець вибору)

Передбачений і стандартний оператор IF-THEN, а також версія IF-THEN-ELSE, яка, як і всі інші керуючі структури, закінчується відповідним службовим словом (ENDIF) Наприклад, оператор

IF (A> B AND C = 0) THEN оператори ELSE оператори

ENDIF має чітку і недвозначну форму

671 ПРОЦЕДУРИ

Процедури мають імена і допускають вказівку будь-якого числа вхідних параметрів Процедура може діяти як підпрограма або як функція єдина відмінність при цьому полягає в способі виклику Якщо процедура використовується як функція, то всередині неї повинно бути присвоювання її імені певного значення Виклик її як підпрограми здійснюється за допомогою службового слова EXEC, наприклад:

20  EXEC BUFFEROUT(A,B)

а для виклику як функції імя процедури вказується звичайним чином в арифметичному виразі

100   DUMMY=LIMIT+MAX(A,B,C)

де МАХ імя процедури, що повертає значення Структура такої процедури може мати наступний вигляд:

200   PROC MAX(REF X,REF Y, REF Z)

210      MAX=X

220     IF Y&gtMAX THEN MAX=Y

230     IF Z&gtMAX THEN MAX=Z

240   ENDPROC MAX

Зверніть увагу на службове слово REF при формальних параметрах X, Y, Z воно вказує на те, що параметри А, В, С передаються за адресою Це означає, що при маніпуляціях всередині процедури X, Y, Z дії здійснюються з фактичними параметрами А, В, С і що будь-які зміни X, Y, Z автоматично змінюють А, В, С Отже, такі параметри при необхідності можуть використовуватися як як вхідних, так і вихідних Масиви також передаються

за адресою лише прості рядки чи арифметичні вирази передаються за значенням, що здійснюється у вигляді односторонньої передачі значення в тимчасові змінні процедури В останньому випадку немає ніякої можливості повернути значення основної програм-

ме (Програмісти, знайомі з Фортраном, можуть протестувати, стверджуючи, що в цій мові можливе повернення значень з підпрограм, при зверненні до яких параметри передаються за значенням Так, це так, але таке повернення здійснюється дуже своєрідним способом, при якому існує реальна небезпека спотворення констант і команд програми, що абсолютно не можна визнати задовільним)

~ Таким чином, COMAL передбачає дуже корисні процедурні блоки і забезпечує строгий підхід до встановлення відповідності між параметрами (фактичними і формальними)

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*