![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() помогите пожалуйста ))
нужно написать программу подбирающую ключи: Перед играющим четыре запертые двери. Открыть все двери, располагая десятью ключами, каждый из которых может открыть несколько дверей. Представляется 14 попыток. |
#2
|
||||
|
||||
![]() Цитата:
|
#3
|
|||
|
|||
![]() По-моему, здесь можно просто по порядку все ключи использовать, и двери откроются. Не вижу комбинаторики. Уточни условие.
|
#4
|
||||
|
||||
![]() Смутно напоминает игру "Быки и коровы".
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() предположим по 2 двери
в общем есть массив ключей (1..10) и каждый из них иткрывает две двери(от 1 до 4 соответственно) ) |
#6
|
||||
|
||||
![]() Ну очень понятно объяснил.
![]() Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
||||
|
||||
![]() к примеру массив-описание ключей:
Код:
Keys: array [0..9] of Byte = (3, 5, 6, 9, 10, 12, 10, 9, 6, 5); тогда чтобы открыть все двери нужны ключи 3, 6, 10, 12 я правильно понял? добавлено позже кста, ключей достаточно 6: 0011 = 3 0101 = 5 0110 = 6 1001 = 9 1010 = 10 1100 = 12 или я ничего не понял или я еще не проснулся или при любой комбинации двери откроются ![]() Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 24.04.2012 в 09:13. |
#8
|
||||
|
||||
![]() Скорее всего заранее не известно сколько и каких дверей открывает каждый конкретный ключ.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#9
|
|||
|
|||
![]() в идеале да, не известно сколько каждый ключ открывает и какие, но на конкретном примере я себе так представляю)) :
дверь "1" которую открывают ключи 3,5,6,7,9; дверь "2" которую открывают ключи 1,4,8,9,10; и т.д. и дальше мы ключи от 1 до 10 сравниваем со значениями массива (3,5,6,7,9) и когда они совпадают , останавливаем цикл и сравниваем след. массив , ну и счётчик надо чтоб 14 не превышало П.С. с while и repeat у меня не выходит, есть команда, останавливающая цикл for ? |
#10
|
|||
|
|||
![]() Цитата:
|
Этот пользователь сказал Спасибо nixel за это полезное сообщение: | ||
eyesandsky (26.04.2012)
|
#11
|
||||
|
||||
![]() все-равно я толком не понял - это типа игры и игрок подбирает ключи к дверям, а программа должна сказать открыты все двери или нет? или же реализовать алгоритм подбора ключей?
Пишу программы за еду. __________________ |
#12
|
|||
|
|||
![]() Цитата:
нужно сделать и как алгоритм подбора ключей и как игру. у меня тут вопрос века назрел я беру первый ключ и сравниваю его с каждым эл-том массива( 6,1,5,7,9) for j:=1 to 10 do begin for i:=1 to 5 do begin if a[i]=k[j] then j:=c; break; по идее же j должен быть равен 1 т.к. 1 уже есть во втором цикле, но j выводит = 6. почему? (он тупо первое число во втором цикле выводит) |
#13
|
||||
|
||||
![]() Не обращай внимания, это приколы Дельфи. Подсчитывает он всё равно правильно.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#14
|
||||
|
||||
![]() а что компилятор уже не выдает ошибку Assignment to FOR-Loop variable 'j' ?
Пишу программы за еду. __________________ |
#15
|
||||
|
||||
![]() пользуй вайлы/репиты.
|