![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
DarkWishmaster |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
Привет.
Вот задача: В кошельке находятся N монет и их общий вес G: Каждая монета имеет свою цену и свой вес: цена: вес: 1 1 5 2 10 3 25 4 50 5 Выяснить минимальную общую стоимость монет которая может находится в кошельке например: G=23 N=10 минимальная стоимость =68: 3 монеты по 1 1 монета по 2 и 6 монет по 3 вот мой код:
Он рабочий для параметром 10 23, 10 22, и ещё нескольких, и я уверен что есть способ более легкой для это задачи. Сообщение отредактировано: DarkWishmaster - 24.03.2011 20:44 |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Ты извини, но в твоем решении я не стал разбираться.. Скажи, какой смысл три разные величины засовывать в один массив? Разве удобно помнить, что у тебя означает строка 2 - вес, цену или количество? Намного удобнее сделать массив записей, например:
coins: array [1..5] of record Но мне кажется просто три массива тут прекрасно справляются с задачей. И еще - тебе НАДО поработать над форматированием текста.. Ты вот спрашивал в Свободном про то, какой язык выбрать.. Извини, но ДО ТОГО тебе надо освоить ОБЩИЕ ПРИНЦИПЫ. Код форматировать НАДО. Я уже устал всем это доказывать.. Прийми на веру ![]() Вот, я набросал тут два решения. Первое - некрасивое, я его просто так за пять минут сделал, чтоб проверить, какое же на самом деле минимальное решение (то, которое я привел выше, найдено "устно", без программы). В нем намертво зашито 4 цикла - то есть решение годится только для 5 значений монет, и баста. Разбери его, но учти - так программировать НЕ НАДО!! Второе - на основе рекурсии. Этот метод годится для разных наборов монет (достаточно подправить верхние строчки). Давай, разбирайся и спрашивай, что неясно. Успехов тебе. Код без рекурсии (как НЕ НАДО) (Показать/Скрыть)
Код с рекурсией (Показать/Скрыть)
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
DarkWishmaster |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ты извини, но в твоем решении я не стал разбираться.. Скажи, какой смысл три разные величины засовывать в один массив? Разве удобно помнить, что у тебя означает строка 2 - вес, цену или количество? Намного удобнее сделать массив записей, например: coins: array [1..5] of record Но мне кажется просто три массива тут прекрасно справляются с задачей. И еще - тебе НАДО поработать над форматированием текста.. Ты вот спрашивал в Свободном про то, какой язык выбрать.. Извини, но ДО ТОГО тебе надо освоить ОБЩИЕ ПРИНЦИПЫ. Код форматировать НАДО. Я уже устал всем это доказывать.. Прийми на веру ![]() Вот, я набросал тут два решения. Первое - некрасивое, я его просто так за пять минут сделал, чтоб проверить, какое же на самом деле минимальное решение (то, которое я привел выше, найдено "устно", без программы). В нем намертво зашито 4 цикла - то есть решение годится только для 5 значений монет, и баста. Разбери его, но учти - так программировать НЕ НАДО!! Второе - на основе рекурсии. Этот метод годится для разных наборов монет (достаточно подправить верхние строчки). Давай, разбирайся и спрашивай, что неясно. Успехов тебе. Код без рекурсии (как НЕ НАДО) (Показать/Скрыть)
Код с рекурсией (Показать/Скрыть)
Спасибо! Буду разбираться. "Ты вот спрашивал в Свободном про то, какой язык выбрать.. " - ну это я хочу паралельно учить и другой язык, хотя Паскаля и на половину не знаю ) |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
хочу паралельно учить и другой язык, хотя Паскаля и на половину не знаю ) Желание что-то делать (в частном случае - учить) всегда похвально. Но второй язык только усилит неразбериху в твоей голове. В результате ты проиграешь на всех фронтах. Решай как можно больше задач на Паскале - это поможет тебе усвоить те самые общие принцмпы, о которых я говорил. После этого раскроешь учебник по другому языку - и тебе покажется, что ты его уже знаешь.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 14:02 |