
- •Лабораторна робота № 1 (4 год.).
- •3. Приклади роботи з вказівниками.
- •4. Незв’язані динамічні дані.
- •Блок-схема програми
- •Текст програми на Паскалі
- •Результати роботи програми.
- •Таблиця 1
- •Лабораторна робота № 2 (4 год.).
- •Блок-схема програми
- •Текст програми на Паскалі
- •Результати роботи програми.
- •Таблиця 2
- •Лабораторна робота № 3 (6 год.).
- •Блок-схема програми
- •Текст програми на Паскалі
- •Результати роботи програми.
- •Таблиця 3
- •Лабораторна робота № 4 (6 год.).
- •Блок-схема програми
- •Текст програми на Паскалі
- •Результати роботи програми.
- •Таблиця 4
- •Лабораторна робота № 5 (6 год).
- •Таблиця 5
- •Лабораторна робота № 6 (4 год).
- •Таблиця 6
Лабораторна робота № 2 (4 год.).
Тема роботи: Створення динамічних масивів.
Мета роботи: Оволодіння навичками створення і використання динамічних масивів з елементами типу запис.
Теоретичні відомості: Одномірні масиви записів є складеними неоднорідними структурами. Інша назва таких структур – таблиці даних, яка більш точно відображає їх суть.
Описуються такі структури в декілька способів, в залежності до того, динамічність якої компоненти виділяємо. Відповідно до цього змінюється і спосіб звернення до динамічної змінної.
Приклад 1:
type rec=record
b1:T1;
b2:T2
end;
mas=array[1..n] of rec;
var a:^mas;
begin
new(a);
for i:=1 to n do
begin
readln(a^[i].b1);
readln(a^[i].b2)
end;
…
dispose(a);
end.
Приклад 2:
type rec=record
b1:T1;
b2:T2
end;
var a:array[1..n] of ^rec;
begin
for i:=1 to n do
begin
new(a[i]);
read(a[i]^.b1);
readln(a[i]^.b2);
end;
…
for i:=1 to n do begin
write(a[i]^.b1)
writeln(a[i]^.b2));
dispose(a[i])
end;
…
end.
Постановка задачі: Створити динамічний масив з записами вказаної структури відповідно до варіанту. Виконати задані дії. Вивести динамічну змінну і результати її обробки. Звільнити пам’ять.
Методичні вказівки до роботи:
Створити динамічну змінну – одновимірний масив записів.
При створенні змінної врахувати властивості базового типу відповідно до завдання (наявність від’ємних елементів, діапазон можливих значень).
Забезпечити введення першого поля, як випадкового даного, друге поле записів ввести з клавіатури.
Вивести вміст усіх записів масиву.
Виконати обробку записів масиву відповідно до варіанту.
Вивести результати обробки масиву записів.
Вивести інформацію про виконавця роботи (прізвище, ініціали, група, варіант).
Завдання до роботи вибрати згідно з варіантом з Таблиці 2
2. Зміст звіту:
1) Задача для конкретного варіанту.
2) Блок-схема програми.
3) Текст програми на Паскалі.
4) Результати роботи програми.
5) Висновок до роботи.
Приклад: Вивести номери записів, що мають додатню р1зницю пол1в.. Кількість елементів - 14, Структура записів - REAL, INTEGER.
Блок-схема програми
Текст програми на Паскалі
program LAB_2;
uses crt;
const col=14;
Type zapis = record
Field1: Integer;
Field2: real;
End;
type mass=array[1..col] of zapis;
var pMass: ^mass;
i,k :integer;
r :real;
range: word;
begin
range:=2700;
ClrScr;
Randomize;
New( pMass );
WriteLn;
WriteLn('Введiть значення поля REAL:');
for i := 1 to col do
begin
k:= Random(range);
pMass^[i].Field1 := k-Random(range);
Write('Запис ',i:2,'= ');
ReadLn(pMass^[i].Field2);
end;
ClrScr;
WriteLn('Створений масив:');
for i := 1 to col do
begin
Write('Запис ',i:2,': INTEGER= ',pMass^[i].Field1:6,' REAL= ',pMass^[i].Field2:8:2);
WriteLn;
end;
WriteLn;
WriteLn('Hомери записiв, що мають додатню рiзницю полiв:');
for i := 1 to col do
if pMass^[i].Field1 - pMass^[i].Field2 >0 then
Write(i:2,',');
WriteLn;
Dispose(pMass);
WriteLn;
WriteLn('Лабораторна робота N2.');
WriteLn('Завдання 8. Вивести номери записiв,');
WriteLn('що мають додатню рiзницю полiв.');
WriteLn;
WriteLn('Виконав студент Чемерис С. група ЗКТ-301');
readkey;
end.