ТЕСТУВАННЯ З МОВИ ПРОГРАМУВАННЯ PASCAL
субота, 28 квітня 2018 р.
пʼятниця, 27 квітня 2018 р.
БАНК ЗАВДАНЬ для програмування
Перетворення двомірного масиву(таблиці)
в лінійний масив(рядок) мовою Pascal.
Приклад розташування елементів та їх індексів у
двовимірного масиву A[4xm]:
a[1;1]
|
a[1;2]
|
a[1;3]
|
…
|
a[1;m-2]
|
a[1;m-1]
|
a[1;m]
|
a[2;1]
|
a[2;2]
|
a[2;3]
|
…
|
a[2;m-2]
|
a[2;m-1]
|
a[2;m]
|
a[3;1]
|
a[3;2]
|
a[3;3
|
…
|
a[3;m-2]
|
a[3;m-1]
|
a[3;m]
|
a[4;1]
|
a[4;2]
|
a[4;3]
|
…
|
a[3;m-2]
|
a[3;m-1]
|
a[3;m]
|
1.Властивість індексів елементів головної діагоналі
квадратної таблиці A[mxm]: i=j.
2.Властивість індексів
елементів бічної діагоналі квадратної таблиці A[mxm]: i+j= m+1,
де m - кількість рядків(стовпців)
матриці.
3.Властивість запису прямокутної
матриці A в одномірний масив:
порядковий k –ий номер у одномірному масиві В[1..mxn] визначають за формулою: k = (i-1)n +j,
де n - кількість стовпців матриці A. Отже, елементи лінійного масиву
В([
b[1], b[2], b[3],, ..., b[(i-1)n
+j], … , b[mxn])
4.Якщо відомо p - порядковий номер елемента в одномірному масиві В[1xq], тоді індекси і та j елемента a[i;j], який належить двовимірному масиву А[mxn] визначається за
формулами:
i=(p-1) div n +1; j=p – (i-1)n,
де n - кількість стовпців матриці А[mxn].
Задача MATRIZAmxn_L. Перетворити двомірну матрицю А[mxn] дійсних
чисел в лінійний масив дійсних
чисел b[1xg].
program MATRmxn_L;
const m=4; n=5;
q=20;
var
B: array[1..q] of
real;
A: array[1..m,1..n] of real;
i, j, p, k:
integer;
begin
writeln(' Масив
даних має вигляд: ');
{for i:=1 to m*n
do b[1]:=0; }
for i:=1 to m do
for j:=1 to n do
begin
a[i,j]:=
int(random*200-100); { присвоєння випадковим чином цілих чисел масиву від -100
до +100 }
b[(i-1)*n
+j]:=a[i,j];
writeln('a[',i
, '; ',j,']:= ',a[i,j], '= b[',(i-1)*n +j,']=',
b[(i-1)*n +j]);
end; end.
Лінійні алгоритми
Варіант 1
Варіант 1
1. Скласти
програму обчислення об’єму прямокутного паралелепіпеда та його бічної поверхні.
2. Скласти
програму обчислення площі трапеції, коли відомі основи а і b та
висота h.
3. Задано
координати вершин трикутника. Скласти програму обчислення площі даного
трикутника.
4. Скласти
програму обчислення відстані між двома точками на площині, заданими своїми
координатами.
5. Дано
периметр рівностороннього трикутника. Скласти програму обчислення площі даного
трикутника.
6. Дано
два дійсні числа. Обчислити їх суму, різницю та добуток. Результати вивести на
екран.
7. Дано
два дійсні числа. Знайти середнє арифметичне та середнє геометричне значення.
Результати вивести на екран.
8. Дано
катети прямокутного трикутника. Знайти його гіпотенузу та площу. Результати
вивести на екран.
9. Дано
довжину кола. Визначити площу круга, обмеженого
цим колом. Результати вивести на екран.
10.
Обчислити відстань між двома точками, що задані
своїми координатами. Результати вивести на екран.
11.
Скласти програму обчислення об’єму правильного трикутника, якщо
відомий периметр.
12.
Скласти програму обчислення об’єму квадрата, якщо відомий периметр.
13.
Скласти програму обчислення периметра квадрата, якщо відомий об’єм.
14.
Скласти програму обчислення об’єму кулі.
15.
Скласти програму обчислення об’єму циліндра.
16.
Написати програму обчислення об’єму куба.
17.
Написати програму обчислення вартості покупки,
що складається з декількох зошитів і олівців.
18.
Написати програму обчислення вартості деякої
кількості (по вазі) яблук.
19.
Написати програму обчислення площі трикутника,
якщо відома довжина основи і висота.
20.
Написати програму обчислення площі поверхні
циліндра.
Варіант 2
1.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника a, b, c (цe три дійсні числа – real,
які вводяться з клавіатури) половину
периметрa(р=а+b+c), площу(S=(p(p-a)(p-b)(p-c))0,5), радіус описаного кола (R=abc/4S), радіус вписаного кола(r=S/p). Вивести на екран шукані величини.
2.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника a, b, c (цe три дійсні числа – real,
які вводяться з клавіатури) усі висоти(Ha = 2(p(p-a)(p-b)(p-c))0,5)/a, Hb = 2(p(p-a)(p-b)(p-c))0,5)/b,
Hc = 2(p(p-a)(p-b)(p-c))0,5)/c)
трикутника. Вивести на екран
шукані величини.
3.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника a, b, c (цe три дійсні числа – real,
які вводяться з клавіатури) усі медіани (ma = 0.5(2b2 +2c2-a2)0,5, mb = 0.5(2a2 +2a2-b2)0,5),
mc = 0.5(2b2 +2a2-c2)0,5 трикутника. Вивести на екран шукані величини.
4.
Створити
та реалізувати мовою програмування лінійний алгоритм, що за відомими фізичними
величинами a1, m1, m2(дійсні числа)
і законом збереження імпульсу a2=a1m1/m2 знаходить прискорення другого фізичного об’єкта(тіла). Вивести на екран шукані величини.
5.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за відомим
ребром куба а(дійсне число) знаходить
площу поверхні куба( S
= 6a2 ), об'єм куба (V = a3 ),
діагональ куба (D=a(3)0.5), діагональ
грані куба (L=a(2)0.5). Вивести на екран шукані величини.
6.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини.
7.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини. Створити та реалізувати мовою програмування лінійний алгоритм, що
знаходить за трьома відомими сторонами трикутника периметр, площу, радіус
вписаного кола, радіус описаного кола.
Вивести на екран шукані величини.
8.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини.
9.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини.
10.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини.
11.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини.
12.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини.
13.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини.
14.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини.
15.
Створити
та реалізувати мовою програмування лінійний алгоритм, що знаходить за трьома
відомими сторонами трикутника периметр, площу, радіус вписаного кола, радіус
описаного кола. Вивести на екран шукані
величини.
БАНК ЗАВДАНЬ 2.
Алгоритми на одновимірних масивах
Складіть і реалізуйте алгоритми для
розв’язування поданих нижче задач.
1. Задано одновимірний масив з 5
випадкових цілих чисел. Замінити всі елементи даного масиву на протилежні за
знаком. Вивести на екран елементи даного та зміненого масивів.
2. Задано одновимірний масив з 7
випадкових дійсних чисел. Замінити всі елементи даного масиву на їхні
квадрати. Вивести на екран елементи даного та зміненого масивів.
3. Задано одновимірний масив з 8
випадкових цілих чисел. Збільшити вдвічі всі елементи даного масиву. Вивести на
екран елементи даного та зміненого масивів.
4. Задано одновимірний масив з 8
випадкових цілих чисел. Підрахувати кількість від’ємних елементів у даному масиві. Вивести на екран елементи даного масивів
та кількість чисел, що відповідають умові..
5. Задано одновимірний масив з 18
випадкових дійсних чисел різних знаків. Підрахувати кількість додатних
елементів у даному масиві. Вивести на екран елементи даного масивів та
кількість чисел, що відповідають умові..
6. Задано одновимірний масив з 10
випадкових дійсних чисел різних знаків. Підрахувати суму від’ємних елементів.
Вивести на екран елементи даного масивів та число, що відповідає умові..
7. Задано одновимірний масив з 11
випадкових дійсних чисел різних знаків. Підрахувати суму додатних елементів.
Вивести на екран елементи даного масивів та число, що відповідає умові..
8. Задано одновимірний масив з 14
випадкових дійсних чисел різних знаків. Підрахувати середнє арифметичне всіх
елементів. Вивести на екран елементи даного масивів та число, що відповідає
умові..
9. Задано одновимірний масив з 18
випадкових дійсних чисел різних знаків. Підрахувати середнє арифметичне
додатних елементів. Вивести на екран елементи даного масивів та число, що
відповідає умові..
10. Задано одновимірний масив з 16
випадкових дійсних чисел різних знаків. Підрахувати середнє арифметичне
від’ємних елементів. Вивести на екран елементи даного масивів та число, що відповідає
умові..
11. Задано одновимірний масив з 12
випадкових дійсних чисел різних знаків. Поміняйте місцями такі елементи масиву:
1-й на 9-й, 2-й на 8-й і т. ін. Вивести на екран елементи даного масивів та
чотири числа, що обмінюються згідно умові..
12. Задано одновимірний масив з 16
випадкових дійсних чисел різних знаків. Знайти найбільший елемент масиву.
Вивести на екран елементи даного масивів та число, що відповідає умові..
13. Задано одновимірний масив з 12
випадкових дійсних чисел різних знаків. Знайти найменший елемент масиву.
Вивести на екран елементи даного масивів та число, що відповідає умові..
14. Задано одновимірний масив з 13
випадкових дійсних чисел різних знаків. Знайти різницю між найбільшим і
найменшим елементом. Вивести на екран елементи даного масивів та число, що
відповідає умові..
15. Задано одновимірний масив з 10
випадкових дійсних чисел різних знаків. Знайти суму кубів від’ємних елементів.
Вивести на екран елементи даного масивів та число, що відповідає умові..
16. Задано одновимірний масив з 14
випадкових дійсних чисел різних знаків. Знайти суму кубів додатних елементів.
Вивести на екран елементи даного масивів та число, що відповідає умові..
17. Задано одновимірний масив з 10
випадкових дійсних чисел різних знаків. Знайти суму квадратів від’ємних елементів. Вивести на екран елементи даного масивів
та число, що відповідає умові..
18. Задано одновимірний масив з
15випадкових дійсних чисел різних знаків. Знайти суму квадратів додатних
елементів. Вивести на екран елементи даного масивів та число, що відповідає
умові..
19. Задано одновимірний масив з 10
випадкових цілих чисел різних знаків. З’ясувати, чи є у масиві елемент, що
дорівнює 7. Якщо є, то визначити, який його порядковий номер (індекс). Вивести
на екран елементи даного масивів та число, що відповідає умові..
20. Задано одновимірний масив з 14
випадкових дійсних чисел різних знаків. У даному масиві всі елементи, що більші
від числа 1, замінити на 0. Вивести на екран елементи даного масивів та число,
що відповідає умові..
21. Задано одновимірний масив з 13
випадкових дійсних чисел різних знаків. У даному масиві всі елементи, що більші
від числа 5, замінити на 1. Вивести на екран елементи даного масивів та число,
що відповідає умові..
22. Задано одновимірний масив з 12
випадкових дійсних чисел різних знаків. Знайти суму елементів, що мають парні
індекси. Вивести на екран елементи даного масивів та число, що відповідає
умові..
23. Задано одновимірний масив з 11
випадкових дійсних чисел різних знаків. Знайти суму елементів, що мають непарні
індекси. Вивести на екран елементи даного масивів та число, що відповідає
умові..
24. Задано одновимірний масив з 17
випадкових дійсних чисел різних знаків. Всі елементи даного масиву
замінити на їхні куби. Вивести на екран елементи даного масивів та числа, що
відповідають умові..
25. Задано одновимірний масив з 17
випадкових дійсних чисел різних знаків. Елементи, що більші від числа 3,
замінити на їхні куби. Вивести на екран елементи даного масивів та числа, що
відповідають умові.
26. Задано одновимірний масив з 16
випадкових дійсних чисел різних знаків. Підрахувати кількість елементів, що
більші від числа 3. Вивести на екран елементи даного масивів та числа, що
відповідають умові.
27. Задано одновимірний масив з 15
випадкових дійсних чисел різних знаків. Підрахувати кількість елементів, що не
більші від числа -1. Вивести на екран елементи даного масивів та числа, що
відповідають умові.
28. Задано одновимірний масив з 14
випадкових дійсних чисел різних знаків. Підрахувати середнє арифметичне
елементів, що не менші від 1. Вивести на екран елементи даного масивів та
числа, що відповідають умові.
29. Задано одновимірний масив з 13
випадкових дійсних чисел різних знаків. Підрахувати число елементів, що лежать
в інтервалі (-3; 8). Вивести на екран елементи даного масивів та числа, що
відповідають умові.
30. Задано одновимірний масив з 12
випадкових дійсних чисел різних знаків. Скласти з масиву Kмасив A, що містить тільки позитивні елементи
масиву K. Вивести на екран елементи даного масивів та числа, що
відповідають умові.
31. Задано одновимірний масив з 11
випадкових дійсних чисел різних знаків. Скласти з масиву Kмасив A, що містить усі елементи масиву К, які за величиною
перевищують їхнє середнє арифметичне. Вивести на екран елементи даного масивів
та числа, що відповідають умові.
32. Задано одновимірний масив з 10
випадкових дійсних чисел різних знаків. Побудувати масив А, що містить усі
масиви елементу К, які задовольняють таку умову: -4 < Ai < 10. Вивести на екран елементи даного масивів та числа, що
відповідають умові..
33. Задано одновимірний масив з 10
випадкових цілих чисел різних знаків. Побудувати масив А, що містить усі
парні елементи масиву К. Вивести на екран елементи даного масивів та числа, що
відповідають умові.
34. Обчислити середнє арифметичне всіх
чисел масиву К, що мають непарні номери. Вивести на екран елементи даного
масивів та числа, що відповідають умові.
35. Задано одновимірний масив з 10
випадкових цілих чисел різних знаків. Замінити елементи даного масиву на
їхні модулі. Вивести на екран елементи даного масивів та числа, що відповідають
умові.
36. Задано одновимірний масив з 10
випадкових цілих чисел різних знаків. Замінити додатні елементи на число
5, а від’ємні - на число 7. Вивести на екран елементи даного
масивів та числа, що відповідають умові.
37. Задано одновимірний масив з 10
випадкових цілих чисел різних знаків. Заповніть новий масив, збільшивши
усі числа даного масиву на 2. Вивести на екран елементи даного масивів та
числа, що відповідають умові.
38. Задано одновимірний масив з 10
випадкових цілих чисел різних знаків. Додати до від’ємних елементів даного масиву по 1, а додатні елементи зменшити на 1.
Вивести на екран елементи даного масивів та числа, що відповідають умові.
ІІ частина
Складіть програми для розв’язання поданих нижче задач,записуючи розв’язки в одновимірні масиви.
1. 1000 шт. цегли можна перевозити візками місткістю 100, 300, 400, 500 шт.
цегли. Отримати всі можливі варіанти перевезень. Підрахувати їхню кількість.
2. Футбольний м’яч коштує 65 грн. Отримати всі можливі варіанти оплати,якщо
у покупця є 5-,10-,20-гривневі купюри. Підрахувати кількість варіантів.
3. Садівникові потрібно 18 кг. Мінеральних добрив. Отримати всі можливі
варіанти купівлі добрива,якщо в магазині продаються розфасовки по 5-,4-,2-кг.
Підрахувати кількість варіантів.
4. Повітроплавцеві потрібно заповнити воднем повітряну кулю місткістю 17
куб. м балончиками по 1-,2-,5-куб. м водню. Отримати всі можливі варіанти
наповнення. Підрахувати їхню кількість.
5. Шляховим майстрам потрібно прокласти 190 м. залізниці рейками по 8 і 10
м. Отримати всі можливі варіанти прокладання. Підрахувати їхню кількість.
6. 14 літрів соку потрібно розлити в 4-,3-,2- та
1-літрові банки. Отримати всі можливі варіанти розливу. Підрахувати
їхню кількість.
7. 36 кг яблук потрібно розфасувати у пакети по 2-,4-,5- і 10-кг. Отримати
усі можливі варіанти розфасування. Підрахувати їхню кількість.
8.20 кг яблук потрібно розфасувати у пакети по 2-,4- кг. Отримати всі
можливі варіанти розфасування. Підрахувати їхню кількість.
9. 240 екскурсантів можна розсадити в автобуси ЛАЗ(місткість-40 осіб) і
ПАЗ(місткість-30 осіб). Отримати всі можливі варіанти замовлень
автобусів для перевезення екскурсантів. Підрахувати кількість варіантів.
10. 13 літрів соку потрібно розлити в 4-,2- та 1-літрові банки. Вивести на
монітор всі можливі варіанти розливу. Підрахувати їхню кількість.
11. Друкарці можна друкувати книги обсягом
30, 40 і 60 аркушів за її вибором. Усього вона надрукувала 1200
аркушів. Визначити, скільки і яких книг вона могла надрукувати. Отримати всі
можливі варіанти. Підрахувати їхню кількість.
12. Для ремонту дороги потрібно завезти 24 т щебеню. В автопарку є
самоскиди вантажопідйомністю 3, 4 і 6 т. Отримати всі
можливі варіанти перевезення щебеню. Підрахувати їхню кількість.
13. 600 шт. цегли можна перевозити возами місткістю 60 і 45 цеглин.
Отримати усі можливі плани перевезення. Підрахувати їхню кількість.
14. 200 літрів бензину потрібно розлити в баки місткістю 60, 45, і 25 л.
Отримати всі можливі варіанти розливу. Підрахувати їхню кількість.
БАНК ЗАВДАНЬ 3.
Алгоритми на двовимірних масивах
1. Задано двовимірний
масив 2х2 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, що замінює всі елементи даного масиву на взаємно
обернені числа, окрім нульових елементів. Вивести на екран елементи даного
та зміненого масивів.
2. Задано двовимірний
масив 3х3 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, що замінює елементи з парними індексами з
даного масиву на потроєні числа, окрім нульових елементів. Вивести на
екран елементи даного та зміненого масивів.
3. Задано двовимірний
масив 4х4 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, що замінює елементи з непарними індексами даного масиву
на квадрати суми індексів цього елемента, окрім одиничних елементів
масиву. Вивести на екран елементи даного та зміненого масивів.
4. Задано двовимірний
масив 2х3 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, який підраховує кількість та суму
невід’ємних елементів даного масиву. Вивести на екран елементи
даного масиву та лінійного масиву з невід’ємними елементами.
5. Задано двовимірний
масив 4х2 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, який підраховує кількість та суму недодатних
елементів даного масиву. Вивести на екран елементи даного масиву та лінійного
масиву з недодатними елементами.
6. Задано двовимірний
масив 5х5 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, що підраховує кількість елементів даного масиву, які
належать проміжку (1; 5), окрім цілих чисел. Вивести на екран
елементи даного та лінійного масиву з недодатними елементами.
7. Задано двовимірний
масив 5х5 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, що підраховує середнє арифметичне елементів головної
діагоналі даного масиву, які належать проміжку (-4; 0), окрім цілих
чисел. Вивести на екран елементи даного та лінійного масиву, що утворений
з елементів головної діагоналі, які належать проміжку (-4; 0),
8. Задано двовимірний
масив 2х3 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, що підраховує кількість елементів даного масиву, які не
належать проміжку (0,5; 3,1), окрім цілих чисел. Вивести на екран
елементи даного та лінійний масив, що утворений з шуканих елементів, які
не належать проміжку (0,5; 3,1).
9. Задано двовимірний
масив 2х3 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, що підраховує кількість елементів даного
масиву, які належать проміжку (1; +оо), окрім цілих чисел. Вивести
на екран елементи даного та лінійного масиву, що утворений із шуканих
елементів, які належать проміжку (1; +оо).
10. Задано двовимірний
масив 5х5 з випадкових дійсних чисел. Створити та реалізувати мовою
програмування алгоритм, що підраховує суму квадратів від’ємних
елементів даного масиву, які належать проміжку (-оо; 5), окрім цілих
чисел. Вивести на екран елементи даного та зміненого масивів.
Довідник мови програмування Pascal
Мова програмування Pascal. Основні поняття мови.
План.
1. Поняття програми.2. Мова програмування. Алфавіт. 3. Основні поняття мови.
Що таке мова програмування? Для того, щоб дати відповідь на це запитання, дамо спочатку відповідь на інше запитання: а що таке програмування, або в ще більш простому варіанті: що таке програма? Досить часто в житті ми вживаємо це слово, наприклад: програма телепередач на тиждень, програма підготовки до складання іспиту, індивідуальна програма для спортсмена при підготовці до змагань і т.д. В кожному з наведених прикладів у сказану фразу вкладено різний зміст, але загалом суть залишається тією ж: це послідовність дій (телепрограм на кожен день тижня, вивчення порцій (параграфів) навчального матеріалу при підготовці до іспиту, норми та види щоденного навантаження спортсмена ), точно виконуючи яку виконавець досягне поставленої перед ним задачі. У цьому розумінні термін “програма” дещо схожий до терміну “алгоритм”, але нашим завданням не є вияснення популярного запитання “хто є хто”, тому у нашому розумінні слово програма надалі писатиметься без лапок і буде являти собою систему послідовних команд для ПЕОМ для розв’язання кожної конкретної задачі.
Ми будемо вивчати мову Паскаль. Перші відомості про мову Паскаль були опубліковані в 1971 році. Його автор професор Інституту інформатики Швейцарської вищої політехнічної школи Ніклаус Вирт. Мова названа на честь видатного французького фізика, математика і філософа Блеза Паскаля.
Своєї величезної популярності, у даний час, Паскаль зобов'язаний американській фірмі BORLAND, що створила діалект мови Турбо Паскаль, розширивши стандартний Паскаль додатковими можливостями і створивши дуже зручну і швидку програму-транслятор.
Оскільки мікропроцесор сприймає команди винятково в цифровому виді, що надходять на його вхід у виді комбінацій електричних імпульсів, а алгоритм рішення будь-якої задачі записується мовою програмування у виді словесних команд на "людському" мові, те необхідний перекладач (транслятор) з такої мови в мову машинних цифрових кодів. Таку роботу і виконує програма-транслятор, що здійснює, крім того, ще і перевірку правильності написання програми.
Склад мови.
Звичайна розмовна мова складається з чотирьох основних елементів: символів, слів, словосполучень і речень. Мова програмування містить подібні елементи, тільки слова називають елементарними конструкціями, словосполучення-виразами, речення-операторами. Символи, елементарні конструкції, вирази й оператори складають ієрархічну структуру, оскільки елементарні конструкції утворяться з послідовності символів, вирази – це послідовність елементарних конструкцій і символів, а оператор – послідовність виразів, елементарних конструкцій і символів.
Опис мови є опис чотирьох названих елементів. Опис символів полягає в перерахуванні припустимих символів мови. Під описом елементарних конструкцій розуміють правила їхнього утворення. Опис виразів – це правила утворення будь-яких виразів, що мають зміст у даній мові. Опис операторів складається з розгляду усіх типів операторів, припустимих у мові. Опис кожного елемента мови задається його СИНТАКСИСОМ і СЕМАНТИКОЮ. Синтаксичні визначення встановлюють правила побудови елементів мови. Семантика визначає зміст і правила використання тих елементів мови, для яких були дані синтаксичні визначення.
СИМВОЛИ мов – це основні неподільні знаки, якими пишуться всі тексти мовою.
ЕЛЕМЕНТАРНІ КОНСТРУКЦІЇ – це мінімальні одиниці мови, що мають самостійний зміст. Вони утворяться з основних символів мови.
ВИРАЗ в алгоритмічній мові складається з елементарних конструкцій і символів, воно задає правило обчислення деякого значення.
ОПЕРАТОР задає повний опис деякої дії, що необхідно виконати. Для опису складної дії може знадобитися група операторів. У цьому випадку оператори поєднуються в СКЛАДЕНИЙ ЧИ ОПЕРАТОРИЙ БЛОК.
Дії, задані операторами, виконуються над ДАНИМИ. Речення алгоритмічної мови, у яких даються відомості про типи даних, називаються ОПИСАМИ операторів, які не виконуються.
Об'єднана єдиним алгоритмом сукупність описів і операторів утворює ПРОГРАМУ.
ОСНОВНІ СИМВОЛИ
Основні символи мови – букви, цифри і спеціальні символи – складають його алфавіт. ТУРБО ПАСКАЛЬ включає наступний набір основних символів:
1) 26 латинських великих і 26 латинських малих букв:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h і j k l m n o p q r s t u v w x y z
2) _ підкреслення
3) 10 цифр: 0 1 2 3 4 5 6 7 8 9
4) знаки операцій:
+ - * / = <> < > <= >= :=
5) обмежувачі:
. , ' ( ) [ ] (. .) { } (* *) .. : ;
6) специфікатори:
^ # $
Крім перерахованих, у набір основних символів входить пробіл. Пробіли не можна використовувати всередині здвоєних символів і зарезервованих слів.
EЛЕМЕНТАРНІ КОНСТРУКЦІЇ
Елементарні конструкції мови ПАСКАЛЬ містять у собі імена, числа і рядки.
Імена (ідентифікатори) називають елементи мови – константи, мітки, типи, змінні, процедури, функції, модулі, об'єкти. Ім'я – це послідовність букв і цифр, що починається з букви. В іменах може використовуватись символ _ підкреслення. Ім'я може містити довільну кількість символів, але значущими є 63 символи.
Не дозволяється в мові ПАСКАЛЬ використовувати як імена службові слова і стандартні імена, якими названі стандартні константи, типи, процедури, функції і файли.
Для поліпшення наочності програми в неї можуть вставлятися пробіли. Принаймні один пробіл потрібно вставити між двома послідовними іменами, чи числами службовими і стандартними іменами. Пробіли не можна використовувати всередині імен і чисел.
Приклади імен мови ПАСКАЛЬ:
A b12 r1m SIGMA gamma I80_86
Числа в мові ПАСКАЛЬ звичайно записуються в десятковій системі числення. Вони можуть бути цілими і дійсними. Позитивний знак числа може бути опущений. Цілі числа записуються у формі без десяткової крапки, наприклад:
217 -45 8954 +483
Дійсні числа записуються у формі з десятковою крапкою чи у формі з використанням десяткового порядку, що зображується буквою Е:
28.6 0.65 -0.018 4.0 5Е12 -1.72Е9 73.1Е-16
ПАСКАЛЬ допускає запис цілих чисел і фрагментів дійсних чисел у формі з
Рядки в мові ПАСКАЛЬ – це послідовність символів, записаних між апострофами. Якщо в рядку в якості змістовного символу необхідно вжити сам апостроф, то слід записати два апострофа. Приклади рядків:
'РЯДОК' 'STRING' 'ПРОГРАМА' 'АД''ЮТАНТ '
КОНЦЕПЦІЯ ТИПУ ДЛЯ ДАНИХ
У математиці прийнято класифікувати змінні відповідно до деяких важливих характеристик. Виробляється строге розмежування між речовинними, комплексними і логічними змінними, між змінними, що представляють окремі значення і безліч значень і так далі. При обробці даних на ЕОМ така класифікація ще більш важлива.
У будь-якій алгоритмічній мові кожна константа, змінна, вираз чи функція мають визначений тип.
У мові ПАСКАЛЬ існує правило: тип явно задається в описі змінних чи функцій, що передує їхньому використанню. Концепція типу мови ПАСКАЛЬ має наступні основні властивості:
– будь-який тип даних визначає множина значень, до якої належить константа, що може приймати змінна чи вираз, операція чи виробляти функція;
– тип значення, що задається константою, змінною чи виразом, можна визначити по їх виду чи опису;
– кожна операція чи функція вимагає аргументів фіксованого типу і видає результат фіксованого типу.
Звідси випливає, що транслятор може використовувати інформацію про тип для перевірки обчислення і правильності різних конструкцій.
Тип визначає:
– можливі значення змінних, констант, функцій, виразів, належних до даного типу;
– внутрішню форму представлення даних в ЕОМ;
– операції і функції, що можуть виконуватися над величинами, належними до даного типу.
Обов'язковий опис типу приводить до надмірності в тексті програм, але така надмірність є важливим допоміжним засобом розробки програм і розглядається як необхідна властивість сучасних алгоритмічних мов високого рівня. У мові ПАСКАЛЬ існують скалярні і структуровані типи даних.
До скалярних типів відносяться стандартні типи і типи, визначені користувачем.
Стандартні типи включають цілі, дійсні, символьні, логічні й адресні типи. Типи, визначені користувачем, – перелічувальні і інтервальні.
Структуровані типи мають чотири різновиди: масиви, множини, записи і файли.
Крім перерахованих, TURBO PASCAL включає ще два типи – процедурний і об'єктний.
З групи скалярних типів можна виділити порядкові типи, які характеризуються наступними властивостями:
– усі можливі значення порядкового типу являють собою обмежену упорядковану безліч;
– до будь-якого порядкового типу може бути застосована стандартна функція Ord, що як результат повертає порядковий номер конкретного значення в даному типі;
– до будь-якого порядкового типу можуть бути застосовані стандартні функції Pred і Succ, що повертають попереднє і наступне значення відповідно;
– до будь-якого порядкового типу можуть бути застосовані стандартні функції Low і High, що повертають найменше і найбільше значення величин даного типу.
СТАНДАРТНІ ТИПИ ДАНИХ
До стандартних відносяться цілі, дійсні, логічні, символьний і адресний типи.
ЦІЛІ типи визначають константи, змінні і функції, значення яких реалізуються множиною цілих чисел, допустимих у даній ЕОМ.
Тип
діапазон значень
необхідна пам'ять
Shortint
-128 .. 127
1 байт
Тип
діапазон значень
необхідна пам'ять
Integer
-32768 .. 32767
2 байта
Тип
діапазон значень
необхідна пам'ять
Longint
-2 147 483 648..2147483647
4 байта
Тип
діапазон значень
необхідна пам'ять
Byte
0 .. 255
1 байт
Тип
діапазон значень
необхідна пам'ять
Word
0 .. 65535
2 байта
ДІЙСНІ типи визначають ті дані, що реалізуються підмножиною дійсних чисел, допустимих у даній ЕОМ.
Тип
діапазон значень
Кількість цифр мантиси
необхідна пам'ять
Real
2.9e-39 .. 1.7e+38
11
6
Тип
діапазон значень
Кількість цифр мантиси
необхідна пам'ять
Single
1.5e-45 .. 3.4e+38
7
4
Тип
діапазон значень
Кількість цифр мантиси
необхідна пам'ять
Double
5.0e-324 .. 1.7e+308
15
8
Тип
діапазон значень
Кількість цифр мантиси
необхідна пам'ять
Extended
3.4e-4932 .. 1.1e+4932
19
10
Тип
діапазон значень
Кількість цифр мантиси
необхідна пам'ять
Comp
-9.2e+18 .. 9.2e+18
19
8
ЛОГІЧНИЙ тип (Boolean) визначає ті дані, що можуть приймати логічні значення TRUE і FALSE.
До булевих операндів застосовні наступні логічні операції: not and or xor.
Логічний тип визначений таким чином, що FALSE < TRUE. Це дозволяє застосовувати до булевих операндів всі операції відносини.
У ТУРБО ПАСКАЛЬ введені ще різновиди логічного типу: ByteBool, WordBool і LongBool, що займають у пам'яті ЕОМ один, два і чотири байти відповідно.
СИМВОЛЬНИЙ тип (Char) визначає упорядковану сукупність символів, допустимих у данії ЕОМ. Значення символьної змінної чи константи – це один символ із допустимого набору.
Символьна константа може записуватися в тексті програми трьома способами:
- як один символ, укладений в апострофи, наприклад: 'A' 'a' 'Ю' 'ю';
- за допомогою конструкції виду #K, де K - код відповідного символа, при цьому значення K повинне знаходитися в межах 0..255;
- за допомогою конструкції виду ^C, де C - код відповідного керуючого символу, при цьому значення C повинне бути на 64 більше коду керуючого символу.
АДРЕСНИЙ тип (Pointer) визначає змінні, котрі можуть містити значення адрес чи даних фрагментів програми. Для збереження адреси вимагаються два слова (4 байти), одне з них визначає сегмент, друге – зміщення.
Робота з адресними змінними (покажчиками) буде розглянута пізніше, зараз відзначимо, що для одержання значення адреси який-небудь змінної введена унарна операція @.
ВИРАЗИ. ОПЕРАТОР ПРИСВОЮВАННЯ
Вирази складаються з констант, змінних, покажчиків функцій, знаків операцій і дужок. Вираз задає правило обчислення деякогого значення. Порядок обчислення визначається старшинством (пріоритетом) операцій, що містяться в ньому. У мові ПАСКАЛЬ прийнятий наступний пріоритет операцій:
1. унарна операція not, унарний мінус –, взяття адреси @
2. операції типу множення * / div mod and shl shr
3. операції типу додавання + - or xor
4. операції відносини = <> < > <= >= in
Вирази входять до складу багатьох операторів мови ПАСКАЛЬ, а також можуть бути аргументами убудованих функцій.
В операторі присвоювання тип змінної і тип виразу повинні збігатися крім випадку, коли вираз відноситься до цілого типу, а змінна – до дійсного. При цьому відбувається перетворення значення виразу до дійсного типу.
ОПЕРАТОРИ ВВОДУ І ВИВОДУ
Розглянемо організацію введення і висновку даних з термінального пристрою. Термінальний пристрій – це пристрій, з яким працює користувач, звичайно це екран (дисплей) і клавіатура.
Для введення і висновку даних використовуються стандартні процедури введення і висновку Read і Write, що оперують стандартними послідовними файлами INPUT и OUTPUT.
Ці файли розбиваються на рядки змінної довжини, відокремлювані один від одного ознакою кінця рядка. Кінець рядка задається натисканням клавіші ENTER.
Для уведення вихідних даних використовуються оператори процедур уведення:
Read(A1,A2,...AK);
ReadLn(A1,A2,...AK);
ReadLn;
Перший з них реалізує читання K значень вихідних даних і присвоювання цих значень змінним А1, А2, ..., АK. Другий оператор реалізує читання K значень вихідний даних, пропуск інших значень до початку наступного рядка, присвоювання значень змінних А1, А2, ..., АК. Третій оператор реалізує пропуск рядка вихідних даних.
При введенні вихідних даних відбувається перетворення із зовнішньої форми представлення у внутрішнім, обумовленим типом змінних. Змінні, що утворюють список введення, можуть належати або до цілого, або до дійсного, або до символьного типам. Читання вихідних даних логічного типу в мові ПАСКАЛЬ неприпустимо.
Оператори введення при читанні значень змінних цілого і дійсного типу пропускає пробіли, що передують числу. У той же час ці оператори не пропускають пробілів, що передують значенням символьних змінних, тому що пробіли є рівноправними символами рядків. Приклад запису операторів введення:
Var rV, rS: Real;
iW, iJ: Integer;
chC, chD: Char;
................
Read(rV, rS, iW, iJ);
Read(chC, chD);
Значення вихідних даних можуть відокремлюватися один від одного пробілами і натисканням клавіш табуляції і Enter.
Для виведення результатів роботи програми на екран використовуються оператори:
Write(A1,A2,...AK);
WriteLn(A1,A2,...AK);
WriteLn;
Перший з цих операторів реалізує виведення значень змінних А1, А2,...,АК у рядок екрана. Другий оператор реалізує виведення значень змінних А1, А2, ..., АК і перехід до початку наступної рядка. Третій оператор реалізує пропуск рядка і перехід до початку наступної рядка.
Змінні, у списку виведення, можуть відноситись до цілого, дійсного, символьному чи булевого типу. У якості елемента списку виведення крім імен змінних можуть використовуватися вирази і рядки. Виведення кожного значення в рядок екрана відбувається відповідно із шириною поля виведення, обумовленою конкретною реалізацією мови.
Форма представлення значень у полі виведення відповідає типу змінних і виразів: величини цілого типу виводяться як цілі десяткові числа, дійсного типу – як дійсні десяткові числа з десятковим порядком, символьного типу і рядка – у виді символів, логічного типу – у виді логічних констант TRUE і FALSE.
Оператор висновку дозволяє задати ширину полючи висновку для кожного елемента списку висновку. У цьому випадку елемент списку висновку має вид А:K, де А – вираз чи рядок, K – вираз або константа цілого типу.
Якщо виведене значення займає в поле виведення менше позицій, чим ДО, то перед цим значенням розташовуються пробіли. Якщо виведене значення не міститься в ширині поля K, то для цього значення буде відведена необхідна кількість позицій. Для величин дійсного типу елемент списку виведення може мати вид А:K:М, де А – змінна чи вираз дійсного типу, K – ширина поля виведення, М - число цифр дробової частини виведеного значення. K і М – цілого типу. У цьому випадку дійсні значення виводяться у формі десяткового числа з фіксованою крапкою.
Приклад запису операторів виведення:
. . . . . . . . . . . .
var rA, rB: Real; iP,iQ:Integer;
bR, bS: Boolean; chT, chV, chU, chW: Char;
. . . . . . . . . . . .
WriteLn(rA, rB:10:2);
WriteLn(iP, iQ:8);
WriteLn(bR, bS:8);
WriteLn(chT, chV, chU, chW);
СТРУКТУРА ПРОГРАМИ
Програма мовою ПАСКАЛЬ складається з заголовка, розділів описів і розділ операторів.
Заголовок програми містить ім'я програми, наприклад:
Program PRIM;
Описи можуть містити в собі розділ бібліотек, що підключаються, (модулів), розділів опису міток, розділів опису констант, розділ опису типів, розділ опису змінних, розділ опису процедур іь функцій.
Розділ опису модулів визначається службовим словом USES і має імена модулів, що підключаються, (бібліотек) як вхідних до складу системи TURBO PASCAL, так і написаних користувачем. Розділ опису модулів повинний бути першим серед розділів описів. Імена модулів відокремлюються один від одного комами: uses CRT, Graph;
Будь-який оператор у програмі може бути позначений міткою. У якості мітки використовуються довільні цілі без знака, що містять не більш чотирьох цифр, або імена. Мітка ставиться перед оператором і відокремлюється від нього двокрапкою. Усі мітки, використовувані в програмі, повинні бути перераховані в розділі опису міток, наприклад: label 3, 471, 29, Quit;
Опис констант дозволяє використовувати імена як синоніми констант, їх необхідно визначити в розділі описів констант: const K= 1024; MAXIM= 16384;
У розділі опису змінних необхідно визначити тип усіх змінних, використовуваних у програмі:
var P,Q,R: Integer; A,B: Char; F1,F2: Boolean;
Опис типів, прцедур і функцій буде розглянуто нижче. Окремі розділи описів можуть бути відсутні, але варто пам'ятати, що в ПАСКАЛЬ – програмі повинні бути обов'язково описані усі компоненти програми.
Розділ операторів являє собою складений оператор, що містить між службовими словами
begin.......end
послідовність операторів. Оператори відокремлюються один від одного символом ;.
Текст програми закінчується символом крапка.
Крім описів і операторів ПАСКАЛЬ – програма може містити коментарі, що являють собою довільну послідовність символів, розташовану між відкриваючою дужкою коментарів { і закриваючою дужкою коментарів }.
Текст ПАСКАЛЬ – програми може містити ключі компіляції, які дозволяють керувати режимом компіляції. Синтаксично ключі компіляції записуються як коментарі. Ключ компіляції містить символ $ і буква-ключ з наступним знаком + (включити режим) чи - (виключити режим). Наприклад:
{$E+} – емулювати математичний співпроцесор;
{$F+} - формувати далекий тип виклику процедур і функцій;
{$N+} - використовувати математичний співпроцесор;
{$R+} - перевіряти вихід за границі діапазонів.
Деякі ключі компіляції можуть містити параметр, наприклад:
{$I ім'я файлу} - включити в текст компілюючої програми названий файл.
Приклад запису простої програми:
Program TRIANG;
var A, B, C, S, P: Real;
begin
Read(A,B,C);
WriteLn(A,B,C);
P:=(A+B+C)/2;
S:=Sqrt(P*(P-A)*(P-B)*(P-C));
WriteLn('S=',S:8:3)
end.
ЗАВДАННЯ ДО РОЗВ’ЯЗАННЯ
1) Дана довжина ребра куба. Знайти об’єм куба і площу його бічної поверхні.
2) Дані катети прямокутного трикутника. Знайти його гіпотенузу і площу.
3) Дано x, y, z .Обчислити b, якщо b=x(arctg z + e-(x+3))
4) Дано дійсні числа x і y. Одержати
5) Три опори з’єднані паралельно. Знайти опір з’єднання.
Структура програми
Для того, щоб комп’ютер “зрозумів” вказівки програміста, він повинен “спілкуватись” із програмістом на спільній мові, яку називають мовою програмування. Програма — це алгоритм, записаний мовою програмування. У мові програмування
Pascal програма має певну структуру:
Program <ім’я програми>;
uses <опис модулів>;
label <опис міток>;
const <опис констант>;
type <опис типів змінних>;
var <опис змінних>;
procedure <опис процедур>;
function <опис функцій>;
begin
оператор 1;
оператор 2;
…
оператор n;
end.
Вона починається із заголовка, що складається із зарезервованого слова рrogram та імені програми, далі міститься розділ описів (програміст повідомляє компілятору, якими ідентифікаторами він позначає дані (константи, змінні), а також встановлює власні типи даних, які надалі він сподівається використовувати в програмі, при цьому необхідно слідкувати, щоб імена змінних, констант, назви типів не повторювались для різних даних) і останній розділ - розділ операторів.
Program - це заголовок програми, що вказує її ім'я. Рекомендують вказувати заголовок програми, щоб уже при першому знайомстві з її текстом можна було отримати інформацію про її призначення. Потрібно відмітити, що заголовок програми, що слідує, за словом PROGRAM є ідентифікатором і володіє всіма його властивостями. Крім цього, заголовок програми обов’язково повинен починатись з латинської літери, а далі можуть знаходитись символи, допустимі для алфавіту Pascal.
Uses - цей підрозділ вказує назви модулів та бібліотек, що потрібно підключити до програми. Поняття “модуль”, “бібліотека”, “блок” складають основу термінології програмування на Pascal. Модуль представляє собою замкнутий блок, що має своє ім’я, компілюється окремо і підключається до вашої програми, як ніби “чорна скринька” із набором певних (описаних у ньому) процедур, функцій, типів даних, констант і т.д. Бібліотека представляє собою набір таких модулів. Якщо модулі в програмі не потрібно використовувати (не використовується процедури, функції і т.д., що описані в модулі), то цей підрозділ не вказуємо. Потрібно відмітити, що оператор USES може використовуватись в програмі лише один раз, при цьому в нього є чітко визначене місце (він знаходиться поперед усіх операторів та підрозділів (крім заголовка програми та директив компілятора)).
Label - підрозділ, в якому вказується список усіх міток, що використовуються в програмі. Якщо міток у програмі немає, то підрозділ LABEL не вказуємо.
Const - підрозділ опису констант. Якщо в програмі будуть застосовуватись константи, то їх імена та значення (після знаку рівності) вводять в розділі Const. В інших випадках цей підрозділ не вказується. Слід відмітити, що стандартні константи, прийняті в Pascal, не потрібно описувати в даному розділі.
Type - підрозділ опису користувацьких типів даних. В цьому підрозділі переважно вказують складні та нестандартні типи даних. Якщо такі типи в програмі не використовують, то даний підрозділ не вказується.
Var - підрозділ опису всіх змінних, що використовуються в програмі. Потрібно відмітити, що всі змінні, що використовуються в програмі, обов'язково повинні бути описані в підрозділі var. Це єдиний підрозділ розділу описів та узгоджень, який обов’язково повинен бути представлений у кожній Pascal-програмі.
Розділ текстів процедур та функцій вказується лише у випадку, якщо в програмі використовуються нестандартні процедури та функції, що створені самим користувачем (якщо вони не описані в одному з модулів вказаних у розділі USES). Потрібно відмітити, що процедури та функції - це спеціальним чином оформлені послідовності команд (у вигляді підпрограми). Доступ до цієї підпрограми може здійснюватись з будь-якого місця основної програми, а також з будь-якої процедури та функції, що описані нижче по тексту програми.
Розділ операторів - це розділ основного блоку програми. В цьому розділі знаходиться основний текст програми. Починається цей розділ словом begin і закінчується словом end, після якого слідує крапка.
Правила написання Pascal-програм
1. Основний текст будь-якої програми починається службовим словом begin і закінчується словом end, після чого слідує крапка. Без крапки програма вважається не закінченою. І навпаки, якщо в програмі знаходиться крапка, то всі команди, що слідують за нею ігноруються (оскільки програма завершена).
2. В кінці кожної команди ставиться крапка з комою (“;”) - символ, що розділяє команди між собою.
3. Після команди, яка знаходиться перед end, крапку з комою (“;”) бажано не встановлювати, оскільки буде вважатись, що перед end є ще один порожній оператор.
4. Команди в Pascal можна записувати в один рядок, хоча для полегшення читабельності програми бажано кожну команду вказувати з нового рядка.
5. Якщо користувач бажає помістити в текст програми коментарі, то їх необхідно вказувати у фігурних дужках (замість фігурних дужок можна вказувати альтернативний набір символів - (“(* ,,, *)” ).
6. При вказуванні в програмі виразів, що містять будь-які дужки потрібно пам’ятати, що кількість закритих та відкритих дужок повинна бути однаковою.
7. Якщо потрібно використати декілька операторів у якості одного складеного оператора, то їх слід взяти в операторні дужки, що починаються словом begin і закінчуються end. При цьому кількість слів begin у програмі повинна співпадати з кількістю слів end.
8. Усі змінні, константи та типи даних, що використовуються в програмі, повинні бути описані в розділах const, type та var.
Алфавіт мови програмування
Мова програмування, які і будь-яка інша мова, містить свій алфавіт.
Алфавіт мови програмування - це набір констант, типів даних, змінних, стандартних процедур і функцій, операндів та операторів, з яких складається програма.
Розглянемо ці терміни більш детально.
Константи - це дані, значення яких відоме до завантаження програми і не змінюється в процесі її виконання.
В Pascal існують як стандартні константи, так і вказані користувачем. До стандартних констант належить, наприклад, число Pi=3,141592.... Константи, задані користувачем, потрібно вказувати в спеціальному розділі програми const.
Змінні - це дані, значення яких вводиться та змінюється під час виконання програми. Усі змінні, що використовуються в Pascal-програмі, потрібно описувати в спеціальному розділі програми.
Тип даних - це набір даних (констант, змінних, значень функцій і т.д.), які мають спільні характеристики (формат представлення в пам’яті ПК, множина допустимих значень, множина допустимих операцій, що можна використовувати для даного типу).
Процедури та функції- це підпрограми, що використовуються в середині програми (більш детально будуть описані далі). До алфавіту мови програмування відносять стандартні процедури та функції, тобто такі, що сприймаються мовою програмування без їх додаткового опису.
Операнди - це спеціальні символи або послідовності символів, які виконують над даними певні операції (математичні, логічні і т.д.).
Прикладом операндів можуть бути операнди математичних операцій: “+” - додавання даних), “-” - віднімання даних, “*” -множення даних, “/” - ділення даних, “=” - рівність даних і т.д.
Оператори - це деякі неподільні елементи програми, що дозволяють виконувати певні алгоритмічні дії у програмі, тобто виконувати в програмі певні команди. фактично, оператор - це окрема команда в алгоритмі програми, тобто окремий крок виконання програми.
В Pascal оператори поділяються на прості та структурні. До простих операторів відносяться:
- оператор присвоєння (:=);
- оператор введення (read, readln);
- оператор виведення (write, writeln);
- оператор безумовного переходу (goto);
- оператор звертання до процедури (функції).
Структурними операторами називаються такі, що складаються з інших операторів. До них відносяться:
- складний оператор - представляє собою набір операторів, що поміщені в операторні дужки (begin - end);
- умовний оператор (if);
- оператор вибору (case);
- оператори циклу (repeat, while, for).
Усі вищеописані елементи алфавіту мови програмування складаються з окремих символів. В якості символів, що складають елементи алфавіту, в Pascal можна використовувати більшість символів, що входять в стандартну ASCII-таблицю. Заборонено використовувати символи розширеної ASCII-таблиці, тобто символи з кодами від 128 до 255, а також символи: (&), (!), (%), (~), (”). Ці символи можна використовувати лише в якості коментарів та в текстових стрічках, які беруться в одинарні лапки (’).
Службові слова
Оператори присвоєння, введення-виведення даних
Оператори — це команди програми. Нижче наводяться основні оператори, за допомогою яких можна створювати прості програми.Зауваження. Після кожного оператора в програмі ставиться символ «;» (крапка з комою). У кінці програми ставиться «.» (крапка).
Команда присвоєння має вигляд:
<змінної> := <вираз>;
Дія команди. Обчислюється вираз і його значення надається змінній. Вираз призначений для описування формул, за якими виконуються обчислення. Вираз може містити числа, змінн сталі, назви функцій, з’єднані символами операцій. Змінна і вираз мають бути одного типу або узгодженими: змінним дійсного типу можна надавати значення виразів цілого типу, а змінним рядкового типу присвоювати значення виразів символьного типу, але не навпаки.
Приклад. Розглянемо дію команд присвоєння в виразі для обчислення периметра , півпериметра і площі трикутника p:=a+b+c; p:=p/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)). Тут обчислюється значення периметра і воно надається змінній p, півпериметра (надається також змінній p) та площі (надається змінній s).
Команди введення (read, readln) даних. Надавати значення змінним можна двома способами: за допомогою команди присвоєння, наприклад x:=5, або команд уведення даних з клавіатури. Другий спосіб робить програму більш універсальною, оскільки дає змогу розв’язувати задачі для різних значень змінних. Команда read має вигляд:
read(<змінна 1> , …, <змінна n>);
Дія команди. Виконання програми зупиняється. Cистема переходить у режим очікування введення даних (екран темний, миготить курсор). Значення цих даних користувач набирає на клавіатурі через пропуск або натискає після кожного даного на клавішу вводу. У результаті виконання цієї команди відповідним змінним будуть присвоєні конкретні значення. Команда readln має вигляд:
readln(<змінна 1> , …, <змінна n>);
Вона діє як команда read з тією різницею, що зайві дані у рядку введення ігноруються. Наступна команда вводу читатиме дані з нового рядка. Значення сторін трикутника можна ввести, наприклад, так: readln(a, b); read(c). Тоді під час виконання програми на клавіатурі набираємо
У результаті виконання команд readln(a, b) та read(c) змінні отримають такі значення: a=5; b=3.6; c=4.2.
Команди виведення (write, writeln) даних. Для виведення на екран повідомлень та результатів обчислень використовують команди write та write:
write(<змінна 1> , …, <змінна n>);
У списку виведення можуть бути сталі, змінні або вирази.
Дія команди. Сталі, значення змінних та виразів виводяться на екран у вікно виведення, яке можна переглянути за допомогою комбінації клавіш Alt+F5. Команда
writeln(<змінна 1> , …, <змінна n>);
діє майже так само як і команда write; різниця така: наступна після неї команда write чи writeln буде виводити значення на екран у новому рядку. Для переходу на новий рядок екрана чи для пропуску рядка використовують команду writeln без параметрів. Якщо програмі задати такі команди виведення: write('p=', p); writeln('s=', s); writeln('Виконав Іванов Ю.'), то для заданих вхідних даних a=5, b=3.6, с=4.2, на екрані отримаємо такий результат:
p= 1.2800000000E+01s= 7.429239530Å+00
Форматний вивід. Команди write та writeln можуть здійснювати форматний вивід даних. Форматування — це подання результатів у наперед заданому користувачем вигляді. Для цього після виразу через двокрапку записують число (:n) — кількість позицій на екрані, які треба надати для виведення значення цього виразу. Формат :n застосовують для даних цілого та рядкового типів. Під час виведення даного дійсного типу зазначають загальну кількість позицій для всіх символів (n) та кількість позицій для дробової частини (m), тобто формат має вигляд :n:m. Розглянемо команду виведення writeln('p=', p:5:2). Вона забезпечує виведення на екран рядкової сталої 'p=' без лапок (з метою пояснення, що обчислено) і числа 12,8 у форматі :5:2, тобто так: p= 12.80.
Зауваження. Якщо не використовувати форматний вивід, то для даних цілого та логічного типу на екрані буде надано до 15 позицій, для даних дійсного типу — 18. Дані дійсного типу виводяться у вигляді х.ххххххххххЕзнакхх, де х – будь-яка цифра, що часто є надлишковим. Такі числа на екрані можуть зливатися.
Розглянемо програму, яка обчислює суму чисел А=10 і В=5.
Program PROBA;
uses wincrt;
const A=10;
B=5;
var S: integer;
begin
S:=A+B;
writeln ( 'S=', S);
end.
В результаті виконання цієї програми на екран виведеться S=15.
|
Підписатися на:
Дописи (Atom)