• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Матрица

  • Автор темы Автор темы Lakki
  • Дата начала Дата начала

Lakki

Ученик
Регистрация
20 Окт 2009
Сообщения
8
Реакции
0
Баллы
0
Матрица

1.Дана целочисленная матрица размера M x N. Различные столбцы матрицы назовем похожими, если совпадают множества чисел, встречающихся в этих столбцах. Найти количество столбцов, похожих на первый столбец.
 
1.Дана целочисленная матрица размера M x N. Различные столбцы матрицы назовем похожими, если совпадают множества чисел, встречающихся в этих столбцах. Найти количество столбцов, похожих на первый столбец.

Const
M= ; {lines}
N= ; {columns}

TYPE
AR=ARRAY[1..M] of INTEGER;

VAR
A:ARRAY[1..N] of AR;
i,j,SUM:INTEGER;
f:TEXT;

FUNCTION COINS(Ac,Bc:AR):BOOLEAN;
VAR
Ic,Jc,Kc,Mc,p,q:INTEGER;
BEGIN
p:=0;
Mc:=M;
FOR Ic:=1 TO M DO
BEGIN
Jc:=0;
REPEAT
INC(Jc);
q:=0;
IF Ac[Ic]=Bc[Jc] THEN
BEGIN
IF Jc<Mc THEN
FOR Kc:=Jc+1 TO Mc DO Bc[Kc-1]:=Bc[Kc];
DEC(Mc);
q:=1;
INC(p);
END;
UNTIL (q=1) OR (Jc=Mc);
END;
IF p=M THEN COINS:=TRUE ELSE COINS:=FALSE;
END;

BEGIN
Assign(f, 'D:\fff');
ReSet(f);
FOR i:=1 TO M DO
BEGIN
FOR j:=1 TO N DO Read(f,A[j]);
ReadLn(f);
END;
Close(f);
SUM:=0;
FOR j:=2 TO N DO
IF COINS(A[1],A[j]) THEN INC(SUM);
WriteLn('There are ', SUM,' columns similar to column 1');
ReadLn;
END.

Несколько пояснений.
1. В программе отрабатывается ситуация, когда столбец 1 (и, соответственно, прочие) содержит повторяющиеся числа.
2. Исходная матрица содержится в файле fff. Путь к файлу и его имя исправьте в соответствии со своими дисками, папками и вкусом.
3. Введите константы - число строк и столбцов.
 
Назад
Сверху