Читайте также:
|
|
Для завдання змінним їх числових значень можна використовувати оператор присвоювання, наприклад:
А:=5;
В:=-6.143;
Однак у цьому випадку програма стає не універсальною, бо виконується тільки при цих значеннях змінних. Для виконання програми при різноманітних значеннях змінних існує оператор введення. Якщо під час виконання програми зустрічається цей оператор, ЕОМ зупиняється і чекає введення значень змінних. Коли їх значення введені, процес виконання програми триває.
Оператор введення служить для введення даних в процесі виконання програми. При цьому значення введених даних присвоюються змінним. Дані можуть бути поділені на окремі рядки. Ознакою закінчення рядка є натиск клавіші Enter.
Розрізняють три види оператора введення:
а) READ(a1, a2, …, an) – кожне введене значення присвоюється послідовно змінним a1, a2, a3, …, an;
б) READLN(a1, a2, …, an) – кожне введене значення присвоюється послідовно змінним a1, a2, …, an, після чого відбувається перехід на новий рядок (наступний оператор введення буде вводити дані з нового рядка);
в) READLN – перехід на новий рядок при введенні даних.
Послідовно розміщені оператори виду а) і в) еквівалентні одному оператору б).
В мові Паскаль допускається вводити цілі, дійсні і символьні дані. Логічні дані вводити не дозволяється. Існує різниця між введенням числових і символьних даних, тому розглянемо введення цих даних окремо:
1. Введення числових даних.
Числові дані, цілі і дійсні, повинні відокремлюватися пробілом (пробілами) або поверненням каретки (Enter або ВК). Пробіли і Enter ігноруються перед числом.
Приклад введення:
VAR
A,B,C: REAL;
K,T: INTEGER;
…
READ(A,B,C);
READLN;
READ(K,T);
…
Після набора на екрані дисплея усієї програми і запуску її на виконання відбувається зупинка машини при зустрічі READ(А,В,С). На клавіатурі ЕОМ необхідно набрати три дійсних числа, потім з нового рядка (виконується оператор READLN) – два цілих числа відповідно оператору READ(K,T). Наприклад:
0.7_-4.21_ _ 5.02 Enter
13_452 Enter
– тут Enter означає кінець введеного рядка даних.
При цьому змінні отримають наступні значення: А=0.7, В=-4.21, С=5.02, К=13, Т=452 і виконання програми буде продовжуватися.
Числа можна відділяти один від одного не тільки пробілами, але і Enter-ом, наприклад:
0.7 Enter
-4.21 Enter
5.02 Enter
13 Enter
452 Enter
тобто кожне число вводиться з нового рядка.
Однак буде помилкою введення чисел в один рядок:
0.7_-4.21_5.02_13_452 Enter
тому що після виконання оператора READ(A,B,C) виконується оператор переходу на новий рядок READLN і четверте число (13) повинне бути набране тільки з нового рядка.
Розглянуті три оператори введення
READ(A,B,C);
READLN;
READ(K,T);
повністю еквівалентні наступним двом операторам:
READLN(A, B, C);
READ(K, T);
Слід зазначити, що оператор введення дозволяє в процесі виконання програми вводити будь-які інші значення даних. При цьому програма не змінюється, а змінні приймають інші значення, наприклад:
8.45_6.0_3.4 Enter
1_46 Enter
2. Введення символьних даних.
Введення символьних даних має свої особливості. Оскільки пробіл, як і будь-який символ мови Паскаль, відноситься до символьних даних. Символьні дані вводяться суцільним рядком у відповідності з оператором введення. Нагадаємо, що одній змінній можна присвоювати значення тільки одного символу.
Нехай існує фрагмент програми
VAR A,B,C:CHAR;
…
READ(A,B,C);
…
Якщо після набору на екрані дисплея усієї програми і запуску її на виконання ввести дані у вигляді:
SNR Enter,
то змінні А,В, С отримають наступні значення: A='S', B='N', C='R'.
При введенні даних у вигляді:
S_N_R Enter, змінні отримають значення: A='S', B='_', C='N'.
Друга особливість введення символьних даних полягає в тому, що натискання клавіші Enter сприймається як символ пробілу.
Наприклад, необхідно задати змінним значення: A=3, B=4, C='W', D='F'.
При виконанні фрагмента програми
VAR
A,B: INTEGER;
C,D: CHAR;
…
READ(A,B);
READ(C,D);
…
і введенні даних у вигляді:
3_ _ _4 Enter
WF Enter
змінні отримають значення А=3, В=4, С ='_'(символ Enter – кінець першого рядка, сприймається як пробіл), D='W'.
Для правильного введення символьних даних рекомендується перед кожним оператором введення символьних даних ставити оператор переходу на новий рядок READLN, щоб їх введення здійснювалося завжди з нового рядка.
Наприклад:
READ(A,B);
READLN;
READ(C,D);
У цьому випадку змінні отримають правильні значення: A=3, B=4, C='W', D='F'.
Якщо навіть оператор введення символьних даних стоїть першим в програмі, все одно необхідно перед ним ставити оператор READLN.
Ще одна особливість введення символьних даних пов’язана з використанням декількох режимів клавіатури (РОС, ЛАТ і ін., дивись додаток 1). При натисканні клавіш російського (РОС) або латинського (ЛАТ) регістрів їх коди (відповідно 16В і 17В, дивись додаток 2) будуть введені в пам'ять ЕОМ як символьні дані, хоча вони на екрані дисплею не відобразяться. Так, при натисканні клавіш під час введення символьних даних у попередньому прикладі
ЛАТ WF
замість символу W вводиться код латинського регістра і саме він буде присвоєний змінній С, а значення 'W' – змінній D. У загальному випадку при введенні символьних даних за рахунок переключення регістрів загальна кількість символів збільшується. Наприклад, рядок з 12 символів (включаючи пробіл):
Ш N S + R_Z Б П N R W
фактично складається з 16 символів:
РОС Ш ЛАТ N S + R _ Z РОС Б П ЛАТ N R W
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Дата добавления: 2015-07-25; просмотров: 94 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Практикум | | | Оператор виведення даних |