|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.07.2017, 08:04 | #1 |
Регистрация: 04.02.2017
Сообщений: 8
|
Delphi, циклы, лаба
Подскажите красивый алгоритм (для лабы)
Дан диапазон стринговых переменных 100 штук Код:
Код:
b1,b2...b10: Boolean; т.е. если b1=True То в диапазоне s001 - s010 можно выбирать Задача: осуществить случайный выбор, (Randomize) одного значения из всего доступного диапазона (обходя запрещенные участки) т.е. если юзер указал (там чекеты на форме), например Код:
то функция Randomize должна выбирать одну переменную из списка: [s001 - s020,s031 - s050,s061 - s070,s081 - s100] т.е. возвращать значение Num:Integer = номер случайной переменной: Num := Random(что-то хитрое) ... Мной написан супер-пупер алгоритм, на 250 строк кода делающий все это, но препод заржал как коннь, сказал "это решается в несколько строк - хошь "трояк" - приму твое... а я трояк не хочу") Мне хотя бы просто указать нужный путь, просто "кури циклы" мне не понятно) |
14.07.2017, 08:21 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
А тут именно "кури цикл" - запускаете цикл, в котором выполняете рандом по всему диапозону, а в постусловии проверяете, что попали в допустимый.
Конечно, это простейший вариант. Есть всякие вариации, типа: если только один промежуток, то сужаем на него или сначала выбираем все допустимые промежутки, потом рандом по их номерам и рандом по полученному одному промежутку. Последний раз редактировалось p51x; 14.07.2017 в 08:25. |
14.07.2017, 08:35 | #3 |
Регистрация: 04.02.2017
Сообщений: 8
|
А если разрешен, скажем всего 1 из 10 поддиапазонов, представляете какая вероятность что этот цикл зациклится на проверке постусловия и будет крутиться в нем 500 лет? )
|
14.07.2017, 08:39 | #4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В массивы строки и флажки:
Код:
Код:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
14.07.2017, 08:59 | #5 |
Регистрация: 04.02.2017
Сообщений: 8
|
Спасибо,
крутовато конечно написано, счас попытаюсь разобраться своим умишком что тут и где) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Лаба по ассемблеру. Циклы. | NewLamer&Programer | Помощь студентам | 4 | 05.05.2013 18:12 |
Циклы, лаба по C++. | Mr.Voragus001 | Помощь студентам | 1 | 11.12.2011 09:05 |
Лаба на процедуры и функции Delphi | Danis_ka | Помощь студентам | 5 | 11.06.2011 19:43 |
delphi Лаба на файлы и записи: | Danis_ka | Помощь студентам | 1 | 11.06.2011 18:25 |
Лаба в Delphi | сер4ей | Помощь студентам | 3 | 08.03.2009 13:44 |