Задача1. Знайти площу трикутника за його трьома сторонами.
Задача1. Знайти значення функції:
Задача2. Знайти значення виразу:
3. Цикл ПОКИ
Задача1. Знайти суму чисел 10+11+12+...+N.
Задача2. Знайти суму чисел 10+9+8+...+1.
Задача1. Збільшити всі елементи одновимірного масиву X(N) в два рази.
Задача2. Замінити всі додатні елементи одновимірного масиву X(N) їх порядковими номерами.
Задача3. Знайти середнє арифметичне від’ємних елементів одновимірного масиву X(N).
Задача1. Замінити всі елементи двовимірного масиву числом 7.
Задача2. Збільшити елементи із проміжку [2;10] сумою квадрата самого елемента і числа 3.
Задача3. Знайти суму всіх елементів кожного рядка двовимірного масиву.
Задача1. Знайти добуток сум головної та бічної діагоналі.
Задача2. Знайти кількість додатних елементів, які знаходяться над головною діагоналлю.
Задача1. Підрахувати кількість літер “о” у заданому слові.
Задача1. Задано координати (x1,y1), (x2,y2), (x3,y3) вершин трикутника у площині. Обчислити периметр трикутника.
Задача1. Дано сторони a, b прямокутника. Обчислити периметр і площу прямокутника, використавши для цього процедуру.
1. ЛІНІЙНІ ПРОГРАМИ
ЗАДАЧА1. Знайти площу трикутника за трьома сторонами.
Дано: перша сторона – a; дійсний
друга сторона – в; дійсний
третя сторона – с; дійсний
Знайти: площу трикутника – S; дійсний
Розв’язання
Р=(а+в+с)/2
S=√р(р-а)(р-в)(р-с)
S
ІІІ. ПРОГРАМА
PROGRAM z1;
VAR a,в,c,p,S:real;
BEGIN
write(‘a=’);
readLN(a);
write(‘в=’);
readLN(в);
write(‘c=’);
readLN(c);
p:=(a+в+c)/2;
S:=sqrt(p*(p-a)*(p-в)*(p-c));
writeLN(‘S=’,S:4:2);
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
a=3
в=5
с=4
S=6.00
Це звичайна лінійна програма, в якій використовується структура слідування. В цій задачі аргументами являються довжини сторін трикутника (A,B,C), а результатом – площа трикутника (S). Периметр трикутника (Р) – допоміжна величина (значення якої на екран не виводиться).
2. РОЗГАЛУЖЕНІ ПРОГРАМИ
ЗАДАЧА1. Знайдіть значення функції:
Дано: любе число – х; дійсний
Знайти: значення функції – y; дійсний
1) якщо х1, то y=x2
2) якщо х<1, то y=1-x
ІІІ. ПРОГРАМА
PROGRAM z1;
VAR x,y:real;
BEGIN
write(‘x=’);
readLN(x);
IF x>=1 THEN y:=sqr(x) ELSE y:=1-x;
writeLN(‘y=‘,y:4:2)
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
(гілка+)
x=3
y=9.00
(гілка-)
x=-2
y=3.00
Таке оформлення має задача, яка складається із двох умов і проти кожної умови записана одна дія. В таких задачах використовують повну форму розгалуження. Перевіряється тільки перша умова і якщо вона виконується, то в операторі IF (умова 1) біля службового слова THEN записується дія 1,а біля службового слова ELSE записується дія 2. Дана розгалужена програма має дві гілки. Для перевірки програми запускають її на виконання два рази, щоб перевірити правильність розрахунків по гілці + та -.
2. РОЗГАЛУЖЕНІ ПРОГРАМИ
ЗАДАЧА2. Знайти значення виразу:
Дано: любе число – х; дійсний
Знайти: значення виразу – y; дійсний
б) вивести y
2) якщо х=0, то вивести ‘не має змісту’
ІІІ. ПРОГРАМА
PROGRAM z2;
VAR x,y:real;
BEGIN
write(‘x=’);
readLN(x);
IF x<>0 THEN begin
y:=(2*x+1)/x;
writeln(‘y=’,y:4:2);end
ELSE writeln(‘HE MAE ZMICTY’);
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
(гілка+)
x=1
y=3.00
(гілка-)
x=0
Таке оформлення має задача, яка складається із двох умов: де проти першої умови записано дві дії, а проти другої умови тільки одна дія. В таких задачах використовують повну форму розгалуження. Перевіряється тільки перша умова і якщо вона виконується, то в операторі IF (умова 1) біля службового слова THEN записується дії обмежені словами BEGIN …END, а біля службового слова ELSE записується одна дія. Дана розгалужена програма має дві гілки. Для перевірки програми запускають її на виконання два рази, щоб перевірити правильність розрахунків по гілці + та -.
3. ЦИКЛІЧНІ ПРОГРАМИ (цикл WHILE…END)
ЗАДАЧА1. Знайти суму чисел 42+62+82+…+N2.
Дано: натуральне число – N; цілий
Знайти: суму чисел – S; дійсний
S0=0
S1=S0 +
S2=S1 + і = 4,N з кроком 2
…
SN=SN-1 +
S = S + i2
i = i + 2
S = 0
i = 4
iN - умова циклу
ІІ. БЛОК – СХЕМА
ІІІ. ПРОГРАМА
PROGRAM z1;
VAR N,i:integer;
S:real;
BEGIN
write(‘N=’);
readln(N);
S:=0;
i:=4;
WHILE і<=N DO begin
S:=S+і*і;
i:=i+2;
end;
WRITELN(‘S=‘,S:4:0);
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
N=8
S= 116
Таке оформлення має задача, яка записується за допомогою циклу поки, або як його називають цикл з передумовою. Цикл поки складається із трьох компонентів: тіла циклу, підготовки до циклу та умови. Послідовність цих компонентів слідуюча: підготовка до циклу , умова та тіло циклу. Перевіряється умова і якщо вона виконується, то виконуються команди тіла циклу, а якщо умова не виконується – то виходимо із циклу. Іншими словами: поки виконується умова - ідемо на тіло циклу. Для перевірки правильності виконання програми достатньо знайти суму трьох чисел.
4. ЦИКЛІЧНІ ПРОГРАМИ (цикл REPEAT…UNTIL)
ЗАДАЧА1. Знайти суму чисел 42+62+82+…+N2.
Дано: натуральне число – N; цілий
Знайти: суму чисел – S; дійсний
S0=0
S1=S0 +
S2=S1 + і = 4,N з кроком 2
…
SN=SN-1 +
S = S + i2
i = i + 2
S = 0
i = 4
i>N - умова циклу
ІІ. БЛОК – СХЕМА
ІІІ. ПРОГРАМА
PROGRAM z1;
VAR N,i:integer;
S:real;
BEGIN
write(‘N=’);
readln(N);
S:=0;
i:=4;
REPEAT
S:=S+і*і;
i:=i+2;
UNTIL і>N ;
WRITELN(‘S=‘,S:4:0);
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
N=8
S= 116
Таке оформлення має задача, яка записується за допомогою циклу до, або як його називають цикл з післяумовою. Цикл до складається із трьох компонентів: тіла циклу, підготовки до циклу та умови. Послідовність цих компонентів слідуюча: підготовка до циклу , тіло циклу та умова. Спочатку виконується тіло циклу, а потім перевіряється умова і якщо вона не виконується, то повертаємось на виконання команд тіла циклу, а якщо умова виконується – то виходимо із циклу. Іншими словами: до виконується умови ідемо на тіло циклу. Для перевірки правильності виконання програми достатньо знайти суму трьох чисел.
5. ЦИКЛІЧНІ ПРОГРАМИ (цикл FOR…NEXT (крок 1))
ЗАДАЧА1. Знайти суму чисел 10+11+12+…+N.
Дано: натуральне число – N; цілий
Знайти: суму чисел – S; дійсний
S0=0
S1=S0 +
S2=S1 + і = 10,N з кроком 1
…
SN=SN-1 +
S = S + і - тіло циклу
S = 0 - підготовка до циклу
і = 10,N
[1]
ІІ. БЛОК – СХЕМА
ІІІ. ПРОГРАМА
PROGRAM z1;
VAR N,i:integer;
S:real;
BEGIN
write(‘N=’);
readln(N);
S:=0;
For і:=10 to N do S:=S+і;
WRITELN(‘S=‘,S:4:0);
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
N=12
S= 33
Таке оформлення має задача, яка записується за допомогою циклу для, або як його називають цикл із параметром. Цикл для складається із трьох компонентів: тіла циклу, підготовки до циклу та зміни параметра. Послідовність цих компонентів слідуюча: підготовка до циклу , зміна параметра та тіло циклу. Після виконання тіла циклу параметр (і) збільшується автоматично на 1, вихід із циклу відбувається при і= N+1.
5. ЦИКЛІЧНІ ПРОГРАМИ (цикл FOR…NEXT (крок -1))
ЗАДАЧА2. Знайти суму чисел 10+9+8+…+1.
Дано: ------
Знайти: суму чисел – S; дійсний
S0=0
S1=S0 +
S2=S1 + і = 10,1 з кроком -1
…
SN=SN-1 +
S = S + і - тіло циклу
S = 0 - підготовка до циклу
і = 10,1
[-1]
ІІ. БЛОК – СХЕМА
ІІІ. ПРОГРАМА
PROGRAM z2;
VAR i:integer;
S:real;
BEGIN
S:=0;
For і:=10 downto 1 do S:=S+і;
WRITELN(‘S=‘,S:4:0);
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
S= 55
Таке оформлення має задача, яка записується за допомогою циклу для, або як його називають цикл із параметром. Цикл для складається із трьох компонентів: тіла циклу, підготовки до циклу та зміни параметра. Послідовність цих компонентів слідуюча: підготовка до циклу , зміна параметра та тіло циклу. Після виконання тіла циклу параметр (і) збільшується автоматично на -1, вихід із циклу відбувається при і= 0.
6. ОДНОВИМІРНИЙ МАСИВ
Задача 1. Збільшити всі елементи одновимірного масиву Х(N) в два рази.
І. ДОСЛІДЖЕННЯ
Дано: розмірність масиву – N; цілий
масив – X; дійсний
Знайти: масив – Х; дійсний
Розв’язання
1. Введення розмірності масиву.
2. Введення елементів масиву.
3. Заміна елементів масиву.
4. Виведення елементів масиву.
ІІ. БЛОК – СХЕМА
ІІІ. ПРОГРАМА
РROGRAM z1;
CONST N=5;
VAR і:integer;
X:array[1..N] of real;
BEGIN
for і:=1 to N do begin
write(‘X(‘,і,’)=’);
readln(X[i])
end;
for i:=1 to N do Х[i]:=X[i]*2;
for і:=1 to N do write(X[I]:4:2,’ ‘)
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
Х(1)= -2
Х(2)= 4
Х(3)= 6
Х(4)= -2.2
Х(5)= 1.5
-4.00 8.00 12.00 -4.40 3.00
Таке оформлення має задача, яка замінює всі елементи одновимірного масиву добутком самого елемента і числа 2. В цій задачі використовується структура циклу для. Задача має чотири пункти розв’язку, які перераховані в дослідженні і показані на блок-схемі.
Задача 2. Замінити всі додатні елементи одновимірного масиву їх порядковими номерами.
І. ДОСЛІДЖЕННЯ
Дано: розмірність масиву – N; цілий
масив – X; дійсний
Знайти: масив – X; дійсний
Розв’язання
1. Введення розмірності масиву.
2. Введення елементів масиву.
3. Заміна додатних елементів масиву.
4. Виведення елементів масиву.
ІІ. БЛОК – СХЕМА
ІІІ. ПРОГРАМА
РROGRAM z2;
CONST N=5;
VAR і:integer;
X:array[1..N] of real;
BEGIN
for і:=1 to N do begin
write(‘X(‘,і,’)=’);
readln(X[i])
end;
for i:=1 to N do begin
if X[i]>0 then X[i]:=і
end;
for i:=1 to N do write(X[i]:4:2,’ ‘)
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
Х(1)= -1
Х(2)= 2
Х(3)= -3
Х(4)= 8
Х(5)= 6
-1.00 2.00 -3.00 4.00 5.00
Таке оформлення має задача, яка замінює всі додатні елементи одновимірного масиву їх порядковими номерами. В цій задачі використовується структура циклу для. Задача має чотири пункти розв’язку, які перераховані в дослідженні і показані на блок-схемі. В третьому пункті розв’язку тілом циклу для, являється скорочена форма команди розгалуження, тому що замінюється елемент масиву лише тоді, коли він додатній.
Задача 3. Знайти середнє арифметичне від’ємних елементів одновимірного масиву.
І. ДОСЛІДЖЕННЯ
Дано: розмірність масиву – N; цілий
масив – X; дійсний
Знайти: середнє арифметичне від’ємних елементів – R; дійсний
Розв’язання
1. Введення розмірності масиву.
2. Введення елементів масиву.
3. Знаходження суми та кількості від’ємних елементів.
4. Знаходження середнього арифметичного від’ємних елементів.
5. Виведення середнього арифметичного від’ємних елементів.
ІІ. БЛОК – СХЕМА
ІІІ. ПРОГРАМА
РROGRAM z3;
CONST N=5;
VAR і,K:integer;
S,R:real;
X:array[1..N] of real;
BEGIN
for і:=1 to N do begin
write(‘X(‘,і,’)=’);
readln(X[i])
end;
S:=0;
K:=0;
for i:=1 to N do begin
if X[i]<0 then begin
S:=S+X[i];
K:=K+1
end;
end;
R:=S/K;
write(‘R=’,R:4:2)
END.
IV. ПРОТОКОЛ ВИКОНАННЯ ПРОГРАМИ
Х(1)= -1
Х(2)= 2
Х(3)= -3
Х(4)= 8
Х(5)= 6
R=-2.00
Таке оформлення має задача на знаходження середнього арифметичного від’ємних елементів одновимірного масиву. В цій задачі використовується структура циклу для. Задача має п’ять пунктів розв’язку, які перераховані в дослідженні і показані на блок-схемі. В третьому пункті розв’язку тілом циклу для, являється скорочена форма команди розгалуження, яка по гілці плюс має дві дії, тому що потрібно одночасно знаходити суму від’ємних елементів та їх кількість.
7. ДВОВИМІРНИЙ МАСИВ
Задача 1. Замінити всі елементи двовимірного масиву числом 7.
Дано: розмірність матриці – N,M; цілий
матриця – Х; дійсний
Знайти: матрицю – Х; дійсний
Розв’язання
III. Програма
PROGRAM z1;
CONST N=3;
M=2;
VAR i,j:integer;
X:array[1..N,1..M] of real;
BEGIN
FOR i:=1 TO N DO begin
FOR j:=1 TO M DO begin
WRITE(‘X(‘,i,’,’,j,’)=’);
READLN(X[i,j]);
end;
end;
FOR i:=1 TO N DO begin
FOR j:=1 TO M DO X[i,j]:=7;
end;
FOR i:=1 TO N DO begin
FOR j:=1 TO M DO WRITE(X[i,j]:4:2,’ ‘);
WRITELN(‘ ‘);
end;
END.
IV. Протокол виконання програми
Х(1,1) = -4
Х(1,2) = 2
Х(2,1) = 0
Х(2,2) = 5
Х(3,1) = 9
Х(3,2) = 0.5
7.00 7.00
7.00 7.00
7.00 7.00
Таке оформлення має задача, яка замінює всі елементи двовимірного масиву числом 7. В цій задачі використовується структура вкладені цикли. Задача має чотири пункти розв’язку, які перераховані в дослідженні і показані на блок-схемі.
Задача 2. Збільшити елементи із проміжку [2;10] сумою квадрата самого елемента і числа 3.
Дано: розмірність матриці – N,M; цілий
матриця – Х; дійсний
Знайти: матрицю – Х; дійсний
Розв’язання
1. Введення розмірності матриці.
III. Програма
PROGRAM z2;
CONST N=3;
M=2;
VAR i,j:integer;
X:array[1..N,1..M] of real;
BEGIN
FOR i:=1 TO N DO begin
FOR j:=1 TO M DO begin
WRITE(‘X(‘,i,’,’,j,’)=’);
READLN(X[i,j]);
end;
end;
FOR i:=1 TO N DO begin
FOR j:=1 TO M DO begin
IF ((X[i,j]>=2) and (X[i,j]<=10)) THEN X[i,j]:=sqr(X[i,j])+3;
еnd;
end;
FOR i:=1 TO N DO begin
FOR j:=1 TO M DO WRITE(X[i,j]:4:2,’ ‘);
WRITELN(‘ ‘);
end;
END.
IV. Протокол виконання програми
Х(1,1) = -4
Х(1,2) = 2
Х(2,1) = 0
Х(2,2) = 5
Х(3,1) = 9
Х(3,2) = 0.5
-4.00 7.00
0.00 28.00
84.00 0.50
Таке оформлення має задача, яка замінює всі елементи із даного проміжку двовимірного масиву сумою квадрата самого елемента і числа 3. В цій задачі використовується структура вкладені цикли. Задача має чотири пункти розв’язку, які перераховані в дослідженні і показані на блок-схемі. В третьому пункті тілом вкладеного циклу є скорочена форма розгалуження.
Задача 3. Знайти суму всіх елементів кожного рядка двовимірного масиву.
Дано: розмірність матриці – N,M; цілий
матриця – Х; дійсний
Знайти: суму всіх елементів кожного рядка – S; дійсний
Розв’язання
III. Програма
PROGRAM z3;
CONST N=2;
M=3;
VAR i,j:integer;
X:array[1..N,1..M] of real;
S:real;
BEGIN
FOR i:=1 TO N DO begin
FOR j:=1 TO M DO begin
WRITE(‘X(‘,i,’,’,j,’)=’);
READLN(X[i,j]);
end;
end;
FOR i:=1 TO N DO begin
S:=0;
FOR j:=1 TO M DO S:=S+X[i,j];
WRITELN(‘S’,i,’=’,S:4:2);
end;
END.
IV. Протокол виконання програми
Х(1,1) = -4
Х(1,2) = 2
Х(1,3) = 0
Х(2,1) = 5
Х(2,2) = 9
Х(2,3) = 0.5
S1=-2.00
S2=14.50
Таке оформлення має задача, яка знаходить суму елементів по рядках.. В цій задачі використовується структура вкладені цикли. Задача має три пункти розв’язку, які перераховані в дослідженні і показані на блок-схемі. В третьому пункті у вкладеному циклі знаходиться сума рядка і виводиться на екран потім робиться перехід на другий рядок і т. д..
8. КВАДРАТНА МАТРИЦЯ
Задача 1. Знайти добуток сум головної та бічної діагоналі.
Дано: розмірність матриці – N; цілий
матриця – Х; дійсний
Знайти: добуток сум головної та бічної діагоналі – S; дійсний
Розв’язання
III. Програма
PROGRAM z1;
CONST N=3;
VAR i,j:integer;
X:array[1..N,1..N] of real;
S,S1,S2:real;
BEGIN
FOR i:=1 TO N DO begin
FOR j:=1 TO N DO begin
WRITE(‘X(‘,i,’,’,j,’)=’);
READLN(X[i,j]);
end;
end;
S1:=0;
FOR i:=1 TO N DO S1:=S1+X[i,i];
S2:=0;
FOR i:=1 TO N DO begin
j:=N-i+1;
S1:=S1+X[i,j];
end;
S:=S1*S2;
WRITELN(‘S=’,S:4:2);
END.
IV. Протокол виконання програми
Х(1,1) =1
Х(1,2) = 0
Х(1,3) = 2
Х(2,1) = 0
Х(2,2) = 1
Х(2,3) = 0
Х(3,1) = 2
Х(3,2) = 0
Х(3,3) = 1
S=15.00
Таке оформлення має задача, яка знаходить добуток сум головної та бічної діагоналей. Задача має шість пунктів розв’язку, які перераховані в дослідженні і показані на блок-схемі.
Задача2. Знайти кількість додатних елементів, які знаходяться над головною
діагоналлю.
Дано: розмірність матриці – N; цілий
матриця – Х; дійсний
Знайти: кількість додатних елементів – k; дійсний
Розв’язання
III. Програма
PROGRAM z2;
CONST N=3;
VAR i,j,k:integer;
X:array[1..N,1..N] of real;
BEGIN
FOR i:=1 TO N DO begin
FOR j:=1 TO N DO begin
WRITE(‘X(‘,i,’,’,j,’)=’);
READLN(X[i,j]);
end;
end;
k:=0;
FOR i:=1 TO N DO begin
FOR j:=i TO N DO begin
IF X[i,j]>0 THEN k:=k+1;
end;
end;
WRITELN(‘k=’,k);
END.
IV. Протокол виконання програми
Х(1,1) =1
Х(1,2) = -4
Х(1,3) =- 2
Х(2,1) = 0
Х(2,2) = 1
Х(2,3) = 7
Х(3,1) = 2
Х(3,2) = 0
Х(3,3) = 1
k=4
Квадратна матриця має однакову кількість рядків та стовпців. Таке оформлення має задача, яка знаходить кількість додатних елементів, які знаходяться над головною діагоналлю. В цій задачі використовується структура вкладені цикли. Задача має чотири пункти розв’язку, які перераховані в дослідженні і показані на блок-схемі. В третьому пункті тілом вкладеного циклу є скорочена форма розгалуження.
9. ЛІТЕРНІ ВЕЛИЧИНИ
ЗАДАЧА1. Підрахувати кількість літер “о” у заданому слові.
Дано: слово – a; символьний
Знайти: кількість літер “о” – n; цілий
Розв’язання
ІІІ. Програма
PROGRAM z1;
VAR a:string;
i,n,k:integer;
BEGIN
write(‘a=’);
readLN(a);
k:=length(a);
n:=0;
FOR i:=1 TO k DO
IF a[i]=’o’ THEN n:=n+1;
writeLN(‘n=‘,n)
END.
IV. Протокол виконання програми
a=cool
n=2
Cьогодні комп’ютери застосовують для розв’язування не лише задач обчислювального характеру, а й задач опрацювання інформації, заданої у текстовому вигляді. Таке оформлення має задача, яка знаходить кількість літер “о” у слові, яке вводиться із клавіатури. Задача має чотири пункти розв’язку, які перераховані в дослідженні і показані на блок-схемі.
10. ПІДПРОГРАМИ - ФУНКЦІЇ
ЗАДАЧА1. Задано координати (x1,y1), (x2,y2), (x3,y3) вершин трикутника у площині. Обчислити периметр трикутника.
Дано: координати першої точки – x1,y1; дійсний
координати другої точки – x2,y2; дійсний
координати третьої точки – x3,y3; дійсний
Знайти: периметр трикутника – Р; дійсний
Розв’язання
ІІІ. Програма
PROGRAM z1;
VAR x1,y1,x2,y2,x3,y3,a,b,c,p:real;
Function TR(a1,b1,a2,b2:real):real;
Begin
d:=sqrt(sqr(a2-a1)+sqr(b2-b1))
end;
BEGIN
write(‘x1,y1=’);
readLN(x1,y1);
write(‘x2,y2=’);
readLN(x2,y2);
write(‘x3,y3=’);
readLN(x3,y3);
a:=TR(x1,y1,x2,y2);
b:=TR(x1,y1,x3,y3);
c:=TR(x2,y2,x3,y3);
p:=(a+в+c);
writeLN(‘P=’,P:4:2);
END.
IV. Протокол виконання програми
x1,y1=1 4
x2,y2=5 4
x3,y3=1 1
P=12.00
Підпрограми – функції використовують з метою спрощення головної програми, для звернення до групи команд, які часто використовуються в інших програмах чи іншими користувачами, якщо результатом є одне значення. Таким чином в даній задачі за допомогою функції TR ми знаходимо довжини трьох сторін a,b,c.
11. ПІДПРОГРАМИ - ПРОЦЕДУРИ
ЗАДАЧА1. Дано сторони a, b прямокутника. Обчислити периметр і площу прямокутника, використавши для цього процедуру.
Дано: сторони прямокутника – а,b; дійсний
Знайти: периметр прямокутника – Р; дійсний
площу прямокутника – S; дійсний
Розв’язання
ІІІ. Програма
PROGRAM z1;
VAR a,b,P,S:real;
Procedure tt;
Begin
P:=2*(a+b);
S:=a*b
end;
BEGIN
write(‘a,b=’);
readLN(a,b);
tt;
writeLN(‘P=’,P:4:2,’ S=’,S:4:2)
END.
IV. Протокол виконання програми
a,b=2 4
P=12.00 S=8.00
Підпрограми – процедури використовують з метою спрощення головної програми. Концепція структурного програмування полягає в тому, що будь-яку складну чи громіздку задачу потрібно звести до послідовності простіших підзадач, записати підпрограми для їхнього розв'язування і створити головну програму, яка має складатися з викликів цих підпрограм. В даній програмі a,b,P,S – глобальні змінні. Починає виконуватися розділ команд головної програми (а не процедура, хоча вона записана вище). Користувач вводить дані з клавіатури, натискає на клавішу вводу і лише тоді виконується команда tt – керування передається процедурі, де обчислюється периметр і площа. Коли процедура виконана, керування передається наступній команді головної програми, яка виводить результати на екран.