Помощь - Поиск - Пользователи - Календарь
Полная версия: задача об двумерном массиве
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
asCOOLs
Дана матрица х размерности n*n . Два столбца матрицы называются похожими, если совпадают совокупности чисел, встречающихся в этих столбцах. Найти количество попарно похожих и непохожих столбцов матрицы x . Вывести список этих столбцов.
надо сделать на паскале.
спосибо.
volvo
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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.