МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра «Захисту інформації»
Звіт
про виконання лабораторної роботи №3
РОБОТА З МАСИВАМИ.
ВИКОРИСТАННЯ ПРОЦЕДУР ТА ФУНКЦІЙ
Мета роботи - вивчити синтаксис опису і використання в програмах змінних типу масив, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосовувати у програмах процедури і функції для виконання логічно закінчених алгоритмів.
ЗАВДАННЯ
1. Домашня пiдготовка до роботи
1. Вивчити правила опису та використання змінних-масивів в програмах, написаних алгоритмічною мовою Турбо-Паскаль.
2. Вивчити правила опису та виклику процедур і функцій в програмах, написаних алгоритмічною мовою Турбо-Паскаль.
3. Вивчити основні алгоритми сортування масивів.
4. Написати програму алгоритмічною мовою Турбо-Паскаль згідно з завданням, отриманим від викладача за табл.1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування оформити у вигляді процедури; обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
Таблиця 1
№ п/п
Алгоритм впорядкування матриці
Алгоритм для розрахунку fi(aij) та F(fi(aij))
Матриця
17
Впорядкувати елементи стовпців матриці за зростанням їх значень методом обміну
fi(aij) - середнє геометричне значення елементів у кожному рядку матриці;
F(fi(aij)) - середнє арифметичне значення fi(aij)
66 21 -3 -1 90
1 74 -2 80 -1
10 30 20 -50 91
2 4 5 81 0
33 69 -5 51 24
2. Робота в лабораторiї
1. Ввести в комп'ютер програму, написану мовою Турбо-Паскаль згідно з отриманим завданням.
2. Відлагодити введену програму, виправивши виявлені компілятором помилки.
3. Виконати програму. Остаточний текст відлагодженої програми та отримані результати занести в звіт по лабораторній роботі.
СПИСОК ІДЕНТИФІКАТОРІВ ЗМІННИХ:
N – кількість рядків і стовпчиків матриці;
I, J, Z, X, B, S – проміжні змінні;
SORT_ARRAY – процедура сортування матриці;
SER_HEOM – функція, що обчислює середнє геометричне;
SER_AR – функція, що обчислює середнє арифметичне.
БЛОК-СХЕМА
ТЕКСТ ПРОГРАМИ
PROGRAM LAB3;
USES CRT;
CONST N=5;
TYPE MATRIX=ARRAY[1..N,1..N] OF INTEGER;
VAR A:MATRIX;
I,J,Z:INTEGER;
PROCEDURE SORT_ARRAY;
VAR X:INTEGER;
Z:INTEGER;
BEGIN
FOR Z:=1 TO N-1 DO
BEGIN
FOR J:=1 TO N DO
FOR I:=N DOWNTO 2 DO
BEGIN
IF A[I,J]<A[I-1,J] THEN
BEGIN
X:=A[I-1,J];
A[I-1,J]:=A[I,J];
A[I,J]:=X
END END END END;
FUNCTION SER_HEOM(I:INTEGER):REAL;
VAR B:REAL;
BEGIN
B:=1;
FOR J:=1 TO N DO
B:=B*A[I,J];
IF B>0 THEN B:=EXP(1/N*LN(B));
IF B<0 THEN B:=-EXP(1/N*LN(-B));
SER_HEOM:=B
END;
FUNCTION SER_AR:REAL;
VAR S:REAL;
BEGIN
S:=0;
FOR I:=1 TO N DO
S:=S+SER_HEOM(I);
SER_AR:=S/N
END;
BEGIN
CLRSCR;
WRITELN('VVEDIT6 ELEMENTY MATRYTSI:');
FOR I:=1 TO N DO
FOR J:=1 TO N DO
BEGIN
WRITE('A[',I,J,']=');
READ(A[I,J]);
IF J=N THEN WRITELN;
END;
SORT_ARRAY;
WRITELN('VIDSORTOVANA MATRYTSYA:');
FOR I:=1 TO N DO
FOR J:=1 TO N DO
BEGIN
WRITE(A[I,J]:4);
IF J=N THEN WRITELN
END;
FOR I:=1 TO N DO
WRITELN('SEREDNYE HEOMETRYCHNE=',SER_HEOM(I):3:3);
WRITELN;
WRITE('SEREDNYE ARYFMETYCHNE=',SER_AR:3:3);
END.
РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ:
VIDSORTOVANA MATRYTSYA:
1 4 -5 -50 -1
2 21 -3 -1 0
10 30 -2 51 24
33 69 5 80 90
66 74 20 81 91
SEREDNYE HEOMETRYCHNE=-3.981
SEREDNYE HEOMETRYCHNE=0.000
SEREDNYE HEOMETRYCHNE=-14.900
SEREDNYE HEOMETRYCHNE=38.259
SEREDNYE HEOMETRYCHNE=59.084
SEREDNYE ARYFMETYCHNE=15.692
Висновок: на цій лабораторній роботі я вивчив синтаксис опису і використання в програмах змінних типу масив, навчився використовувати масиви для оброблення матриць, вивчив основні алгоритми сортування масивів; навчився описувати та застосовувати у програмах процедури і функції для виконання логічно закінчених алгоритмів.