Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ курсач в кпи

Автор: revan 27.05.2007 22:28

даны купыри 1 2 5 10 20 ми вводим какоето число денег и надо найти все возможные сумы етого числа из теч купюр помогите плиз кто знает как ето замутить

Автор: Ozzя 29.05.2007 13:29

adm.gif
1. Это он на каком языке пишет?
2. Это он с кем разговаривает? norespect.gif

Автор: Michael_Rybak 29.05.2007 16:24

Оффтоп: это суржик. КПИ - это Киевский Политехнический Институт. Украинцы часто очень безграмотны (в отношении русского), и эта тенденция - все сильнее.

Онтоп:
>помогите плиз кто знает как ето замутить

Замутить полным перебором:


for k1 := ...
for k2 := ...
for k5 := ...
for k10 := ...
for k20 := ...
if k1 * 1 + k2 * 2 + .. + k20 * 20 = sum then
writeln(k1, '*1 + ', k2, '*2 + ' , ...);

Автор: revan 30.05.2007 22:50

ето в паскале кто может хелп плиз

Автор: Michael_Rybak 31.05.2007 2:06

Я тебе и написал в паскале. Только твои усилия тоже понадобятся.

Автор: revan 31.05.2007 4:07

пасибо я напрягся ивыдал чтото только не знаю как моя прога не слишком дибильная




File Edit Search Run Compile Debug Tools Options Window Help
╔═[■]═════════════════════════════ LIP.PAS:1 ════════════════════════════9═[↕]═╗
║program kyrcaz; ▲
║uses crt; ■
║const n=4; ▒
║label l1,l2; ▒
║var a:array [1..n] of integer; ▒
║l,k,i,s:integer; ▒
║begin ▒
║clrscr; ▒
║s:=0; ▒
║for i:=1 to n do ▒
║begin ▒
║writeln ('a[i]',a[i]); ▒
║readln (a[i]); ▒
║end; ▒
║writeln ('ziclo',k); ▒
║readln (k); ▒
║i:=1; ▒
║{for i:=1 to n do } ▒
║ ▒
║while i<=n do ▒
║begin ▼
╚═☼═════ 3:10 ════◄■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒►─┘
F1 Help F2 Save F3 Open Alt+F9 Compile F9 Make Alt+F10 Local menu

Автор: Michael_Rybak 31.05.2007 5:08

Бррр. Во-первых, что за псевдографический скриншот ты запостил smile.gif Во-вторых, программа обрезанная (только начало поместилось). В-третьих - никакого намека на использование того, что я предложил, не вижу.

В общем. Все, что тебе надо сделать - это считать число, и перебрать, сколько ты берешь купюр каждого вида. Перебираешь вложенными циклами. Что конкретно не получается - пиши.


Автор: revan 1.06.2007 20:02

я сегодня у препода спрашивал он сказал что надо решать твоим методом только скажи цикл начинаем снуля или с 1

Автор: compiler 1.06.2007 20:53

Цитата(revan @ 1.06.2007 16:02) *
я сегодня у препода спрашивал он сказал что надо решать твоим методом только скажи цикл начинаем снуля или с 1
попробуй собрать десятку, хотябы содной двадцаткой smile.gif , конечно с 0... до (дальше думай сам smile.gif )

Автор: revan 2.06.2007 1:42

уже неделю думаю башка виснит и сам я в цикле)

Автор: Michael_Rybak 2.06.2007 16:37

Я тебе написал основной кусок кода еще в первом посте. Осталось только шапку добавить.

Вот с границами цикла для первых двух переменных:

for k1 := 0 to sum div 1 + 1 do
for k2 := 0 to sum div 2 + 1 do
for k5 := ...
for k10 := ...
for k20 := ...
if k1 * 1 + k2 * 2 + .. + k20 * 20 = sum then
writeln(k1, '*1 + ', k2, '*2 + ' , ...);

Автор: compiler 2.06.2007 23:22

Цитата(Michael_Rybak @ 2.06.2007 12:37) *

Осталось только шапку добавить... to sum div 1 + 1 do...
у меня вопрос по этой самой шапки.. Зачем добавлять единицу?

Автор: revan 3.06.2007 0:05

спасибо чуваки задача вышла вы мне очень помогли

Автор: Michael_Rybak 3.06.2007 1:15

Единичку добавлять - на всякий случай. Вообще да, в данном случае - не обязательно.

Пожалуйста smile.gif