Друкування ПО ФОРМАТУ

Опис формату може міститися в операторі PRINT USING, наприклад:

100 PRINT USING # # #; А В С або в строкової змінної, наприклад:

50   S$=&quot###&quot

100 PRINT USING S $ А В З

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

В одній з систем для великої ЕОМ потрібно, щоб у тому випадку, коли формат знаходиться поза оператора PRINT USING, він задавався в окремому рядку зразок константи, без лапок, але з попереднім йому двокрапкою Номер рядка з описом формату повинен вказуватися після USING наступним чином:

90 PRINT USING 200, А В, С

200   :###

Мабуть, основною причиною вибору подібного способу послужило бажання уникнути суміщення довгого опису формату і списку змінних в одному рядку з обмеженою довжиною (оператори Бейсика переносити на інший рядок не можна)

Оператор PRINT USING

Загальна форма запису:

PRINT USING опис формату, список виведених даних

де

опис формату чи група символів опису формату, укладена в лапки, або строкова змінна, що містить символи опису формату

список виведених даних звичайний список змінних і роздільників, що використовуються в операторі

PRINT

Врахуйте, що роздільник між описом формату і списком виведених даних від системи до системи змінюється Найбільш споживані наступні форми запису:

опис формату, список виведених даних опис формату список виведених даних опис формату: список виведених даних

Деталі вживання символів опису формату наведено в табл 65 Значення елементів списку виведених даних друкуються по порядку з використанням полів формату, зазначених у його описі

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

Наведена нижче програма ілюструє деякі з можливостей, що надаються оператором PRINT USING:

10 REM ДЕМОНСТРАЦІЯ ДІЇ ОПЕРАТОРА PRINT USING

20 FOR I=1 TO 6

30   READ A$, A

40 PRINT USING ЦІНА \ \ = $ + # # # # A $, A

50 NEXT I

60 DATA ПАЛЬТО, 8995ПЛАТЬЯ2550

70 DATA РУЧКИ, 199ЧЕРНІЛ, 65

80 DATA ГОДИН, 799, ВЗУТТЯ, 20

90 END RUN

ЦІНА ПАЛЬТА = $ +6995 ЦІНА СУКНІ = $ +2550 ЦІНА РУЧКИ = $ +199 ЦІНА Чорному = $ +065

ЦІНА ГОДИН = $ +799 ЦІНА ВЗУТТЯ = $ +2000 END AT LINE 90

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

У цьому розділі розглядаються прийоми, що дозволяють здійснювати чітке, ефективне і впорядковане управління в програмах на Бейсике Обговорювані тут форми управління досить близькі до тим, які рекомендуються в структурному програмуванні

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

розглянемо тепер різновид оператора, образую190

ного умовний вираз в таких керуючих структурах, як IF, WHILE, UNTIL: IF A = ​​В THEN ..

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

IF А% = В% THEN

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

IF ABS(A-B) &lt= 10E-6 THEN

641 КІЛЬКА ОПЕРАТОРІВ В одному рядку

У багатьох версіях Бейсика допускається вказівка ​​декількох операторів в одній (фізичної) рядку за умови, що вони поділяються спеціальним символом Зазвичай роздільником служить двокрапка (:), але іноді як роздільник використовується символ зворотної косої риски (\) Таким чином, після виконання операторів

10 PRINT ТУТ: PRINT І: PRINT ТУТ”

20 PRINT НАСТУПНИЙ

буде отриманий наступний результат: RUN

ТУТ І ТУТ

НАСТУПНИЙ

Зазначені після двокрапок оператори не мають номерів, так що до них не можна перейти за допомогою оператора GOTO Вони виконуються по порядку зліва направо після виконання першого оператора, поміченого номером рядка

Запис декількох операторів в одному рядку можна застосовувати просто Для економії числа знаків в набирати текст, але при такому підході виходять програми, які виглядають суцільною масою символів, не має вираженої структури З іншого боку, цю можливість можна використовувати для полегшення читання програми та ілюстрації її струк-

тури Наприклад, у необхідних місцях можна додавати оператор коментаря:

200

FOR I = 1 ТО N1

: REM ОБРОБКА по стовпці

210

GOSUB 750

: REM ВИБІР провіднимелементом

220      I1=I+1

230 FOR J = I1 ТО N: REM ИСКЛЮЧЕНИЕ У СТОВПЧИКУ I

Важливіше те, що можна конструювати серії або блоки операторів, всередину яких не може бути передано управління ззовні:

200 А = 0: В = 6: I = I +1: PRINT Z (I)

Тим самим утворюється процес зі структограммой у вигляді прямокутника:

А = 0

В = 6

I=I+1

ДРУК Z (I)

Звичайно, було б краще, якби такий блок міг розміщуватися в декількох рядках, але, принаймні, невеликі блоки можна конструювати в одному рядку

Вищесказане особливо корисно в операторах IF-THEN: 100 IF A> = B THEN PRINT БІЛЬШЕ: Z = A: GOSUB 500

Якщо умова виконана, то по порядку виконуються всі оператори, наступні за THEN

Розглянемо оператор

100 IF A> = В THEN PRINT БІЛЬШЕ: GOSUB 500: Z = A

При його виконанні виникає наступна проблема: оператор Z = A ніколи не буде виконаний, оскільки повернення після GOSUB станеться до оператора в наступному рядку, що має номер, а не до наступного оператору поточного рядка Те ж має місце, якщо GOSUB замінити на GOTO Невеликими циклами FOR-NEXT, поміщають в одному рядку, можна користуватися для виконання тимчасових затримок:

100 REM ПАУЗА, ТРИВАЛІСТЬ ЗАЛЕЖИТЬ ВІД СИСТЕМИ 110 FOR I = 1 ТО 10000: NEXT I

або для присвоювання масивів початкових значень:

100 FOR I = 1 TO 200: A (I) = 0: NEXT I або для виконання багатьох інших простих процесів

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 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>

*

*