You are on page 1of 7

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

Кафедра САПР

Звіт
До лабораторних робіт №8-9

«Процедури та функції в алгоритмічній мові


Паскаль.
Поняття рекурсії»

Виконав:
Студент групи КН-14
Дикий Н.В.
Перевірив:
Доцент Марікуца У.Б.

Львів-2015
1.Мета
Ознайомитись з особливостями застосування підпрограм в алгоритмічній мові Паскаль. Вивчити особливості
застосування різних видів параметрів процедур, глобальних та локальних змінних. Набути практичних навичок
програмування з використанням процедур. Ознайомитись з особливостями застосування підпрограм-функцій в
алгоритмічній мові Паскаль. Вивчити рекурсивні функції та правила їх застосування. Набути практичних
навичок програмування з використанням функцій.

2.Теоретичні відомості
Дуже часто виникає потреба, коли одна й та сама послідовність дій повинна виконуватись на різних
етапах обробки інформації. В алгоритмах такого роду в різних місцях зустрічаються фрагменти, які однакові за
діями, що виконуються, але відрізняються лише значеннями початкових даних.

Для ефективнішого програмування введено поняття підпрограма. Група операторів, які будуть
повторюватись, оформляється у вигляді самостійної програмної одиниці – підпрограми, записуються один раз,
а у відповідних місцях основної програми забезпечується лише звертання до неї.
Використання апарата підпрограм дає змогу скоротити об’єм і покращити структуру програми з точки зору
наочності та зручності читання, зменшити ймовірність помилок і полегшити відлагодження програми. Розділення
програми на взаємозв’язані, але замкнуті та логічно завершені компоненти дає можливість розроблювати окремі
підпрограми різними програмістами та більш-менш незалежно один від одного. Крім того, підпрограму можна
розглядати як самостійний модуль (зі своїми вхідними та вихідними даними), що дає змогу використовувати її в
загальному ієрархічному підході під час конструювання алгоритму та програми за принципами низхідного
проектування.
Мовою Паскаль підпрограми реалізуються у вигляді процедур і функцій, які вводяться в основну
програму за допомогою свого опису.

На відміну від загальноматематичного поняття функції, в алгоритмічних мовах розглядаються лише ті


функції, для яких можна задати алгоритм визначення їхніх значень.
У мові програмування Паскаль допускаються лише ті функції, які дають результат простого типу. Це
пояснюється тим, що результат повертається з функції в головну програму через ім’я функції, тому може бути
єдиним і простим значенням.
3. Індивідуальне завдання
Обчислити матрицю P=X+YZ, де матриці: X(3,4), Y(4,2), Z(4,4). Алгоритм перемноження матриць та їхнє
підсумовування подати підпрограмами MATR_D та MATR_S.

4.Блок-схема до програми
5.Текст програми мовою Паскаль
Код до 8 лабораторної
program lab8;

type

matrix=array[1..2,1..4]of integer;

matrix1=array[1..4,1..4]of integer;

var

i,j,k:integer;

Y,X,P,A:matrix;

Z:matrix1;

procedure multiplication(P,X,A,Y:matrix; Z:matrix1; var i,j,k:integer);

begin

writeln('Введіть елемент першої матриці');

for i:=1 to 2 do

for j:=1 to 4 do

begin

readln(Y[i,j]);

end;

writeln('Введіть елемент другої матриці');

for i:=1 to 4 do

for j:=1 to 4 do

begin

readln(Z[i,j]);

end;

for i:=1 to 2 do

for j:=1 to 4 do

for k:=1 to 4 do

A[i,j]:=A[i,j]+Y[i,k]*Z[k,j];
writeln('Введіть елемент третьої матриці');

for i:=1 to 2 do

for j:=1 to 4 do

begin

readln(X[i,j]);

end;

for i:=1 to 2 do

for j:=1 to 4 do

P[i,j]:=X[i,j]+A[i,j];

for i:=1 to 2 do

begin

writeln();

for j:=1 to 4 do

write(P[i,j],' ')

end;

end;

begin

multiplication(P,X,A,Y,Z,i,j,k);

end.

Код до 9 лабораторної
program lab9;

type

matrix=array[1..2,1..4]of integer;

matrix1=array[1..4,1..4]of integer;

var

i,j,k:integer;

Y,X,P,A:matrix;

Z:matrix1;
function Pu(Z:matrix1; X,Y:matrix; var i,j,k:integer): integer;

begin

for i:=1 to 2 do

for j:=1 to 4 do

for k:=1 to 4 do

A[i,j]:=A[i,j]+Y[i,k]*Z[k,j];

for i:=1 to 2 do

for j:=1 to 4 do

P[i,j]:=X[i,j]+A[i,j];

end;

begin

writeln('Введіть елемент першої матриці');

for i:=1 to 2 do

for j:=1 to 4 do

begin

readln(Y[i,j]);

end;

writeln('Введіть елемент другої матриці');

for i:=1 to 4 do

for j:=1 to 4 do
begin

readln(Z[i,j]);

end;

writeln('Введіть елемент третьої матриці');

for i:=1 to 2 do

for j:=1 to 4 do

begin

readln(X[i,j]);

end;

Pu(Z,X,Y,i,j,k);

for i:=1 to 2 do

begin

writeln();

for j:=1 to 4 do

write(P[i,j],' ')

end;

end.

6.Результати обчислення за програмою


Якщо у коді до 8 лабораторної роботи всюди вводити 2, то отримаємо такі результати:

Якщо у коді до 9 лабораторної роботи всюди вводити 1, то отримаємо такі результати:


7. Аналіз результатів, висновки
Я ознайомився з особливостями застосування підпрограм в алгоритмічній мові Паскаль,
вивчив особливості застосування різних видів параметрів процедур, глобальних та
локальних змінних, набув практичних навичок програмування з використанням процедур,
ознайомився з особливостями застосування підпрограм-функцій в алгоритмічній мові
Паскаль, вивчив рекурсивні функції та правила їх застосування, набув практичних навичок
програмування з використанням функцій.

You might also like