Алгоритмические языки: использование множеств

Тип работы:
Лабораторная работа
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

ЛАБОРАТОРНАЯ РАБОТА

по дисциплине «Основы программирования»

на тему

Алгоритмические языки: использование множеств

Цель работы: получение навыков работы с множествами.

Постановка задачи:

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.

ПоказатьСвернуть
Заполнить форму текущей работой