на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Алгоритмические языки: использование множеств

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

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

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

на тему

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

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

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

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.



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.