Заданы два множесва точек(каждая с координатами(х,у)), найти пересечение и разность этих множетсв.
program mnozh_tochek; uses crt; const an = 5; bn = 3; var A, C: array[1..an, 1..2] of integer; B: array[1..bn, 1..2] of integer; i, j: integer; flag: boolean;
begin clrscr; writeln('Mnozhestvo A:'); for i := 1 to an do begin for j := 1 to 2 do begin a[i, j] := random(100); write(a[i, j]:4); end; writeln; end;
writeln(#10#13, 'Mnozhestvo B:'); for i := 1 to bn do begin for j := 1 to 2 do begin b[i, j] := random(100); write(b[i, j]:4); end; writeln; end; {A * B} writeln(#10#13, 'Peresechenie. A * B'); for i := 1 to an do for j := 1 to bn do if (a[i, 1] = b[j, 1]) and (a[i, 2] = b[j, 2]) then write(a[i, 1]:4, a[i, 2]: 4, #10#13); readkey;
{A - B} writeln('Raznost. A - B'); for i := 1 to an do for j := 1 to bn do if (a[i, 1] = b[j, 1]) and (a[i, 2] = b[j, 2]) then begin c[i, 1] := a[i, 1]; c[i, 2] := a[i, 2]; end;
for i := 1 to an do begin flag := false; for j := 1 to an do if (a[i, 1] = c[j, 1]) and (a[i, 2] = c[j, 2]) then flag := true; if flag = false then write(a[i, 1]:4, a[i, 2]:4, #10#13); end;
readkey; end.
Источник:
Категория: Матрицы | Добавил: Pavel (26.12.2007)
| Автор: Павел Алексеевич
Итак. Это недоделанный вариант решения задачи. (Так как нет проверки при заполнении рэндомом массивов на повторяющиеся точки, в плане оформления и т.д.). Вообщем, A * B это есть одинаковые точки в двух множествах. A - B: это A за исключением A * B. Вот. C - у меня это пересечение A и B (A*B). Можно было бы и в первой части программы находить, но я сделал раздельно. Если есть вопросы - задавайте!
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]