Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська Політехніка»
Кафедра
Інформаційних
систем та мереж
Лабораторна робота №1
на тему
Моделювання представлення в пам`яті
векторів і таблиць.
Львів – 2008
Мета роботи: набуття навичок розміщення в памяті векторів і таблиць.
Завдання:
Розробити спосіб економного зберігання в пам`яті розріджених матриць (таблиць). Розробити процедури і функції для забезпечення доступу (читання-запис) до елементів матриці. В контрольному прикладі забезпечити читання і запис всіх елементів матриці. Оцінити час виконання операцій.
Індивідуальні завдання:
9
Всі елементи парних стовпчиків - нульові
Текст програми:
program Matrix;
uses Crt;
const mx=5;
my=10;
var ch: char;
m: array [1..mx,1..my] of integer;
x,y: integer;
procedure Menu;
begin
WriteLn;
WriteLn(' [1] - enter matrix');
WriteLn(' [2] - write matrix');
WriteLn(' [F1] - about');
WriteLn(' [Esc] - Exit');
end;
procedure About;
begin
ClrScr;
WriteLn;
WriteLn(' Algorithms and structures of data');
WriteLn(' Laboratory work №1');
WriteLn(' Variant - 9');
WriteLn(' Author: Taras Gudyma');
WriteLn(' Group CS-27');
WriteLn;
WriteLn('Press any key to back...');
ReadKey;
end;
procedure ReadMatrix;
begin
ClrScr;
WriteLn('Enter elements of matrix');
For x:=1 to mx*2 do
For y:=1 to my do
If (x mod 2=0) then
Begin
GoToXY(x*4,y*2+1);
Write('0');
end else
Begin
GoToXY(x*4,y*2+1);
If (x div 2>mx) or (y>my) then HALT;
Read(m[x div 2+1,y]);
end;
WriteLn(#10#13);
WriteLn('Press any key to back...');
ReadKey;
end;
procedure WriteMatrix;
begin
ClrScr;
WriteLn('Writing matrix...');
For x:=1 to mx*2 do
For y:=1 to my do
If x mod 2=0 then
Begin
GoToXY(x*4,y*2+1);
Write('0');
end else
Begin
GoToXY(x*4,y*2+1);
If (x div 2>mx) or (y>my) then HALT;
Write(m[x div 2+1,y]);
end;
WriteLn(#10#13);
WriteLn('Press any key to back...');
ReadKey;
end;
Begin
For x:=1 to mx do
For y:=1 to my do m[x,y]:=1;
repeat
ClrScr;
Menu;
ch:=ReadKey;
case ch of
#49: ReadMatrix;
#50: WriteMatrix;
#59: About;
end;
until ch=#27;
end.
Висновки: Я навчився оптимізувати пам'ять при заданні певних особливостей матриці. Даний спосіб запису матриці використовує вдвічі меншу кількість пам`яті для зберігання даних, але ним можна користуватись лише для збереження матриць з цією особливістю, також виконання процедур для обробки даних потребує більше часу.