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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2011, 23:47   #1
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
Сообщение Магический квадрат

делаю курсач по теме головоломки "первые встречные"... столкнулся со следующей проблемой... нужно сформулировать матрицу nxn так, что бы в ней не повторялись значения в стобце и строке... пример:
1 0 2 3
0 3 1 2
2 1 3 0
3 2 0 1
написал следующий алгоритм :
Код:
var
i,j,g,temp, kl:integer;
 sloznost:integer;
 a: array [1..7,1..7] of integer;
begin
sloznost:=4;
for i:=1 to sloznost do
 for j:=1 to sloznost do
    a[i,j]:= sloznost+1;
 for i:=1 to sloznost do
 for j:=1 to sloznost do
 begin

 repeat
 kl:=0;
 zer:=0;
    temp:=random(sloznost);
    for g:=1 to sloznost do
    if temp <> a[i,g] then
    kl:=kl+1; 
    for g:=1 to sloznost do
   
    if temp <> a[g,j] then kl:=kl+1; 
                 if kl =sloznost*2 then 
              a[i,j]:= temp;
     until (kl=sloznost*2);
 end;
 writeln (' ');
  for i:=1 to sloznost do
 begin
 for j:=1 to sloznost do
 write(a[i,j],' ');
 writeln(' ');
 
 end;
 end.
и понял чтов нем при значениях n>3 не всегда может создать жанный квадрат... даже при n=3 иногда зацикливается, так как неверная растановка первых элементов... посоветуйте как его усовершенствовать или чем заменить... максимальное значение которое может принимать n<=7... помогите плиз.... в этом единственная проблема в написании курсача....
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 16.04.2011 в 12:39.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 15.04.2011, 23:53   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

переменная zer тут покуда не в причем... думал оформить сие действие через процедуру и загнать в рекурсию... но как то слишком памяти много хавать будит .. при больших размернастях... подскажите что нить плиз...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Магический квадрат morgan97 Паскаль, Turbo Pascal, PascalABC.NET 5 09.04.2011 17:10
Магический квадрат sigmanen Общие вопросы C/C++ 1 12.11.2010 22:40
магический квадрат Irk-O Помощь студентам 3 11.10.2010 13:00
Магический квадрат Arman Tokanov Помощь студентам 7 27.10.2009 15:42
Магический квадрат Anarx Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2008 13:07