 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Dauče Neznanec

Pridružen-a: Tor 26 Dec 2006 18:52 Prispevkov: 1 Aktiv.: 0.00
|
Objavljeno: Tor Dec 26, 2006 7:00 pm Naslov sporočila: Euro kalkulator na ARM-u |
|
|
Pozdravljeni!
sem nov na forumu, tako da upam, da sem dal temo pod taprav podforum
zdej za projekt na FE delam evro kalkulator, s pomočjo ŠARM-a.
ker sem bolj amaterski tip v programiranju, se mi je porodila težava in sicer kako vpisati številke večje od 10, ketere so prikazane na lcdju? tipkovnico sem nekako uspel usposobiti da dela numerični del, glede tega izpisa imam pa težave.
bom pokazu ta del kode kjer je ta izpis in bi lepo prosu kakšnega majstra za pomoč.
Koda: |
while(1)
{
enice:
gotoxy(1, 1);
printf("euro: ");
st=tipka();
gotoxy(1, 2);
printf("sit: ");
if(st!=12)
{
gotoxy(6, 2);
euro = st*239.64;
printf("%4.2f", euro);
}
if(euro == 0) // če ni pritisnjena še nobena tipka pojdi na začetek (enice)
goto enice;
/*desetice:
gotoxy(8, 1);
st1=tipka();
if(st1!=12)
{
gotoxy(6, 2);
euro10 = (euro*10)+(st1*239.64);
printf("%6.2f", euro10);
}
if(euro10 == 0) // če ni pritisnjena še nobena tipka pojdi na začetek (enice)
goto desetice; */
}
return 0; |
Pravila na forumu! |
|
Nazaj na vrh |
|
 |
chaos Član


Pridružen-a: Sob 16 Sep 2006 22:12 Prispevkov: 1063 Aktiv.: 4.66 Kraj: Zagorje ob Savi
|
Objavljeno: Sob Jan 06, 2007 1:28 am Naslov sporočila: |
|
|
Katere 'numerične' tipke pa misliš?
Mogoče bi program zastavil malo drugače:
z dvema tipkama (+/-) izbereš vrednost, s še eno tipko dodaš ničlo (pomnožiš z deset), s še eno tipko pa izvedeš preračun.
Tako imaš samo eno spremenljivko, v kateri držiš vrednost v €, moraš jo pa vsakič na novo spremeniti v string in izpisati ...
Tako se ti ne bo treba posebej ukvarjati z enicami, deseticami, stoticami ... |
|
Nazaj na vrh |
|
 |
blueH2O Član


Pridružen-a: Sob 30 Sep 2006 9:23 Prispevkov: 71 Aktiv.: 0.31
|
Objavljeno: Sob Jan 06, 2007 6:13 pm Naslov sporočila: |
|
|
Dauče, oprosti za pozen odgovor. Prazniki so bili dolgi. Sem poskusil kodo poenostaviti, pa mi ni uspelo. Ko boš imel več izkušenj s tem, lahko uporabiš druge trike in koda bo preglednejša, npr. uporaba svojih funkcij, switch stavek.
Začetnikom priporočam Notepad++ za urejanje kode, saj postane preglednejše (barve). WinIDEA ima slab urejevalnik teksta.
Verjetno ta koda ni rešitev, ki si jo pričakoval... vsaj deluje. Komentarji so pa za čistega začetnika, vem da je pol nepotrebnih.
Koda: |
//euro calculator, za poljubno število mest
#include "io.h"
int main()
{
_KeyInit();
_LCDInit();
clrscr(); //na začetku pobriše zaslon, če je bilo še kaj od prej...
/*
na Š-ARMu imaš tipke od '0' do '3'
'0' naj bo -1
'1' naj bo +1
'2' naj pomakne za eno mesto naprej
'3' naj izračuna
*/
int tolarji;
int euri = 0; //na začetku je 0 EUR
int mesta = 1; //na začetku so samo enice
int cifra = 0; //prva cifra, ki se pokaže je 0... bodi pozoren, na zaslonu moraš prikazat znak (char) 0
int pozicija = 15; //začetna pozicija, kjer spreminjaš eure... enice so daleč na desni
char tipka;
gotoxy(1,1);
printf("EUR: "); //izpiši na začetku
while(1)
{
tipka = getch(); //preberi tipko
if(tipka == '0') //prva tipka na ŠARMu pomeni -1
{
gotoxy(pozicija,1); //skoči na pozicijo, kjer je cifra
cifra = cifra - 1; //zmanjšaj cifro za ena
if(cifra < 0) cifra = 9; //če je cifra manjša od 0, skoči na 9
printf("%d", cifra);
}
if(tipka == '1') //+1
{
gotoxy(pozicija,1);
cifra = cifra + 1;
if(cifra > 9) cifra = 0; //če je več od 9, skoči na 0
printf("%d", cifra);
}
if(tipka == '2') //pomik naprej - desetice, stotice ali karkoli pač je...
{
euri = euri + cifra * mesta;
mesta = mesta * 10; //če so bile prej enice, bojo sedaj desetice... če so bile prej desetice, bojo sedaj stotice...
pozicija = pozicija - 1; //izpisuj cifro, ki jo spreminjaš, na naslednje mesto (levo od prej)
gotoxy(pozicija,1);
cifra = 0;
printf("%d", cifra);
}
if(tipka == '3')
{
euri = euri + cifra * mesta;
tolarji = 240 * euri; //preračunaj eure v tolarje... 1 EUR je približno 240 SIT - celo število, da se izogneš težavam
gotoxy(1,2);
printf("SIT: %d", tolarji); //izpiši v drugo vrstico
while(1); //program se tukaj konča... non-stop se zanka vrti v prazno (dokler ne pritisneš reset)
}
}
return 0;
}
|
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 495 dni
Powered by phpBB © 2001, 2005 phpBB Group
|