- •Лабораторна робота № 1 (4 год.).
- •3. Приклади роботи з вказівниками.
- •4. Незв’язані динамічні дані.
- •Блок-схема програми
- •Текст програми на Паскалі
- •Результати роботи програми.
- •Таблиця 1
- •Лабораторна робота № 2 (4 год.).
- •Блок-схема програми
- •Текст програми на Паскалі
- •Результати роботи програми.
- •Таблиця 2
- •Лабораторна робота № 3 (6 год.).
- •Блок-схема програми
- •Текст програми на Паскалі
- •Результати роботи програми.
- •Таблиця 3
- •Лабораторна робота № 4 (6 год.).
- •Блок-схема програми
- •Текст програми на Паскалі
- •Результати роботи програми.
- •Таблиця 4
- •Лабораторна робота № 5 (6 год).
- •Таблиця 5
- •Лабораторна робота № 6 (4 год).
- •Таблиця 6
Лабораторна робота № 4 (6 год.).
Тема роботи: обробка масивів вказівників.
Мета роботи: Оволодіння навичками створення статичних масивів вказівників на записи заданої структури.
Постановка задачі: Створити типізований файл записів заданої структури. Використовуючи динамічні змінні, створені за допомогою масиву вказівників, виконати обробку інформації файлу. Звільнити пам’ять.
Методичні вказівки до роботи:
Створити типізований файл записів заданої структури з випадковими даними.
Вивести вміст файлу.
Створити статичний масив вказівників на записи заданої структури.
Створити динамічні змінні – записи.
Ввести інформацію з файлу до динамічних змінних.
Виконати аналіз полів динамічних змінних відповідно до завдання.
Вивести результати аналізу.
Звільнити память.
Вивести інформацію про завдання ( варіант, текст завдання ).
Вивести інформацію про виконавця роботи (прізвище, ініціали, група).
Завдання до роботи вибрати згідно з варіантом з Таблиці 4.
Зміст звіту:
1) Задача для конкретного варіанту.
2) Блок-схема програми.
3) Текст програми на Паскалі.
4) Результати роботи програми.
5) Висновок до роботи.
Приклад: Вивести суми полів тих записів, обидва поля яких від'ємні. Кількість елементтів файлу i масиву - 8, cтруктура записів - REAL, REAL.
Блок-схема програми
Текст програми на Паскалі
program LAB_4;
uses crt;
Type Zapis = record
Field1: real;
Field2: real;
End;
var
mZapis: array[1..8] of ^Zapis;
VarZapis: ^Zapis;
F: file of Zapis;
NameFile: string[8];
sum: real;
Range, i, Kol: integer;
begin
Range:=20000;
ClrScr;
WriteLn;
Write('Введiть iм''я файлу (до 8 символiв): ');
ReadLn(NameFile);
if Length(NameFile) = 0 then halt;
assign(F, NameFile+'.TXT');
rewrite(F);
Randomize;
for i := 1 to 8 do
begin
VarZapis^.Field1:= (Random(Range) - Range/2)/100;
VarZapis^.Field2:= (Random(Range) - Range/2)/100;
write(F,VarZapis^);
end;
Close(F);
WriteLn;
WriteLn('Типiзований файл створено. Hажмiть клавiшу.');
readkey;
ClrScr;
WriteLn;
WriteLn('Вмiст файлу :');
WriteLn;
assign(F, NameFile+'.TXT');
Reset(F);
for i := 1 to 8 do
begin
New( mZapis[i] );
Read(F, mZapis[i]^);
WriteLn('m[',i:1,'].Field1= ',mzapis[i]^.Field1:7:2,' m[',i:1,'].Field2= ',mZapis[i]^.Field2:7:2 );
end;
Close(F);
WriteLn;
WriteLn('Результати обробки масиву :');
WriteLn;
Kol:=0;
for i := 1 to 8 do
if (mZapis[i]^.Field1 < 0) and (mZapis[i]^.Field2 < 0) then
begin
Kol:=Kol+1;
sum:=mZapis[i]^.Field1+mZapis[i]^.Field2;
WriteLn('m[',i:1,'].Field1= ',mzapis[i]^.Field1:7:2,
' m[',i:2,'].Field2= ',mZapis[i]^.Field2:7:2,' Сума= ',sum:8:2 );
end;
if Kol = 0 then WriteLn('Записiв з обома вiд''ємнимi полями HЕМАЄ !');
for i := 1 to 8 do Dispose(mZapis[i]);
WriteLn;
WriteLn('Лабораторна робота N4.');
WriteLn('Завдання 8. Вивести суми полiв тих записiв,');
WriteLn('обидва поля яких вiд''ємнi.');
WriteLn;
WriteLn('Виконав студент Чемерис С., група ЗКТ-301');
readkey;
end.