|
PHP PHP aplikacije, Smarty, PEAR |
![]() |
|
Alati teme | Način prikaza |
|
![]() |
#1 |
profesionalac
Professional
Datum učlanjenja: 11.10.2006
Lokacija: beograd, srbija
Poruke: 271
Hvala: 32
10 "Hvala" u 7 poruka
![]() |
![]() probao sam da pretrazim forum, ali ne znam ni kako bi ukucao search string!
![]() elem, zadatak je (relativno) jednostavan: 1) ako imas neku cifru na racunu, recimo 452,318.00 dinara 2) to trebas da napises slovima, za isti primer bi trebalo: cetiristopedesetdvehiljadetristaosamnaestdinara e sad, ja krenuo da razlazem obicne cifre, uradio jedinice, desetice, stotine, hiljade, desetine hiljada.. i onda video nepravilnosti, pa probao da se pravim pametan i da optimizujem kod uz funckije, pa ispalo jos gore... PITANJE: - ima li neko gotovo resenje za ovo? sigurno jos neko mora da koristi ove stvari?? help? :P tip: 60 != sestdeset ![]() |
![]() |
![]() |
![]() |
#2 | |
Milan Cvejic
Wrote a book
|
![]() Citat:
resenja u smalltalku... Kôd:
PrivateNumberToWords: aNumber | rez imeBr celi cbroj tric trojka cs cd cj sl1 | aNumber isNilOrZero ifTrue: [rez := 'nula']. imeBr := (ItcLookupTable new) at: 1 put: 'jedan'; at: 2 put: 'dva'; at: 3 put: 'tri'; at: 4 put: 'četiri'; at: 5 put: 'pet'; at: 6 put: 'šest'; at: 7 put: 'sedam'; at: 8 put: 'osam'; at: 9 put: 'devet'; yourself. rez := ''. celi := aNumber integerPart. cbroj := celi itcAsInteger asLeadingZerosStringOfSize: 15. 1 to: 15 by: 3 do: [:each | tric := cbroj midString: 3 from: each. trojka := tric itcAsInteger. tric ~= '000' ifTrue: [cs := tric first itcAsInteger. cd := (tric at: 2) itcAsInteger. cj := (tric at: 3) itcAsInteger. cs = 2 ifTrue: [rez := rez , 'dve']. cs > 2 ifTrue: [rez := rez , (imeBr at: cs)]. cs = 1 ifTrue: [rez := rez , 'stotinu']. (#(2 3 4) includes: cs) ifTrue: [rez := rez , 'stotine']. cs > 4 ifTrue: [rez := rez , 'stotina']. cj isZero ifTrue: [sl1 := ''] ifFalse: [sl1 := imeBr at: cj]. cd = 4 ifTrue: [rez := rez , 'četr']. cd = 6 ifTrue: [rez := rez , 'šez']. cd = 5 ifTrue: [rez := rez , 'pe']. cd = 9 ifTrue: [rez := rez , 'deve']. (#(2 3 7 8) includes: cd) ifTrue: [rez := rez , (imeBr at: cd)]. cd = 1 ifTrue: [sl1 := ''. cj isZero ifTrue: [rez := rez , 'deset'] ifFalse: [cj = 1 ifTrue: [rez := rez , 'jeda'] ifFalse: [cj = 4 ifTrue: [rez := rez , 'četr'] ifFalse: [rez := rez , (imeBr at: cj)]]]. cj > 0 ifTrue: [rez := rez , 'naest']]. cd > 1 ifTrue: [rez := rez , 'deset']. ((#(4 10) includes: each) and: [cd ~= 1]) ifTrue: [cj = 1 ifTrue: [sl1 := 'jedna']. cj = 2 ifTrue: [sl1 := 'dve']]. rez := rez , sl1. each = 1 ifTrue: [rez := rez , 'bilion'. (cj > 1 or: [cd = 1]) ifTrue: [rez := rez , 'a']]. each = 4 ifTrue: [rez := rez , 'milijard'. (trojka \\ 100 > 11 and: [trojka \\ 100 < 19]) ifTrue: [rez := rez , 'i'] ifFalse: [cj = 1 ifTrue: [rez := rez , 'a'] ifFalse: [(cj > 4 or: [cj isZero]) ifTrue: [rez := rez , 'i'] ifFalse: [cj > 1 ifTrue: [rez := rez , 'e']]]]]. each = 7 ifTrue: [rez := rez , 'milion'. ((trojka \\ 100 > 11 and: [trojka \\ 100 < 19]) or: [cj ~= 1]) ifTrue: [rez := rez , 'a']]. each = 10 ifTrue: [rez := rez , 'hiljad'. (trojka \\ 100 > 11 and: [trojka \\ 100 < 19]) ifTrue: [rez := rez , 'a'] ifFalse: [(trojka = 1 and: [cj ~= 1]) ifTrue: [rez := rez , 'u'] ifFalse: [(cj > 4 or: [#(0 1) includes: cj]) ifTrue: [rez := rez , 'a'] ifFalse: [cj > 1 ifTrue: [rez := rez , 'e']]]]]]]. ^rez
__________________
http://weevify.com |
|
![]() |
![]() |
"Hvala" LiquidBrain za poruku: |
![]() |
#3 |
profesionalac
Professional
Datum učlanjenja: 11.10.2006
Lokacija: beograd, srbija
Poruke: 271
Hvala: 32
10 "Hvala" u 7 poruka
![]() |
![]() u zivote.. nikada ne bi mogao da radim u smallTalku
![]() ![]() hvala za resenje Liquid!! probacu ovo da pre-kodiram u PHPu, pa ako mi uspe - kacim ga ovde, for future generations.. ^_^ GPL i to ![]() a ako neko u medjuvremenu naleti na ovo, i ima PHP resenje..... skidam kapu ![]() |
![]() |
![]() |
![]() |
#4 |
Milan Cvejic
Wrote a book
|
![]() U R welcome
![]() Ako je 1 onda je dinar ako je 5 onda je dinara Pozdrav.
__________________
http://weevify.com |
![]() |
![]() |
![]() |
#5 |
novi član
Na probnom radu
Datum učlanjenja: 31.07.2007
Poruke: 23
Hvala: 0
7 "Hvala" u 5 poruka
![]() |
![]() Probaj ovo, trebalo bi da radi
Kôd:
function slova($broj) { $sZeroValue = 'nula dinara'; $StotiFormat = ' i %2.0f/100'; $Jedinice[0]=array('', 'jedna', 'dve', 'tri', 'cetiri', 'pet', 'sest', 'sedam', 'osam', 'devet', 'deset', 'jedanaest', 'dvanaest', 'trinaest', 'cetrnajest', 'petnaest', 'sesnaest', 'sedamnaest', 'osamnaest', 'devetnaest'); $Jedinice[1]=array('', 'jedan', 'dva', 'tri', 'cetiri', 'pet', 'sest', 'sedam', 'osam', 'devet', 'deset', 'jedanaest', 'dvanaest', 'trinaest', 'cetrnajest', 'petnaest', 'sesnaest', 'sedamnaest', 'osamnaest', 'devetnaest'); $Desetice= array ('','','dvadeset', 'trideset', 'cetrdeset', 'pedeset', 'sezdeset', 'sedamdeset', 'osamdeset', 'devedeset'); $Stotine= array ('', 'sto', 'dvesta', 'trista', 'cetirsto', 'petsto', 'sesto', 'sedamsto', 'osamsto', 'devetsto'); $Prilozi[1]= array("-1"=>' dinar', 'a', '', 'a', 'a', 'a', 'a'); $Prilozi[2]= array("-1"=>'hiljad', 'a', 'a', 'e', 'e', 'e', 'a'); $Prilozi[3]= array("-1"=>'milion', 'a', '', 'a', 'a', 'a', 'a'); $Prilozi[4]= array("-1"=>'milijard', 'i', 'a', 'e', 'e', 'e', 'i'); $SignPrefix=array('', 'minus '); $eCeo=abs(floor($broj)); $eStoti=substr(number_format($broj,2),-2); if (!$broj || !$eCeo) return $sZeroValue; $res=''; $s=number_format($eCeo,0,'.',''); while ((strlen($s)%3)!=0) { $s='0'.$s; }; for ($x=1;$x<=4;$x++) { $trojka=substr($s,strlen($s)-3,3); $s=substr($s,0,strlen($s)-3); if ($trojka=='') $trojka='000'; if ($trojka!='000') { if (($trojka[1]=='0') || ($trojka[1]=='1')) $temp=$Jedinice[$x % 2][($trojka[1].$trojka[2])*1]; else $temp=$Desetice[$trojka[1]].$Jedinice[$x %2][$trojka[2]*1]; $temp=$Stotine[$trojka[0]].$temp; if ((1*$trojka[1].$trojka[2])<=5) $temp.=$Prilozi[$x][-1].$Prilozi[$x][1*($trojka[1].$trojka[2])]; else $temp.=$Prilozi[$x][-1].$Prilozi[$x][5]; $res=$temp.$res; } }; return $res.' '.$eStoti.'/100 para'; }; Poslednja izmena od filjo : 25. 10. 2007. u 12:47. |
![]() |
![]() |
3 članova zahvaljuje filjo za poruku: |
![]() |
#6 |
emperor Selassie
Grand Master
|
![]() Imam ja rešenje u Paskalu, ako ti nešto znači
![]() |
![]() |
![]() |
![]() |
#7 |
Goran Pilipović
Sir Write-a-Lot
|
![]() zar se ne kaze pravilno "sedamstotina" a ne "sedamsto" ?
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
![]() |
![]() |
![]() |
#8 |
profesionalac
Qualified
Datum učlanjenja: 20.06.2007
Lokacija: Beograd
Poruke: 189
Hvala: 17
14 "Hvala" u 11 poruka
![]() |
![]() |
![]() |
![]() |
![]() |
#9 |
Milan Cvejic
Wrote a book
|
![]() Da, kaze se
![]()
__________________
http://weevify.com |
![]() |
![]() |
![]() |
#10 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Ubeđen sam da je oboje pravilno.
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Clickatell ne voli MTEL 066 brojeve | mangia | Web aplikacije, web servisi i software | 8 | 11. 03. 2009. 15:06 |
charAt() za brojeve u JS? | bodi dilber | Sva početnička pitanja | 6 | 29. 08. 2008. 12:42 |
automatsko pretvaranje cifre u pisani oblik - kako? | sevalav | Programiranje | 9 | 27. 08. 2008. 21:58 |