ЛАБОРАТОРНА РОБОТА
з дисципліни "Основи програмування"
на тему
Алгоритмічні мови: використання множин
Мета роботи: отримання навичок роботи з множинами.
Постановка завдання:
1. Вивчити способи опису і використання множин.
2. Розробити алгоритм та програму для вирішення завдання відповідного варіанту.
Завдання до роботи:
1. Знайти в послідовності цілих чисел такі, які зустрічаються в ній рівно два рази.
2. Набрати програму, налагодити її, протестувати. Роздрукувати текст програми та результати її роботи на тестових даних.
3. Підібрати набори тестових даних.
Хід виконання роботи
Блок-схема:
Малюнок 1. Блок-схема програми.
-
+
Малюнок 2. Блок-схема елемента Code програми.
-
+
-
+
Малюнок 3. Блок-схема елемента Code2 програми.
Текст програми:
Program lab;
Uses crt;
Type
bin = byte;
maxlen = byte;
Const
max = 100;
max_bin = 255;
Var
a: array [1 .. max] of bin;
len: maxlen;
Procedure Vvod (Var a: array of bin; Var len: maxlen);
Var
x: maxlen;
begin
Write ('Введіть довжину послідовності:');
Readln (len);
Writeln ('Введіть елементи послідовності:');
for x: = 1 to len do
Begin
Write ('a [', x ,']=');
Readln (a [x]);
End;
End;
Procedure Code (a: array of bin; len: maxlen);
Var
x: maxlen;
b: array [1 .. max_bin] of byte;
Begin
for x: = 1 to max_bin do b [x]: = 0;
for x: = 1 to len do inc (b [a [x]]);
for x: = 1 to max_bin do if b [x] = 2 then
Begin
Writeln ('Кількість', x, 'повторюється рівно два рази');
End;
End;
Procedure Code2 (a: array of bin; len: maxlen);
Var
b, c: set of bin;
x, y: maxlen;
k: byte;
Begin
y: = 1;
b :=[];
c :=[];
for x: = 1 to len do b: = b + [a [x]];
for y: = 1 to len do
Begin
x: = 0;
k: = 0;
Repeat
Begin
inc (x);
if (a [x] in b) and (a [x] = a [y]) then inc (k);
End;
Until (x = len) or (k> 2);
if k = 2 then c: = c + [a [y]];
End;
for x: = 1 to max_bin do if x in c then
Begin
Writeln ('Кількість', x, 'повторюється рівно два рази');
End;
End;
Clrscr;
Begin
Vvod (a, len);
Writeln ('Перший алгоритм:');
Code (a, len);
Writeln ('Другий алгоритм:');
Code2 (a, len);
End.
Результати роботи програми.
1) Введені дані:
a [1] = 1; a [2] = 2; a [3] = 3; a [4] = 8; a [5] = 10; a [6] = 25; a [7] = 44; a [8] = 2; a [9] = 9; a [10] = 33;
Результати роботи програми
Перший алгоритм:
Числа повторювані рівно два рази: 2;
Другий алгоритм:
Числа повторювані рівно два рази: 2;
Малюнок 4. Результати тесту № 1.
2) Введені дані:
a [1] = 1; a [2] = 1; a [3] = 2; a [4] = 2; a [5] = 3; a [6] = 3; a [7] = 4; a [8] = 4;
Результати роботи програми
Перший алгоритм:
Числа, що повторюються рівно два рази: 1, 2, 3, 4;
Другий алгоритм:
Числа, що повторюються рівно два рази: 1, 2, 3, 4;
Малюнок 5. Результати тесту № 2.