68482 1







Strona: [  >  ]  z  1     









Autor
Temat: Zamiana nominału...











Goły


Typ:
neutral
Postów: 8
Zarejestrowany: Dec 2003




Zamiana nominału...
Jak napisać program który predstawi wszystke mozliwosci zamiany jednego nominału na banknoty i bilon. naprzykład podaje 85 złi program podaje wszystkie mozliwe kombinacje... 85=10+10+20+5+5+20+10+2+2+1 85=10+10+10+10+10+10+10+10+5 85=50+20+10+1+1+1+1+1i  tak  dalej.........Dzięki





02-01-2004 21:13



 
      

478762













losmac
"profesorek"

Typ:
neutral
Postów: 758
Zarejestrowany: May 2003




ja to widzę tak
Słuchaj, myślę, że to nie jest takie proste.Po pierwsze liczba możliwych kombinacji jest ..., a może i większa dopóki nie będziesz znał ilości poszczególnych banknotów i nominałów.Na przykład:W swoim bankomacie masz:5 razy 10 zł3 razy 50 zł2 razy 5 złTeraz liczba możliwych kombinacji zmniejsza się, bo wiesz, że poczynając od najwiekszego nominału, wykorzystasz:1 raz 50 zł,3 razy 10 zł i1 raz 5 zł.Problem jest ciekawy i warty rozwiązania, ale trzeba znać jego zastosowanie. Czy chodzi Ci o wymyślenie idealnego algorytmu, czy też chcesz zrobić coś w rodzaju bankomatu, bo to całkowicie zmienia sposób myślenia - znalezienia rozwiązania?
_____________________________________________POSTULATY STARUSZKA: 1) Ludzie, dbajcie o polszczyznę!!! 2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!! Powodzenia Maciej Łoś




02-01-2004 23:09



 
    













Goły


Typ:
neutral
Postów: 8
Zarejestrowany: Dec 2003




Nowa myśl.
Moze zrobic to na zasadzie losowania banknotow i bilonu tak ze suma ich daje odpowiednio za kazdym raze taki sam nominal bez powtorzen, tylko czy jest to mozliwe?





03-01-2004 01:19



 
      

478762













losmac
"profesorek"

Typ:
neutral
Postów: 758
Zarejestrowany: May 2003




rozwiązanie...
Nie wiem od czego zacząć, więc zacznę od początku.Nie mogłem jakoś sobie uświadomić jak to zrobić, więc zacząłem kombinować jak to się dzieje w bankomacie:Przecież każdy bankomat ma określoną ilość gotówki!Więc poczyniłem pewne założenia:1) Mam jakąś ilość nominałów w swoim bankomacie (Ty, oczywiście możesz je losować)2) Wszystkie moje nominały są poukładane w porządku rosnącym, bo łatwiej jest dokonywać wypłaty zaczynając od największego nominału. Gdybym to robił odwrotnie (od najmniejszego) to nazbierałbym drobniaków i nagle pojawia się 20 zł, a klient chciał wypłacić 35 z takich nominałów: 1, 1, 5, 10, 20, 50. Wypłaciłby? Oczywiście, że nie, bo uzbierałbym mu (jako bankomat) dokładnie 17 zł i dalej co... NIC! .... zimna!ROZWIĄZANIENajpierw muszę ustalić ile mam kasy w bankomacie (NIE SUMA kwot z  nominałów, a ilość nominałów).Ta wartość to ilość pętli, które powinien wykonać program, by sprawdzić wszystkie możliwe kombinacje.By wypłacić 35 zł z w/w nominałów:Liczba pętli = licbie nominałów; tj.: 6 PĘTLA 1Za pierwszym razem sprawdzam wszystkie nominały w bankomacie:1, 1, 5, 10, 20, 50ale robię to w porządku od największego nominału do najmniejszego, więc 50 - odrzucam do worka, by sprawdzić kolejnym razem20 - odliczam do wypłaty (mniej niż 35)10 - odliczam do wypłaty (mniej niż 35)5 - odliczam do wypłaty (równo 35)1 - odrzucam do worka, by sprawdzić kolejnym razem1 - odrzucam do worka, by sprawdzić kolejnym razemPo pierwszej wypłacie pozostało w bankomacie:50, 1, 1PĘTLA 2, 3,...650 - odrzucam do worka, by sprawdzić kolejnym razem1 - odrzucam do worka, by sprawdzić kolejnym razem1 - odrzucam do worka, by sprawdzić kolejnym razemWyczerpałem wszystkie możliwości - MOŻLIWA JEST TYLKO JEDNA WYPŁATA 35 zł z podanych nominałów!Utworzyłem plik w Excel'u z przykładowym kodem... Jeśli chcesz wyślę Ci go na mail'a!POZOSTAŁYM mówię, że umieszczę go na własnej stronce do ściągnięcia, a tu dodam link!
[Post edytowany dnia 04-01-2004 00:19 przez losmac]_____________________________________________POSTULATY STARUSZKA: 1) Ludzie, dbajcie o polszczyznę!!! 2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!! Powodzenia Maciej Łoś




04-01-2004 00:16



 
    













Goły


Typ:
neutral
Postów: 8
Zarejestrowany: Dec 2003




Dzięki...
Jak mozesz to prosze prześlij mnie to na mail'a. Mam jeszcze problem jak zrobić dokońca tą petle, znaczy jak odliczac pasujace nominały z gromadki a następnie żeby te odliczone po koleji w pętlach nominały wyswietlić?





04-01-2004 02:32



 
      

478762













deywid


Typ:
neutral
Postów: 66
Zarejestrowany: Jan 2004





nie wiem nawet czy to sie komuś przyda .ale temat mnie zaciekawił,zrobiłem coś takiego ze z tym banknotów(bilonu)co podałes(100,50,20,10,5,2,1) jest przedstawiana suma z banknotów(bilonu) o największej wartość danej kwoty np. 124 zł czyli 1 x 100 ,1x 20 ,2 x2ale mowie zrobilem to tylko z wlasnej ciekawosci..============================Private Sub Command1_Click()Dim zmienna(1 To 7) As Integerzmienna(1) = 100zmienna(2) = 50zmienna(3) = 20zmienna(4) = 10zmienna(5) = 5zmienna(6) = 2zmienna(7) = 1Dim ilezmienna(1 To 7) As Integerliczba = Text1.TextFor i = 1 To 7ilezmienna(i) = liczba \ zmienna(i)liczba = liczba - ilezmienna(i) * zmienna(i)Next iLabel1.Caption = Text1.Text & vbCrLf & "Ilość : banknot(moneta)"For ia = 1 To 7Label1.Caption = Label1.Caption & vbCrLf & "      " & ilezmienna(ia) & ": " & zmienna(ia)Next iaEnd Sub==========================pozdro





25-01-2004 18:48



 
      

5625009













Sen


Typ:
neutral
Postów: 20
Zarejestrowany: Jan 2004





jestem ciekawy na co ci rozmienianie kasy na drobne ale co tam, masz tu gotowy programik:Dim liczba As LongDim ile200, ile100, ile50, ile20, ile10, ile5, ile2, ile1 As LongDim l200, l100, l50, l20, l10, l5, l2, l1 As LongDim a1, a2, a3, a4, a5, a6, a7 As LongDim linia As StringPrivate Sub Command1_Click()    Text2 = ""    liczba = Val(Text1)    ile200 = Int(liczba / 200)    l200 = liczba    For a1 = 0 To ile200        l100 = l200 - a1 * 200        ile100 = Int(l100 / 100)        For a2 = 0 To ile100            l50 = l100 - a2 * 100            ile50 = Int(l50 / 50)            For a3 = 0 To ile50                l20 = l50 - a3 * 50                ile20 = Int(l20 / 20)                For a4 = 0 To ile20                    l10 = l20 - a4 * 20                    ile10 = Int(l10 / 10)                    For a5 = 0 To ile10                        l5 = l10 - a5 * 10                        ile5 = Int(l5 / 5)                        For a6 = 0 To ile5                            l2 = l5 - a6 * 5                            ile2 = Int(l2 / 2)                            For a7 = 0 To ile2                                l1 = l2 - a7 * 2                                Text2 = Text2 + Str(a1) + "x200 " + Str(a2) + "x100 " + Str(a3) + "x50 " + Str(a4) + "x20 " + Str(a5) + "x10 " + Str(a6) + "x5 " + Str(a7) + "x2 " + Str(l1) + "x1 " + Chr(13) + Chr(10)                            Next                        Next                    Next                Next            Next        Next    NextEnd SubPrivate Sub Form_Load()    Text1 = ""End Subpotrzebne sa 2 textboxy i commandbutton, drugi textbox ze scrollbarem, bo lista bedzie długa jezeli wpiszesz cokolwiek wiekszego od 20A tak pozatym to nie wpisuj liczb wiekszych od 100 bo to jest zabójstwo dla windy, chyba ze masz zajebistego kompa.Czy o to dokładnie ci chodziło?





25-01-2004 21:24



 
  













Goły


Typ:
neutral
Postów: 8
Zarejestrowany: Dec 2003




To jest to...
Dzięki wielkie,o to właśnie chodziło. Pozdrawiam
[Post edytowany dnia 02-02-2004 20:26 przez Goły]




02-02-2004 20:20



 
      

478762












Wszystkich odpowiedzi: 7 :: Maxymalnie na stronę: 20










Strona: [  >  ]  z  1     









Wyszukiwarka