Головна |
Будь-яка програма має можливість обміну інформацією з зовнішніми пристроями. В якості зовнішніх (термінальних) пристроїв можуть бути дисплей, дисковод з дисками, принтер, телетайп, перфоратор і т. Д. У цьому розділі обмежимося лише викладом введення даних з клавіатури дисплея в пам'ять ЕОМ і виведенням даних з пам'яті на екран дисплея (функції введення і виведення будуть доповнені в гл. 13).
Клавіатура і дисплей - стандартні пристрої введення і виведення,
Для введення і виведення даних в мові ПАСКАЛЬ передбачені стандартні вбудовані програми, які називаються процедурами. Процедура введення викликається за допомогою оператора введення READ, процедура виведення - за допомогою оператора виведення WRITE.
Необхідно відзначити, що введення і виведення даних залежать від конкретної реалізації ЕОМ. Розглянемо ДВК.
Оператор введення служить для введення даних в процесі виконання програми. При цьому значення даних, що вводяться присвоюються змінним. Дані можуть бути розбиті на окремі рядки .. Ознакою кінця рядка є натискання клавіші ВК.
Розрізняють три види оператора введення:
а) READ (a1, a2, а3, ..., Аn) - Кожне вводиться значення присвоюється послідовно змінним a1, a2, а3, ..., Аn.
б) READLN (а1, а2, а3, ..., Аn) - Кожне вводиться значення присвоюється послідовно змінним а1, а2, а3, ..., Аn, після чого
відбувається перехід на новий рядок (наступний оператор введення буде вводить дані з нового рядка);
в) READLN - перехід на новий рядок при введенні даних. Послідовно розташовані оператори виду а) і в) еквівалентні одному оператору б).
У мові ПАСКАЛЬ допускається вводити цілі, дійсні і символьні дані. Логічні дані вводити не дозволяється. Існує відмінність між введенням числових і символьних даних, тому розглянемо введення цих даних окремо.
Введення числових даних. Числові дані, цілі та дійсні, повинні розділятися пропуском (пробілами) або поверненням каретки ВК. Прогалини і ВК ігноруються перед числом.
Приклад введення:
VAR A, B, C: REAL;
K, T: INTEGER;
. . .
READ (A, B, C);
READLN;
READ (K, T);
Після набору на екрані дисплея всієї програми і запуску її на виконання відбувається зупинка машини при зустрічі READ (А, В, С). На клавіатурі ЕОМ необхідно набрати три дійсних числа, потім з нового рядка (виконується оператор READLN) - два цілих тіла відповідно оператору READ (К, Т). наприклад,
0.5 6.23 - 7.1 ВК
3 48 ВК
Тут ВК означає кінець вводиться рядка даних (див. Додаток 1). При цьому змінні отримають наступні значення:
А = 0.5, В = 6.23, С = - 7.1, К = 3, Т = 48,
і виконання програми продовжиться.
Числа можна відокремлювати один від одного не тільки пробілами, а й ВК, наприклад:
0.5 ВК
6.23 ВК
- 7.1 ВК
3 ВК
48 ВК
т. е. кожне число вводиться з нового рядка.
Однак буде помилкою введення чисел в один рядок:
0.5 6.23 -7.1 3 48 ВК
гак як після виконання оператора READ (А, В, С) виконується оператор переходу на новий рядок READLN і четверте число (3) має бути набрано лише з нового рядка. Розглянуті три оператора введення
READ (А, в, с);
READLN;
READ (К, т);
повністю еквівалентні наступним двом операторам:
READLN (А, в, с);
READ (K, T);
Необхідно відзначити, що оператор введення дозволяє в процесі виконання програми вводити будь-які інші значення даних. При цьому програма не змінюється, а змінні приймають інші значення, наприклад:
8.45 6.0 3.2 ВК
16 45 ВК
Введення символьних даних. Введення символьних даних має особливості. Оскільки пробіл, як і будь-який символ мови ПАСКАЛЬ, відноситься до символьних даними, символьні дані вводяться суцільним рядком відповідно до оператором введення. Нагадаємо, що однією змінною можна привласнити значення тільки одного символу.
Нехай є фрагмент програми:
VAR А, в, с: CHAR;
. . .
READ (А, в, с);
Якщо після набору на екрані дисплея всієї програми і запуску її на виконання ввести дані у вигляді
SNR ВК
то змінні А, В, С отримають наступні значення:
A = 'S', B = 'N', C = 'R'.
При введенні даних у вигляді
S N R ВК
змінні отримають значення
A = 'S', В = '', С = 'N'.
Інша особливість введення символьних даних полягає в тому, що натискання клавіші ВК сприймається як символ пропуску.
приклад: Необхідно поставити змінним значення
А = 3, В = 4, С = 'W', D = 'F'.
При виконанні фрагмента програми
VAR A, B: INTEGER;
C, D: CHAR;
. . .
READ (A, B);
READ (C, D);
і введення даних у вигляді
3 4 BK
WF BK
змінні отримають значення А = 3, В = 4, С = '' (символ ВК - кінець першого рядка, сприймається як пробіл) D = 'W'.
Для правильного введення символьних даних рекомендується перед кожним оператором введення символьних даних ставити оператор переходу на новий рядок READLN, щоб їх введення здійснювався завжди з нового рядка. наприклад,
READ (А, B);
READLN;
READ (C, D);
У цьому випадку змінні отримають правильні значення:
А = 3, В = 4, С = 'W, D =' F '.
Якщо навіть оператор введення символьних даних стоїть першим в програмі, все одно необхідно перед ним ставити оператор READLN.
Найпростіший введення даних. | Приклади програмування простих завдань. | Умовний оператор. | Оператор вибору. | LАВЕL мітка; | Приклади програмування обчислювальних процесів з розгалуженнями. | програма 5.4 | Оператор циклу з передумовою. | Оператори циклічної частини програми | Оператор циклу з параметром. |