Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ задача об двумерном массиве

Автор: asCOOLs 10.12.2004 5:59

Дана матрица х размерности n*n . Два столбца матрицы называются похожими, если совпадают совокупности чисел, встречающихся в этих столбцах. Найти количество попарно похожих и непохожих столбцов матрицы x . Вывести список этих столбцов.
надо сделать на паскале.
спосибо.

Автор: volvo 11.12.2004 6:48

asCOOLs
Попробуй так:

Код

const
 n = 4;
 a: array[1 .. n, 1 .. n] of integer =
   ((1, 2, 3, 4),
    (3, 4, 5, 7),
    (9, 7, 2, 3),
    (0, 3, 1, 2));

{Функция проверяет, входит ли элемент Num в столбец Col}
function is_exists(num, col: integer): boolean;
 var
   i: integer;
   exists: boolean;
 begin
   exists := false;
   for i := 1 to n do
     exists := exists or (num = a[i, col]);
   is_exists := exists
 end;

{Функция проверяет, "похожи" ли столбцы X, Y}
function is_alike(x, y: integer): boolean;
 var
   i: integer;
   alike: boolean;
 begin
   alike := true;
   for i := 1 to n do
     alike := alike and is_exists(a[i, x], y);
   is_alike := alike
 end;

var
 i, j: integer;
begin
 for i := 1 to n do
   for j := i to n do
     if i <> j then
       if is_alike(i, j) then
         writeln(i:3, j:3, ' похожи')
       else writeln(i:3, j:3, ' НЕ похожи');
end.