Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2008, 10:26   #1
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию Матрица с инверсиями

Мтар.JPG
У меня есть эта матрица я писал код у меня не получается
Мне надо сделать так чтобы
1и2 строки например 1строка (1 2 3 4 5 6 7 8 9 10 идут по порядку значит K1=0) 2 строка (2 3 4 5 6 7 8 9 10 1 идут не попорядку 1 стоит не на своем месте значит получается K2=9) потом K1+K2=9
1и3 строки K1=0 K2=16(т.к. 3 4 5 6 7 8 9 10 1 2 (1 и 2 стоят не на своем месте значит получается 8 + 8)) K1+K2=16
1и4 строки K1=0 K2=21 K1+K2=21
2и3 строки получается там K1=0 K2=9 т.к. первая строка должна всегд идти по возрастанию т.е. 2 строка будет уже (1 2 3 4 5 6 7 8 9 10) а 3-яя строка будет (2 3 4 5 6 7 8 9 10 1) итд
все ответы по всей матрице я посчитал вручную будут
1 и 2 (сумма 9)
1 и 3 (сумма 16)
1 и 4 (сумма 21)
2 и 3 (сумма 9)
2 и 4 (сумма 16)
3 и 4 (сумма 9)
а как реализовать незнаю не получается чето
1 старый программист, лучше новых 2-х

Последний раз редактировалось Droid; 21.05.2008 в 16:11.
Droid вне форума Ответить с цитированием
Старый 21.05.2008, 11:18   #2
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

А написал я следущее
Код:
     for k1:=1 to 10 do
     for k2:=1 to 10 do
      begin
      kend:=0;
      kend1:=0;
      if (k1<>k1) and (matr[k1,1]>matr[k2,1]) or (matr[k1,1]<matr[k2,1]) then
       kend:=kend+1;
      if (k1<>k2) and (matr[k1,2]>matr[k2,2]) or (matr[k1,2]<matr[k2,2]) then
       kend1:=kend1+1
       kendo:=kend+kend1;
      end;
1 старый программист, лучше новых 2-х

Последний раз редактировалось Droid; 21.05.2008 в 11:23.
Droid вне форума Ответить с цитированием
Старый 21.05.2008, 13:10   #3
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Вопрос по-моему тот-же самый

http://programmersforum.ru/showthrea...8549#post98549
alexBlack вне форума Ответить с цитированием
Старый 21.05.2008, 15:09   #4
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Нет то было, как упростить код заполнения матрицы, а тут надо сделать другое !

Че никто не знает как сделать ?
1 старый программист, лучше новых 2-х

Последний раз редактировалось Stilet; 21.05.2008 в 15:32.
Droid вне форума Ответить с цитированием
Старый 21.05.2008, 15:36   #5
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Правильно я понимаю что K1 всегда равно 0?
Если да, то программа должна сама выравнивать строку, как тольно при сравнении она стала первой?
AlexandrSid вне форума Ответить с цитированием
Старый 21.05.2008, 15:41   #6
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

угу к1 всегда равна 0
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 21.05.2008, 15:56   #7
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Так должна программа сортировать строку по возростанию или нет.

И еще если строка будет 1 2 3 8 9 6 7 5 4 10 какое тогда получится число?

Т.е. имеет значение то, что 6 и 7 стоят на своем месте?

Последний раз редактировалось AlexandrSid; 21.05.2008 в 16:04.
AlexandrSid вне форума Ответить с цитированием
Старый 21.05.2008, 16:07   #8
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

первой строка всегда будет 1 2 3 4 5 6 7 8 9 10
следущая строка меняется если перставится последний столбец, а последний столбец переставляется в том случае если надо получить 1 строку 1 2 3 4 5 6 7 8 9 10.
например 3и4 строки
3 строка 3 4 5 6 7 8 9 10 1 2
4 строка 4 5 6 7 8 9 10 1 2 3
после преобразования должно получится
3 строка 1 2 3 4 5 6 7 8 9 10
4 строка 2 3 4 5 6 7 8 9 10 1 = инверсий тут 9 так 1 < всех стоит на последнем месте.
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 21.05.2008, 16:08   #9
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

если строка 1 2 3 4 5 6 7 8 9 10 то получается число инверсий 0 т.к. все числа стоят попорядку
мтарица тут --->Вложение 3895
1 старый программист, лучше новых 2-х

Последний раз редактировалось Droid; 21.05.2008 в 16:11.
Droid вне форума Ответить с цитированием
Старый 21.05.2008, 19:10   #10
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Вроде так должно быть, на скорую руку но должно работать.

Рекурсив матриц.rar
AlexandrSid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица Droid Общие вопросы Delphi 7 06.05.2008 20:14
Матрица =( Gwynbleidd Помощь студентам 3 16.12.2007 23:20
Матрица Cartman18 Помощь студентам 4 13.12.2007 19:49
Матрица Lima Паскаль, Turbo Pascal, PascalABC.NET 3 08.12.2006 01:01