nevsad | 21.10.2016 09:16 |
---|---|
Predmet:konvert broja u slovo imam funkciju koja broj 1824 pretvori u 1823 slovom neznam gdje je greska pozdrav Function slovima(broj) On Error Resume Next If broj = 0 Then slovima = "nula" Exit Function End If ReDim imebr(9) imebr(1) = "jedan" imebr(2) = "dva" imebr(3) = "tri" imebr(4) = "četiri" imebr(5) = "pet" imebr(6) = "šest" imebr(7) = "sedam" imebr(8) = "osam" imebr(9) = "devet" rez = "" celi = Int(broj) dec = ((broj - celi) * 100) Mod 100 cbr = Str(celi) duzina = 16 - Len(cbr) cbroj = String(duzina, "0") & right(cbr, Len(cbr) - 1) i = 1 Do While i < 15 tric = Mid(cbroj, i, 3) trojka = Val(tric) If tric <> "000" Then cs = Val(Mid(tric, 1, 1)) cd = Val(Mid(tric, 2, 1)) cj = Val(Mid(tric, 3, 1)) Select Case cs Case 2 rez = rez & "dvije" Case Is > 2 rez = rez & imebr(cs) End Select Select Case cs Case 1 rez = rez & "stotinu" Case 2, 3, 4 rez = rez & "stotine" Case Is > 4 rez = rez & "stotina" End Select If cj = 0 Then sl1 = "" Else sl1 = imebr(cj) Select Case cd Case 4 rez = rez & "četr" Case 6 rez = rez & "šes" Case 5 rez = rez & "pe" Case 9 rez = rez & "deve" Case 2, 3, 7, 8 rez = rez & imebr(cd) Case 1 sl1 = "" Select Case cj Case 0 rez = rez & "deset" Case 1 rez = rez & "jeda" Case 4 rez = rez & "četr" Case Else rez = rez & imebr(cj) End Select If cj > 0 Then rez = rez & "naest" End Select If cd > 1 Then rez = rez & "deset" If (i = 4 Or i = 10) And cd <> 1 Then If cj = 1 Then sl1 = "jedna" ElseIf cj = 2 Then sl1 = "dvije" End If End If rez = rez & sl1 Select Case i Case 1 rez = rez & "bilion" If cj > 1 Or cd = 1 Then rez = rez & "a" Case 4 rez = rez & "milijard" If ((trojka Mod 100) > 11 And _ (trojka Mod 100) < 19) Then rez = rez & "i" ElseIf cj = 1 Then rez = rez & "a" ElseIf cj > 4 Or cj = 0 Then rez = rez & "i" ElseIf cj > 1 Then rez = rez & "e" End If Case 7 rez = rez & "milion" If ((trojka Mod 100) > 11 And _ (trojka Mod 100) < 19) Or cj <> 1 Then rez = rez & "a" End If Case 10 rez = rez & "hiljad" If ((trojka Mod 100) > 11 And _ (trojka Mod 100) < 19) Or cj = 1 Then rez = rez & "a" ElseIf trojka = 1 Then rez = rez & "u" ElseIf cj > 4 Or cj = 0 Then rez = rez & "a" ElseIf cj > 1 Then rez = rez & "e" End If End Select End If i = i + 3 Loop slovima = rez & Str(dec) & "/100 KM" End Function |
zxz | 21.10.2016 09:32 |
---|---|
Predmet:Re: konvert broja u slovo Jel bas zelis gresku da nadjes u svom kodu ili... Evo kod ima. http://www.icentar.ba/...st&id=955 |
nevsad | 21.10.2016 09:32 |
---|---|
Predmet:Re: konvert broja u slovo funkcija je dobra nije valjoa format broja pozdrav |
Avko | 26.10.2016 13:47 |
---|---|
Predmet:Re: konvert broja u slovo Recimo da želimo provjeriti kako rade ove funkcije, sa kojim kompajlerom to mozemo vidjeti? Znaci zanimame neki mali kompjler kojim izvrsim te funkije, koji bi to bio? ILi ako malo pojasnim, napisem u tom kompajleru str$=slovima(300) ili u zxz slucaju str$=BrSlovima(300) ispod toga prepisem funkciju, a zatim kliknem RUN i pokaze mi se rezultat? |
pmiroslav | 26.10.2016 17:20 |
---|---|
Predmet:Re: konvert broja u slovo U Accesu kopiraš kod u neki modul i onda u Immediate Window (Nevsadov primjer) napišeš : ? slovima(12345) Enter i dobit ćeš rezultat procedure |
|
Prilozi: Image1.jpg (Velicina datoteke:196.58 KB) |
Avko | 26.10.2016 23:22 |
---|---|
Predmet:Re: konvert broja u slovo znaci bez accesa neide? tako sam i mislio. bilo bi prejednostavno da nije tako. cini mi se da se radi o VBA jeziku, ali nisam siguran, pa bi to isto moglo raditi i u excelu na isti nacin kako si opisao. probat cu sutra pa javim. hvala na odgovoru |
zxz | 27.10.2016 00:21 |
---|---|
Predmet:Re: konvert broja u slovo Mozes ti ovu proceduru prepicati i u c++ i u javu ili neki dru programski jezik. Ideja je bitna a naredbe nadjes na netu. |
Avko | 27.10.2016 11:33 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Predmet:Re: konvert broja u slovo uzeo sam pmiroslavov metod, ali sam stavio u excel, jer mi muka od accesa. Prvo sam stavio funkciju od nevsada, radi perfektno bez greske. za broj 354 dobio sam odgovor: tristotinepedesetčetiri 0/100 KM, vrijeme 0,0000458158774563344 sada sam sa nekom dozom straha stavio funkciju od zxz-a, i naravno crne slutnje su se obistinile. Javilo mi gresku. U redu 70, BrSlovima = Strb & ImenaB(DioTri, RodJ, I1) & BrSlovima poziva se funkcija ImenaB(var1,var2,var3) koja ne postoji. Sto je tada zxz radio , neznam. Vjerojatno su mu se motala po glavi imena pa je pozvao funkciju imena koje uopce nema. Zamijenio sam ImenaB sa Cifre(var1,var2,var3) tako da 70-ti red izgleda ovako: BrSlovima = Strb & Cifre(DioTri, RodJ, I1) & BrSlovima i ... ponovo greska, deklaracija var DioTri stavljen je kao String u 14 redu Dim DioTri As String, deklaracijom kao Integer prolazi jer u redu 55 Str(1) = Cifre(Cifra, I2, I1) var Cifra je deklarirana kao Integer i to ...bla bla bla znaci 14. Dim DioTri as Integer, da skratimo pricu sada radi, pa pokrenimo sa BrSlovima(354), a rezultat je: tristotinepedesetetirideset, cini mi se da daje ovu deset viska pogledajmo BrSlovima(350) tristotinepedesetdeset, to je u redu znaci muce ga decimalno mjesto jedinica, ako je vece od 0 tj. ako je neki broj u 135 redu zapocinje if uvijet If PoRedu = 2 Then If Cifra = 1 Then Cifre = "naest" Else Cifre = Cifre & "deset" End If tu nesto ne stima, po meni, ali neznam što. Nakon sto Strb ima ispravnu vrijednost uvijet ispituje Cifra, vrijednost je 5 te prvi uvjet if Cifra=1 nije zadovoljen ali zato ono Else se izvrši i doda "deset" Neznam kako to riješiti, ali dok se problem ne riješi preporučio bi koristiti nevsadovu funkciju vrijeme potrebno da se program izvrsi , iako zxz funkcija ne radi, je:
|
zxz | 27.10.2016 16:41 |
---|---|
Predmet:Re: konvert broja u slovo Hehe dodao sam proceduru koja nedostaje. Kada sam prekopirao sa starog foruma izgleda poslije nikome nije ni trebala. Trebala je samo za kase dok su se radile. |
zxz | 27.10.2016 17:21 |
---|---|
Predmet:Re: konvert broja u slovo Da napomenem moja procedura ne radi decimalne brojeve. ja sam to radio drugacije. Razdvojim broj na dva dijela cio i decimalni i 2 puta posalje proceduri tako da dobijem slovima i decimalni dio. |