Помогите доделать и переделать задачу!

  • Автор темы sproject
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

sproject

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

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

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код:</div></div><div class="sp-body"><div class="sp-content">
Код:
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.
 
09.11.2009
665
1
#2
Вместо integer напишы string[20] и все компилится(правильность алгноритма не проверял)
mas1 <> 20034 запишите так mas1 <> '20034'
ну и остольные числа тоже
 
Статус
Закрыто для дальнейших ответов.