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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2012, 19:22   #1
zzzzza
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
Вопрос Матрица и не равно в ABC pascal - решение СУДОКУ

1)Допустим дана матрица 5х5, значение числу присваивается командой random, как сделать так, чтобы числа в ряду(по горизонтали) не были равны?
2)Я сначала хотел вначале программы задать, что a[n,k] не равно a[n,k+1] и т.д, но тут возникла проблема, оператор <> нельзя использовать в этой ситуации, только в условии. Есть ли какой-нибудь оператор, который тоже задает что числа не равны и его можно использовать не только в условии?
zzzzza вне форума Ответить с цитированием
Старый 01.04.2012, 20:18   #2
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

напиши в самом начале программы randomize ...это позволит сделать так, чтобы во всей матрице не было одинаковых чисел.
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 01.04.2012, 20:50   #3
zzzzza
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию

не, у меня в матрице только числа от 1 до 9, значит в матрице 5х5 им все равно придется повториться))
zzzzza вне форума Ответить с цитированием
Старый 01.04.2012, 21:12   #4
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
for i:=1 to 5 do
begin
s:=[];
for j:=1 to 5 do begin
while  k in s do k:=random(9)+1;
a[i,j]:=k;
s:=s+[k];
end; 
end;
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 01.04.2012, 21:54   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

IT-man, отличное решение. в данном случае (когда элементы можно запихнуть в множество), я бы сказал - идеальное решение!


а в общем случае, после генерации В ЦИКЛЕ очередного числа проверять, нет ли такого же в этой же строке (в этом же столбце). если такое же число нашлось - повторять цикл генерации/проверки.

Последний раз редактировалось Serge_Bliznykov; 01.04.2012 в 22:32.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.04.2012, 22:06   #6
zzzzza
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию

IT-man, а можешь полностью программу скинуть, а то я как то разобраться не могу. Всегда матрица начинается с 0 и когда делаю матрицу 6х6, 7х7 и т.д, число из второго столбца переходят в первый. Я просто в множествах не очень разбираюсь)

Serge_Bliznykov, сейчас попробую.

Serge_Bliznykov, получилось, спасибо)
сейчас попробую доделать, может быть еще вопросы возникнут.

Я до заполнения матрицы, задаю какому та элементу значение и мне надо задать это число константой, чтобы потом, когда матрица заполнялась случайными числами, это число таким и оставалось. Сам вопрос заключается в том, как задать константу уже в самой программе?(задавать константу до описания переменных мне не нужно)

помогите пожалуйста)

Последний раз редактировалось Stilet; 05.04.2012 в 18:09.
zzzzza вне форума Ответить с цитированием
Старый 03.04.2012, 15:43   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а я так понял, что всё получилось!

или это не так?
Или Вы про константу?
что не получается то?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2012, 15:51   #8
zzzzza
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию

то получилось, спасибо.
Теперь мне нужно константу уже в программе задать, то есть я задаю число с клавиатуры и мне нужно чтобы это число потом, когда я задаю проверку, не изменилось.
zzzzza вне форума Ответить с цитированием
Старый 03.04.2012, 16:30   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Теперь мне нужно константу уже в программе задать, то есть я задаю число с клавиатуры и мне нужно чтобы это число потом, когда я задаю проверку, не изменилось.
я лично вообще ничего не понял...

давай так. ты приведёшь КОНКРЕТНЫЙ пример, что у тебя есть, что ты хочешь сделать и что у тебя при этом не получается!
ОК?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2012, 16:35   #10
zzzzza
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 16
По умолчанию

ОК. Сейчас добавлю кое что, чтобы понятнее было.
zzzzza вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на решение Pascal abc Tecka Фриланс 9 18.12.2012 22:20
Решение задач в PASCAL ABC canter Помощь студентам 2 11.03.2012 22:03
нужно решение на Pascal ABC EvilCry Помощь студентам 8 27.10.2011 12:30
(PASCAL ABC)Дана Матрица, найти индексы всех эл-ов с наибольшим значением, если таких элементов несколько Grandhustla Помощь студентам 0 25.05.2011 16:06
решение задачи в PASCAL ABC kill_01 Помощь студентам 14 19.05.2011 05:51