Алгоритмические языки: использование множеств
Алгоритмические языки: использование множеств
ЛАБОРАТОРНАЯ РАБОТА по дисциплине “Основы программирования” на тему Алгоритмические языки: использование множеств Цель работы: получение навыков работы с множествами. Постановка задачи: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.
|