Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2010, 09:30   #1
sproject
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 11
По умолчанию как переделать программку с операциями над множествами!

Задача: выполнить операции над множествами(объединение, пересечениеделение и т.д) Дано два авторынка на которых встречаются одинаковые марки машин и разные! Суть в том, что надо выполнить эти операции над этими авторынками!

Я сделал эти операции с числами, а с названиями машин не получается!

program dm1;
uses crt;
const
Nmax = 100;
Nmax2 = 200;
type
m = array[1..Nmax] of integer;
var
a: m;
b: m;
n1, n2, i, j, t : integer;

procedure prc(mas1, mas2: m);
var
itog : array [1..Nmax2] of integer;
begin
t := 0;
for i := 1 to n1 do
begin
for j := 1 to n2 do
begin
if (a[i] = b[j]) then
begin
t := t + 1;
itog[t] := a[i];
end;
end;
end;
writeln('Perecechenie mnojestv:');
for i := 1 to t do
begin
writeln(itog[i]);
end;
end;

procedure obd(mas1, mas2: m);
var
itog : array [1..Nmax2] of integer;
begin
for i := 1 to n1 do
begin
itog[i] := a[i];
end;
for i := n1+1 to n1+n2 do
begin
itog[i] := b[i-n1];
end;
for i := 1 to n1+n2 do
begin
for j := 1 to n1+n2 do
begin
if (itog[i] = itog[j]) and (i<>j) then
begin
itog[j] := 20034;
end;
end;
end;
for i := 1 to n1+n2 do
begin
if (itog[i]<>20034) then writeln(itog[i]);
end;
end;

procedure raz(mas1, mas2: m);
var
itog : array [1..Nmax2] of integer;
begin
for i := 1 to n1 do
begin
for j := 1 to n2 do
begin
if (mas1[i] = mas2[j]) then mas1[i] := 20034;
end;
end;
for i := 1 to n1 do
begin
if (mas1[i] <> 20034) then writeln(mas1[i]);
end;
end;

begin
clrscr;
writeln('Vvedite kol-vo elementov pervogo massiva');
readln(n1);
writeln('Vvedite kol-vo elementov vtorogo massiva');
readln(n2);
writeln('Vvedite elementi pervogo massiva');
for i := 1 to n1 do
begin
readln(a[i]);
end;
writeln('Vvedite elementi vtorogo massiva');
for i := 1 to n2 do
begin
readln(b[i]);
end;
prc(a, B);
readln;
writeln('Obedinenie mnojestv');
obd(a, B);
readln;
writeln('Raznost a/b');
raz(a,B);
readln;
End.
sproject вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРоблемы с булевыми операциями vavisv Помощь студентам 0 01.03.2010 23:12
Операции над множествами britva666 Помощь студентам 2 23.06.2009 20:33
помогите переделать программку ... hen Общие вопросы C/C++ 14 07.04.2009 21:12
помогите переделать программку автокликер.. sanek_sa Общие вопросы по Java, Java SE, Kotlin 5 29.11.2008 02:38