Контрольная работа по предмету "Информатика, программирование"


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

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


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


на тему


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



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


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


1. Изучить способы описания и использования множеств.


2. Разработать алгоритм и составить программу для решения задачи соответствующего варианта.


Задание к работе:


1. Найти в последовательности целых чисел такие, которые встречаются в ней ровно два раза.


2. Набрать программу, отладить ее, протестировать. Распечатать текст программы и результаты ее работы на тестовых данных.


3. Подобрать наборы тестовых данных.



Ход выполнения работы


Блок-схема:
















Рисунок 1. Блок-схема программы.

















-




+










Рисунок 2. Блок-схема элемента Code программы.





-


+


-




+














c:=c+[a[y]]



Рисунок 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.



Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :