Паскаль: лексика, вирази, семантика, Детальна інформація
Паскаль: лексика, вирази, семантика
Приклад. Нехай x : integer, y : boolean. При виконанні readln(x,y) слід набрати цілу сталу, потім додати хоча б один пропуск або натискання на "Enter", а потім натиснути на клавіші t, r, u, e або f, a, l, s, e, тобто набрати бульову сталу true або false. І не забути натиснути на "Enter" наприкінці.\xF0E7
І ще одне зауваження з приводу використання 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;
Вираз, що ініціалізує змінну, обчислюється під час трансляції програми, тому може містити сталі й іменовані сталі, означені вище в програмі. Але імена змінних (у тому числі ініціалізованих) у ньому заборонені. Таким чином, можлива послідовність означень
const kb1=1024; kb8:integer=8*kb1;
але неможлива
const kb1:integer=1024; kb8:integer=8*kb1; {???}
3.7. Семантика програми
Підіб'ємо підсумок цього розділу. Паскаль-програма складається з двох основних частин – означень імен та тіла, яке є послідовністю операторів. Ми познайомилися поки що з означеннями імен лише сталих і змінних.
При виконанні програми сталим та їх іменам ставляться у відповідність значення базових типів, представні в комп'ютері. Іменам змінних ставляться у відповідність ділянки пам'яті. Сукупність цих ділянок пам'яті утворює пам'ять процесу виконання програми, яка часто не зовсім точно називається пам'яттю програми.
В операторах програми записуються вирази, що задають обчислення значень. При виконанні операторів ці значення записуються в ділянки пам'яті, поставлені у відповідність іменам змінних (присвоюються їм) або використовуються з іншою метою. З цим ми познайомимося в наступних розділах. Присвоювання значення змінній означає зміну її стану. Тим самим змінюється стан пам'яті процесу виконання програми. Отже, оператори присвоювання та інші задають зміну станів пам'яті.
Послідовність дій, заданих операторами та виразами у них, утворює процес виконання програми. У процесі розв'язання більшості реальних задач доводиться приймати рішення та продовжувати процес розв'язання одним із кількох різних можливих шляхів. В наступних розділах ми познайомимося з засобами, за допомогою яких програма задає не єдиний можливий процес її виконання, а деяку їх множину. Саме ця множина процесів виконання програми і є її семантикою. Так само семантикою алгоритму є множина процесів його виконання.
І ще одне зауваження з приводу використання 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;
Вираз, що ініціалізує змінну, обчислюється під час трансляції програми, тому може містити сталі й іменовані сталі, означені вище в програмі. Але імена змінних (у тому числі ініціалізованих) у ньому заборонені. Таким чином, можлива послідовність означень
const kb1=1024; kb8:integer=8*kb1;
але неможлива
const kb1:integer=1024; kb8:integer=8*kb1; {???}
3.7. Семантика програми
Підіб'ємо підсумок цього розділу. Паскаль-програма складається з двох основних частин – означень імен та тіла, яке є послідовністю операторів. Ми познайомилися поки що з означеннями імен лише сталих і змінних.
При виконанні програми сталим та їх іменам ставляться у відповідність значення базових типів, представні в комп'ютері. Іменам змінних ставляться у відповідність ділянки пам'яті. Сукупність цих ділянок пам'яті утворює пам'ять процесу виконання програми, яка часто не зовсім точно називається пам'яттю програми.
В операторах програми записуються вирази, що задають обчислення значень. При виконанні операторів ці значення записуються в ділянки пам'яті, поставлені у відповідність іменам змінних (присвоюються їм) або використовуються з іншою метою. З цим ми познайомимося в наступних розділах. Присвоювання значення змінній означає зміну її стану. Тим самим змінюється стан пам'яті процесу виконання програми. Отже, оператори присвоювання та інші задають зміну станів пам'яті.
Послідовність дій, заданих операторами та виразами у них, утворює процес виконання програми. У процесі розв'язання більшості реальних задач доводиться приймати рішення та продовжувати процес розв'язання одним із кількох різних можливих шляхів. В наступних розділах ми познайомимося з засобами, за допомогою яких програма задає не єдиний можливий процес її виконання, а деяку їх множину. Саме ця множина процесів виконання програми і є її семантикою. Так само семантикою алгоритму є множина процесів його виконання.
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021