![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Svit |
|
|||
|
Unregistered |
Задача: разбить число на 1коп, 5коп, 10коп, ... ,5000руб всеми возможными способами. Алгоритм вроде правильный, а в коде где-то ошибка. Посмотрите пожалуйста З.Ы:мне здавать завтра...
|
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: нет Всего: 62 |
Перенесено из раздела "Алгоритмы".
|
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
Мдя... ну да ладно...
Надеюсь что правильно понял смысл задания и что ты утром просмотришь
Удачи. -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Имхо, надо вывести все возможные варианты получения заданной суммы. Вот только не понятно, до какой степени вариантизировать ?
Можно же и миллион рублей сложить копейками... -------------------- С уважением, г-н Посол. |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
p0s0l я думаю человек хочет для любой суммы денег, узнать из каких купюр можно её собрать
Т.в. можно просто добавить запрос количества вариантов сумм купюр... а далее просто. Вначале задать для рублей(перед циклом) i:=8... потом i:=7 или i:=6(в зависимости от первого вхождения). При достижении i:=0 и если счетчик еще не равен 0 то, использовать только массив по копейкам. А если количество вариантов превышает сумму размеров массивов под рубли и копейки, то можно вообще перейти к произвольной выборки из массивов. PS: А что планируется выпуск 5000 купюр? Это сообщение отредактировал(а) Girder - 20.10.2004, 11:00 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: 2 Всего: 10 |
Вот, попытался написать, проверьте, компилера нет.
Нужно подправить под конкретные условия.
Программа написана "навскидку", так что сорри, но идея, думаю, понятна. P.S. А почему эту тему убрали из раздела "Алгоритмы"? Там ей самое место, ИМХО. Это сообщение отредактировал(а) Alex101 - 20.10.2004, 15:35 -------------------- С уважением, А. Фролов. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Alex101, вместо if Res_Rub[i] then надо if Res_Rub[i] <> 0 then, остальное - всё правильно (по синтаксису).
Только при запуске вываливается ошибка деления на нуль в строке: for i:=1 to (Sum-sum_find) div Rub[pos]*i do Если поставить перед этой строкой проверку: if Rup[pos] <> 0 then то ошибки не возникает, но опять же, проверил числа 7 и 10, в файле получаются странные варианты: 7 = 1 рублей 1купюр 2 рублей 3купюр 1 рублей 7купюр 0 рублей 3купюр 10 = 1 рублей 10купюр 0 рублей 4купюр 0 рублей 1купюр -------------------- С уважением, г-н Посол. |
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: 2 Всего: 10 |
Может массив Rub неправильно инициализируется?
Мне просто вообще не на чем проверить сейчас. P.S. А в Паскале не прокатывает такое: if value then... Не тоже самое, что и if value<>0 then... ? Да! Надо поменять местами:
Это сообщение отредактировал(а) Alex101 - 20.10.2004, 16:22 -------------------- С уважением, А. Фролов. |
|||
|
||||
| Ptica |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 27.7.2004 Репутация: нет Всего: 2 |
Alex101
Если в Паскале написано if value then... то это значит, что value - логическая (boolean) переменная (или функция). Вот это было бы правильно (но это просто умозрительный пример):
|
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Допёрло: там описка Rub[pos]:=0; надо Res_Rub[pos]:=0;
А проверку if pos>8... надо оставить где была... Если это исправить, то будут выданы все варианты (не проверял, но их для 100 выдаёт много = 2499 вариантов) -------------------- С уважением, г-н Посол. |
|||
|
||||
| Alex101 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: 2 Всего: 10 |
Ну да, именно это я и имел в виду (то есть не испольуем вообще эту купюру), извините. Лучше проверить для чего-то небольшого, например для 10 - вручную подсчитать можно.
А мне что-то показалось, что надо менять местами. Это не тестировался случай, когда одно из решений получается при добавлении самой большой купюры. Это сообщение отредактировал(а) Alex101 - 20.10.2004, 17:26 -------------------- С уважением, А. Фролов. |
||||
|
|||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 4 Всего: 110 |
скорее всего, потому, что человек не просил решенияч задачки он просил только проверить, правильная ли у него программа... -------------------- qqq |
|||
|
||||
| Svit |
|
|||
|
Unregistered |
Спасибо всем, особенно Alex101!
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |