ПАСКАЛЬ: лексика, вирази, семантика
Якщо натиснути "Enter", не набравши сталу, то комп'ютер продовжить своє чекання. Перед числовою або бульовою сталою можна набрати також довільне число пропусків.
Якщо замість сталої набрати щось інше, наприклад, сталу іншого типу, то виконання програми на цьому завершиться (аварійно), і на екрані з'являться образливі слова про те, що вхідні символи були неправильними. Наприклад, якщо при виконанні оператора readln(z), де ім'я z позначає цілу змінну, набрати 1024 і натиснути "Enter", то значенням z стане 1024, а якщо набрати z=1024, то програма аварийно завершиться, тому що ціла стала не може починатися символами "z=".
У "операторі" введення можна написати кілька імен змінних, відокремивши їх комами. При його виконанні треба набрати відповідну кількість сталих, відокремивши їх пропусками або натисканнями на клавішу "Enter" у довільній кількості. І поки всі сталі не будуть набрані, виконання такого "оператора" не закінчується.Приклад. Нехай x : integer, y : boolean. При виконанні readln(x,y) слід набрати цілу сталу, потім додати хоча б один пропуск або натискання на "Enter", а потім натиснути на клавіші t, r, u, e або f, a, l, s, e, тобто набрати бульову сталу true або false. І не забути натиснути на "Enter" наприкінці.
І ще одне зауваження з приводу використання readln. Практично перед кожним "оператором" читання з клавіатури не завадить написати "оператор" запису з запрошенням до введення значень і поясненням, яких саме типів і в якій кількості. Наприклад, якщо x1, x2 означено як цілі:
writeln('введіть два цілих числа');
readln(x1, x2).
Без такого запрошення невідомо, що робити тому, хто запустив програму на виконання, і чи виконується вона взагалі. Не уподібнюйте свої програми мовчазним привідам.
Операторами readln задається читання не лише з клавіатури, але також і з інших зовнішніх носіїв, наприклад, файлів на диску. Але про це у розділі 13.
Задача
2.14. Написати програму читання двох чисел a й b та:
а)* друкування їх суми; б) друкування, чи вірно, що a
3.6. Ініціалізація змінних
Крім операторів присвоювання та читання, є ще один спосіб присвоїти змінній значення – безпосередньо в її означенні. Означення змінної з присвоюванням називається ініціалізацією. Природним її виглядом був би такий:
var ім'я : тип := вираз зі сталими;
наприклад, var bool : boolean := true; kb8 : integer := 1024*8;
Проте у системі Турбо Паскаль ініціалізація має інший вигляд. Досить дивний. Означення змінної починається словом const і замість знака присвоювання записується знак "=":
const bool : boolean = true; kb8 : integer = 1024*8;
Вираз, що ініціалізує змінну, обчислюється під час трансляції програми, тому може містити сталі й іменовані сталі, означені вище в програмі. Але імена змінних (у тому числі ініціалізованих) у ньому заборонені. Таким чином, можлива послідовність означень