| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Задача про грузы. |
| Автор: Kot 29.7.2006, 21:03 | ||
| Программа либо ничего не выводит на экран, либо вылетает. Условие задачи: 1. Вводится некоторая грузоподьемность грузовика; 2. Вводятся число грузов и масса каждого из них. Найти номера грузов, которые необходимо оставить, чтобы грузовик был нагружен максимально.
|
| Автор: Oleg_Ci 30.7.2006, 10:13 | ||
| В массивах max и num всякая галиматья находится, я процедуру вывода содержимого массивов сделал, и вызываю из разных участков программы. А программу не на Ci, а на С++ нельзя-было писать ?
|
| Автор: ptr 30.7.2006, 10:38 |
| Просто ужас |
| Автор: Oleg_Ci 30.7.2006, 10:53 | ||
И вообще ты помойму слишком "намудрил". Я сочинил программу, она выводит на консоль процент загрузки грузовика, посмотри ведь всё проще можно сделать
|
| Автор: apook 30.7.2006, 12:16 | ||
| Kot и впрямь перемудрил, а вообше как я понял цель задачи написать алгоритм подбора наиболее удачной комбинации грузов которые надо уб рать и соответственно оставить . По ходу это надо долго думать Вот очень грубый вариант такого алгоритма(код Kot-а я так и не разобрал но там что-то подобное
|
| Автор: apook 30.7.2006, 16:59 | ||
Вот мой код усовершенствованный Можно очень наворотить но не лучше ли просто не допустить перегрузку на стадии загрузки тогда код будет меньше в раза четыре
вводи побольше грузоподьемность и кол-во грузов а то может не сработать (однако слишком большие числа тоже глючат) |
| Автор: apook 30.7.2006, 17:20 | ||
Максимально ты вводиш сам
|
| Автор: Oleg_Ci 30.7.2006, 17:28 |
| Это грузоподъёмность грузовика. А надо другое. Допустим грузоподъёмность равна 100 (тонн), а вес груза равен скажем 98 (тонн), и что теперь? грузовик нагружен максимально ? или немаксимально ? |
| Автор: apook 30.7.2006, 18:06 |
| Получется недогруз, что не является ошибкой. Если вес 1-го груза равен 98 а второго 9 какой бы грузчик выбрал груз? Он наверно не стал бы отпиливать от второго груза 2(кг или тонны) Хотя и такое возиожно. |
| Автор: Oleg_Ci 30.7.2006, 18:29 |
| Тогда как вычислить ошибку, я так понимаю что если груз больше грузоподъёмности - это ошибка, а когда груз меньше - где ошибка ? Нужно число (или процент) которое будет считаться нормальным, скажем это число - 90%, если груз меньше то ситуация считается НЕнагружен максимально, ну если больше то - нагружен максимально. Вот я и хотел узнать у Kot'а что считать нагружен максимально ? помойму его вводить надо самому, а тогда задача проще простого, я пример приводил, скажем расчитывает он у меня загруженность грузовика, в процентах, вот берём эти проценты, и отбрасываем не нужный груз, который не входит в предел скажем от 90% до 100%.А если слишком маленький, то новерно складывать их надо в один грузовик по нескольку грузов.(вот здесь загвозка возможна), хотя надо-ли это? Сейчас если постараюсь то напишу программу, правда на С++. |
| Автор: Oleg_Ci 30.7.2006, 20:34 | ||
Корче тоже сделал программу, только слишком маленькие "грузы", не складывает в один грузовик. Короче я спaть пошёл...
|
| Автор: Kot 30.7.2006, 22:59 |
| Условия таковы, что, если сумма масс всех введенных грузов не превышает грузоподъемность, то надо оставлять все грузы, если нет - искать максимальную сумму масс каких-либо грузов из введенных, причем эта сумма не должна превышать грузоподъемность. На экран вывести номера грузов, которые надо оставить. Например: Грузоподъемность=87; 1-й груз = 31 2-й груз = 7 3-й груз = 12 4-й груз = 3 5-й груз = 45 Оставить грузы №: 1, 2, 4, 5 Задачу желательно написать на Си. |
| Автор: zkv 31.7.2006, 03:51 | ||
| есть рекурсивный вариант, правда в основном на С++, но ведь главное алгоритм, а переделать недолго. на работоспособность особо не проверял, но в общем случае работает правильно над тем какие переменные должны быть глобальными а какие нет, не задумывался но в рекурсивную функцию лучше лишнего не пихать
|
| Автор: apook 31.7.2006, 15:20 | ||
Данная программа справляется с поставленной задачей (Прямо подбор паролей)
|