Professional Documents
Culture Documents
звіт лаба 8+9 рекурсія
звіт лаба 8+9 рекурсія
Кафедра САПР
Звіт
До лабораторних робіт №8-9
Виконав:
Студент групи КН-14
Дикий Н.В.
Перевірив:
Доцент Марікуца У.Б.
Львів-2015
1.Мета
Ознайомитись з особливостями застосування підпрограм в алгоритмічній мові Паскаль. Вивчити особливості
застосування різних видів параметрів процедур, глобальних та локальних змінних. Набути практичних навичок
програмування з використанням процедур. Ознайомитись з особливостями застосування підпрограм-функцій в
алгоритмічній мові Паскаль. Вивчити рекурсивні функції та правила їх застосування. Набути практичних
навичок програмування з використанням функцій.
2.Теоретичні відомості
Дуже часто виникає потреба, коли одна й та сама послідовність дій повинна виконуватись на різних
етапах обробки інформації. В алгоритмах такого роду в різних місцях зустрічаються фрагменти, які однакові за
діями, що виконуються, але відрізняються лише значеннями початкових даних.
Для ефективнішого програмування введено поняття підпрограма. Група операторів, які будуть
повторюватись, оформляється у вигляді самостійної програмної одиниці – підпрограми, записуються один раз,
а у відповідних місцях основної програми забезпечується лише звертання до неї.
Використання апарата підпрограм дає змогу скоротити об’єм і покращити структуру програми з точки зору
наочності та зручності читання, зменшити ймовірність помилок і полегшити відлагодження програми. Розділення
програми на взаємозв’язані, але замкнуті та логічно завершені компоненти дає можливість розроблювати окремі
підпрограми різними програмістами та більш-менш незалежно один від одного. Крім того, підпрограму можна
розглядати як самостійний модуль (зі своїми вхідними та вихідними даними), що дає змогу використовувати її в
загальному ієрархічному підході під час конструювання алгоритму та програми за принципами низхідного
проектування.
Мовою Паскаль підпрограми реалізуються у вигляді процедур і функцій, які вводяться в основну
програму за допомогою свого опису.
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;
begin
for i:=1 to 2 do
for j:=1 to 4 do
begin
readln(Y[i,j]);
end;
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
for i:=1 to 2 do
for j:=1 to 4 do
begin
readln(Y[i,j]);
end;
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
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.