Мета уроку: дати поняття вказівки присвоювання, познайомити із вказівками введення та виведення, зі структурою програми мовою Паскаль.
Теоретичний матеріал
Вочевидь, що майже в будь-якій програмі будуть присутні обчислення, адже комп’ютер — це перш за все обчислювальна машина. Причому результати обчислень необхідно буде запам’ятати для подальшого використання. Для цього існує команда присвоєння. Формат цього оператора такий:
<ім’я змінної> := <вираз>;
Виконується ця операція так: обчислюється вираз, що знаходиться праворуч від знака присвоєння, і отримане значення замінює поточне значення змінної, ім’я якої стоїть ліворуч від знака присвоєння.
Зверніть увагу на те, що яким би складним не був вираз, він повинен бути записаний у рядок. Звичайні дроби, багатоповерхові дроби, складні функціональні залежності тощо у мові програмування записуються в один рядок, причому порядок виконання дій контролюється за допомогою круглих дужок. Наприклад, такий математичний вираз:
Зверніть увагу на те, що у всіх виразах потрібно обов’язково ставити знаки множення, а імена змінних — це ідентифікатори, і тому вони повинні відповідати раніше зазначеним правилам (так, грецька буква р, що використовується в математиці, замінюється у вище наведеному прикладі ідентифікатором
Дуже важливо при створенні виразів стежити за типами операндів. Як було зазначено вище, тип даних дозволяє встановлювати внутрішній формат збереження даних та контролювати дії, що виконуються над ними. Контроль за використанням змінних на етапі компіляції програми виконується в мові Паскаль автоматично. З одного боку — це її важлива перевага над іншими мовами програмування. Але з іншого — іноді незручно те, що Паскаль майже не дозволяє автоматичне перетворення типів. Виключення зроблено тільки щодо констант та змінних цілих типів, які дозволяється використовувати у виразах дійсного типу.
Наприклад, якщо змінні
Var
X: integer;
Y: real;
то оператору Y:= Х+2; синтаксично не має помилок, хоча типи змінних і не збігаються. Перетворення типів (з цілого у дійсний) у цьому випадку виконується автоматично.
В той же час оператор X : = 2.78; буде помилковим, тому що автоматичне перетворення дійсних типів у цілі не виконується. Зверніть увагу, що константа 12.0 з точки зору компілятора буде також дійсною, хоча дробова частина і дорівнює нулю, тому що константа містить десяткову точку.
Аналогічно не можна змішувати літерні та числові типи даних, тобто вираз типу: 5 + ‘F’ є помилковим.
Однак відсутність автоматичного перетворення типів у Паскалі не означає, що він зовсім не має засобів перетворення даних: просто їх необхідно використовувати явно. Так, для перетворення значень одного скалярного типу в інший можна використовувати наступні функції перетворення типів:
Chr(I) — перетворює цілий тип у літерний, тобто повертає символ стандартного коду таблиці ASCII з номером, що дорівнює значенню І. Якщо значення більше 255, виникає програмне переривання.
Наприклад: Chr(lOS), результат = ‘і’.
Ord(S) — для значень літерного типу S, функція
Наприклад: Ord(‘A’); результат = 65.
Round (X) — повертає значення X, округлене до найближчого цілого числа. Результат має цілий тип, тобто дійсна змінна перетворюється на цілу. Наприклад: Round(5.6); Результат = 6.
Тrипс (X) — повертає найближче ціле число, яке менше або дорівнює X
Виходячи з цього, наступний оператор X := Y/X; буде помилковим (X
Зверніть ще увагу на те, що операції DIV та
1.5 div 3 (один з операндів - дійсне число)
5 mod Y (змінна Y має дійсний тип)
4/1 div 2 (результатом операції ділення 4/1 буде дійсне число 4.0)