[ jasna7b @ 30.12.2003. 09:11 ] @
Pozdrav svima, Trebao bi mi kod za ispis brojeva u tekst za seminar pa ako netko ima bila bih zahvalna. Sve najbolje u Novoj godini !!! |
[ jasna7b @ 30.12.2003. 09:11 ] @
[ Goran Rakić @ 30.12.2003. 13:09 ] @
imaš na praktikum.co.yu rešenje za ms excell u VBA, ali algoritam je taj. U principu ti trebaju leksička pravila za izgovor i onda kreneš sa celobrojnim deljenjem najvećim stpenom 10-tke (10 na broj cifara) i onga dobiješ broj hiljada, stotina hiljada, miliona... pa onda delš sa za stepen manjim brojem... Uvek paziš da ide 1 hiljada, 2-4 hiljade, 5-9 hiljada.
[ blaza @ 30.12.2003. 19:47 ] @
Evo, danas sam dobre volje, pa cu ti pomoci.
Ali, nemoj samo da promenis hiljade u tisuce i cife u znamenke, vec malo prouci program, princip rada i sl. Na kraju krajeva, cilj seminarskog rada je da nesto naucis. Napisao sam ovo na brzaka, i koliko sam probao radi, osim sto ima jedan bug, koji me mrzi da prepravim. Naime, program koristi \b karaktere, odnosno backspace da ispravi npr. hiljada u hiljade, znaci postupak je sledeci: ispisuje se hiljada, \b, e, respektivno. Ako se desi da npr. po ispisu hiljada program predje u novi red, backspace karakter koji sledi nece vratiti kurzor u prosli red, vec ce ostati u mestu, pa ce doci do greske u ispisu. Ovo mozes korigovati na vise nacina... Code: #include <iostream.h> enum Cifre {MILIJARDE, MILIONI, HILJADE, JEDINICE}; char* cCifre[10] = "" ,"jedan", "dva", "tri", "cetiri", "pet", "sest", "sedam", "osam", "devet"}; char* cStotine[10] = {"", "\b\b \b\b\b\b\b", "\be", "", "\b\b\bri", "", "\b\b", "", "", ""}; char* cDesetice[10] = {"", "\b\b\b\b\b", "", "", "\b\b\br", "\b", "\b", "", "", "\b"}; char* cNaest[10] = {"", "\b", "", "", "\b\b\br", "", "", "", "", ""}; char* cMilijarda = "iaeeeiiiii"; char* cMilion = "a aaaaaaaa"; char* cHiljada = "aaeeeaaaaa"; void NapisiGrupu(int nG, Cifre eCifre) { int nTemp, nTemp2; if(nG) { nTemp = nG / 100; nTemp2 = nG; if(nTemp) cout << cCifre[nTemp] << cStotine[nTemp] << "sto"; nTemp = (nG / 10) % 10; nTemp2 %= 100; if((nTemp > 1 ) || (nTemp2 == 10)) cout << cCifre[nTemp] << cDesetice[nTemp] << "deset"; nTemp2 %= 10; if((nTemp == 1) && (nTemp2)) { cout << cCifre[nTemp2] << cNaest[nTemp2] << "naest"; nTemp2 = 5; } else if(nG % 100) cout << cCifre[nTemp2]; if((eCifre == MILIJARDE) || (eCifre == HILJADE)) switch(nTemp2) { case 1: cout << "\b\bna"; break; case 2: cout << "\be"; } switch(eCifre) { case MILIJARDE: cout << " milijard" << cMilijarda[nTemp2]; break; case MILIONI: cout << " milion" << cMilion[nTemp2]; break; case HILJADE: cout << " hiljad" << cHiljada[nTemp2]; } } cout << " "; } void NapisiBroj(unsigned long ulBr) { if (ulBr) { NapisiGrupu(ulBr / 1000000000 , MILIJARDE); NapisiGrupu((ulBr / 1000000) % 1000 , MILIONI); NapisiGrupu((ulBr / 1000) % 1000 , HILJADE); NapisiGrupu(ulBr % 1000 , JEDINICE); } else cout << "nula"; } int main(int argc, char* argv[]) { unsigned long ulX; cout << "\nUnesi broj (0<x<4294967296) :"; cin >> ulX; cout << "\n"; NapisiBroj(ulX); cout << "\n"; return 0; } [ Rapaic Rajko @ 06.01.2004. 08:29 ] @
Odzvanja li to gromoglasno "hvala"...?
:)))) Rajko [ leka @ 21.01.2004. 10:28 ] @
Dev-C++ i VisualC++ se mnogo razlikuju, i koncepcijski a i na druge
nacine. Predlazem ti da pocnes prvo da ucis osnove C++ jezika - za ovo ti moze posluziti bilo kakav IDE, pa cak i notepad (onda moras da naucis kako da kompajliras program :). Ako zelis, mogu napisati jedan maleni tekst na ovu temu i "okaciti" negde... [ vrag NL @ 21.01.2004. 18:06 ] @
ok uradi to PLZ
ali ja vec znam neke gluposti u dev c++ znam napraviti digitron i tako nesto [ blaza @ 22.01.2004. 03:24 ] @
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|