Pogledaj cijelu verziju : moj prvi c++ program :D :P
mozda se neko sjeca da sam prije nekih pol godine postavljao pitanja o programiranju
nisam imao vremena zbog skole pa cu sad iskoristit ljeto
znaci poceo sam jucer nes radit u c++
uzeo sam knjigu i pronasao neke tutove
ali posto vec znam osnove jer sam nes malo radio u pascalu
i znam princip i teoriju programiranja
sam sve to ljepo pospremio
i otvorio dev-c++
sta je bolje raditi za pocetak nego kalkulator
i tako sam poceo
nekako se snalazio
pohvatao usput
i napravio ovo :D
#include <iostream>
using namespace std;
int main (void)
{
int odabir;
cout << "stisnite 1 za pocetak koristenja programa" << "\n";
cin >> odabir;
while (odabir == 1)
{
float rezultat;
float prvi_broj;
float drugi_broj;
int operacija;
cout << "odaberite racunsku operaciju" << "\n" << "za zbrajanje stisnite 1" << "\n" << "za oduzimanje stisnite 2" << "\n" << "za mnozenje stisnite 3" << "\n" << "za djeljenje stisnite 4" << "\n";
cin >> operacija;
if (operacija == 1 )
{
cout << "upisite prvi broj" << "\n";
cin >> prvi_broj;
cout << "upisite drugi broj" << "\n";
cin >> drugi_broj;
rezultat = prvi_broj + drugi_broj;
cout << "rezultat je " << rezultat << "\n";
}
else if (operacija == 2 )
{
cout << "upisite prvi broj" << "\n";
cin >> prvi_broj;
cout << "upisite drugi broj" << "\n";
cin >> drugi_broj;
rezultat = prvi_broj - drugi_broj;
cout << "rezultat je " << rezultat << "\n";
}
else if (operacija == 3 )
{
cout << "upisite prvi broj" << "\n";
cin >> prvi_broj;
cout << "upisite drugi broj" << "\n";
cin >> drugi_broj;
rezultat = prvi_broj * drugi_broj;
cout << "rezultat je " << rezultat << "\n";
}
else if (operacija == 4 )
{
cout << "upisite prvi broj" << "\n";
cin >> prvi_broj;
cout << "upisite drugi broj" << "\n";
cin >> drugi_broj;
rezultat = prvi_broj / drugi_broj;
cout << "rezultat je " << rezultat << "\n";
}
else
cout << "unjeli ste nepostojeci odabir" << "\a" << "\n";
cout << "zelite li nastaviti s radom ili izaci iz programa?" << "\n" << "za nastavak stisnite 1" << "\n" << "za izlaz stisnite 0" << "\n";
cin >> odabir;
}
cout << "za izlaz iz programa stisnite bilo koju tipku" << "\n";
char kraj;
cin >> kraj;
return 0;
}
znam da nije bas najbolje rjesenje
jer neke stvari nisam znao pojednostavniti tako da ima i visaka
zato sam i stavio ovo ovdje
da mozete malo komentirati
i reci mi di mogu srezati visak koda
i sto bi bilo bolje drugacije napraviti
da bude malo kompaktnije :D
umjeso if-else-a, stavi switch(rezultat), i u njega stavi samo različitosti (rezultat = prv + drugi), zamijeni "char kraj; cin >> kraj;" sa funkcijom getch() u conio.h
jooj nemoj tako ucenim rijecima
:D :D
ovo za switch sam bas danas gledao nesto
al jos nisam isprobao pa moram vidit
a ovo za kraj te nisam skuzio
vidio sam da za tu pauzu postoji vise rjesenja al ovo je jedino koje sam skuzio
iako
posto imam ovaj red ispred mozda mi je ta pauza potpuno nepotrebna
i ovo na pocetku di trazi da se stisne 1
kod pokretanja
mislim da bi to mogao izbacit
ako stavim da je ta variabla unaprijed određena
edit:
maknuo sam na pocetku ovo zahtjevanje da se stisne 1
maknuo sam na kraju ovu 'pauzu'
stavio sam switch umjesto if-else if-else
u ovom slucaju ne vidim neku razliku
ali pretpostavljam da je switch bolji zbog 'propadanja'
nego mogu li ovo
cout << "stisni +";
cin >> plus;
i koja je to vrsta varijable onda
char, string???
nagađam da je string
switch radi na gotovo jednak način kao if, koristiš ga kad se s njime dobije razumljiviji kod (kao u tvom slučaju)
getch() je funkcija koja će od korisnika zatražiti da pritisne bilo koju tipku i tek onda omogućiti nastavak rada programa, upravo ono što tebi treba
da bi ju koristio moraš uključiti zaglavlje conio.h naredbom koju ćeš dodati na sam početak koda: include <conio.h>;
postoje i alternative, no ova funkcija je najćešće korištena
cout << "stisni +";
cin >> plus;
ovisi kojeg je tipa "plus", cin nemože samo tako mijenjati vrstu varijable
znam da nemoze mijenjati vrstu varijable
al mene zanima kojoj vrsti varijable mogu pridruziti simbole +, -, *, /
jer to nisu ni slova ni brojevi :?
fps_gamer
08-07-2008, 17:41
char meni se cini...
char zbrajanje = '+'
da samo sto nebi odmah odredio nego bi se to trebalo ucitati
znaci
(stisne se prvi broj)
cin >> prvi_broj
(stisne se +)
cin >> plus
...
samo kad sam stavio da je ta varijabla char
mi nije radilo
mozda sam negdje drugdje falio pa cu probat opet
znam da nemoze mijenjati vrstu varijable
al mene zanima kojoj vrsti varijable mogu pridruziti simbole +, -, *, /
jer to nisu ni slova ni brojevi :?
to su znakovi (char==znak), i spremaju se u char varijablu
naravno, moguće je i zakomplicirati sa stringom ali nema potrebe
znaci negdje sam drugdje falio
jer sam probao char i nije radilo
i onda sam nes pokusavao preko stringa ali mi stringovi jos nisu bas jasni pa nsaim uspio
nazalost je nemam
jer nisam mogao compileat pa sam pobrisao to i vratio kako je bilo
probam sutra opet
pa ako opet ne budem mogao cu ovdje okacit
moguce da sam negdje falio u sintaxi ili necem slicnom
evo jutros sam uhvatio vremena napisati kod ispocetka
ovako je po meni puno jednostavnije a i bolje
jer ima mogucnost racunanja s vise od 2 broja (kad bi radilo) :D
osim toga nije onako zamorno za koristiti jer ne trazi sve one 'odabire'
nego se samo koriste broijevi i znakovi (+, -, *, /, =)
#include <iostream>
#include <conio.h>
using namespace std;
int main ()
{
float prvi_broj;
float drugi_broj;
float rezultat =0;
char operacija;
cin >> prvi_broj;
rezultat = rezultat + prvi_broj;
cin >> operacija;
while (operacija != '=')
{
switch (operacija)
{
case '+';
cin >> drugi_broj;
rezultat = rezultat + drugi_broj;
break;
case '-';
cin >> drugi_broj;
rezultat = rezultat - drugi_broj;
break;
case '*';
cin >> drugi_broj;
rezultat = rezultat * drugi_broj;
break;
case '/';
cin >> drugi_broj;
rezultat = rezultat / drugi_broj;
break;
}
cin >> operacija;
}
cout << "Rezultat je : " << rezultat << "\n";
getch ();
return 0;
}
na sva 4 mjesta gdje je koristen 'case' mi javlja gresku kad pokrenem compiler
expected `:' before ';' token
zato što treba doći ":" a ne ";", samo zamijeni ta 2 znaka
fps_gamer
14-07-2008, 12:12
sad ce pitati gdje... poslije case...
"rezultat = rezultat + prvi_broj;" je isto što i "rezultat = prvi_broj;"
cin >> drugi_broj; stavi prije switcha jer se uvijek ponavlja
Plexihack
14-07-2008, 12:25
"rezultat = rezultat + prvi_broj;" je isto što i "rezultat = prvi_broj;"
cin >> drugi_broj; stavi prije switcha jer se uvijek ponavlja
"rezultat = rezultat + prvi_broj;" je isto što i "rezultat +=Sprvi_broj;"
k,10x,bye ^^
da, ali pogledaj njegov primjer - rezultat je 0 pa nema smisla pribrajati nulu
fps_gamer
14-07-2008, 13:28
nisam gledao bas detaljno kod ali mozda mu poslije zatreba zbrajanje rezultata koji nece biti 0...
ofc, ali za ono što je on htio nije potrebno ;)
hvala na pomoci
nemogu vjerovati sto sam falio
bio sam uvjeren da je ; (neznam zasto)
to sam sredio
i jos sam malo uredio neke sitnice
jos moram samo napraviti
da se moze koristiti vise puta za redom
pa me zanima vezano uz to
razmisljao sam da na kraju pita dali se zali nastaviti
pa napraviti jos jednu while petlju
ali me zanima postoji li jos neki nacin da napravim reset
btw
zasto kod nekih biblioteka na kraju ima .h
??
Plexihack
14-07-2008, 16:59
Hmmm...ja sam u svoj kalkulator bio ubacio funkcije i njih kombinirao sa switchevima,tako da bi se vratilo na prvu funkciju ( mainfun(); )
posto te nisam ni razumio
nevjerujem da cu uspjet to napravit
:D :D
Plexihack
14-07-2008, 20:22
xD
Pogledaj funkcije,lakše ćeš shvatit...
A evo ti sa Do-while l00pom
#include <cstdlib>
#include <iostream>
using namespace std;
int brop; // Odabir
float br1; //Prvi broj
float br2; //Drugi broj
float rezultat; // Rezultat
char odabir; //Odabir loopa
int main(int argc, char *argv[])
{
cout << "Pozdrav!\nDobrodosli u Old Skool Calculator v0.02\n";
do {
cout << "Odaberite sto zelite raditi:\n";
cout << "1 - Zbrajati\n2 - Oduzimati\n3 - Mnoziti\n4 - Dijeliti\n";
cout << "Molimo upisite broj operacije.\n";
cout << "Vas odabir je? ";
cin >> brop;
cout << "\n";
//Zbrajanje
if (brop==1)
{cout << "Odabrali ste zbrajanje.\nUpisite prvi pribrojnik: ";
cin >> br1;
cout << "\nUpisite drugi pribrojnik: ";
cin >> br2;
rezultat = br1 + br2;
cout << "\n\n Rezultat je = " << rezultat << "\n";}
//Množenje
else if (brop==3)
{cout << "Odabrali ste mnozenje.\nUpisite prvi faktor: ";
cin >> br1;
cout << "\nUpisite drugi faktor: ";
cin >> br2;
rezultat = br1 * br2;
cout << "\n\n Rezultat je = " << rezultat << "\n";}
//Oduzimanje
else if (brop==2)
{cout << "Odabrali ste oduzimanje.\nUpisite umanjenik: ";
cin >> br1;
cout << "\nUpisite umanjitelj: ";
cin >> br2;
rezultat = br1 - br2;
cout << "\n\n Rezultat je = " << rezultat << "\n";}
//Dijeljenje
else if (brop==4)
{cout << "Odabrali ste dijeljenje.\nUpisite djeljenik: ";
cin >> br1;
cout << "\nUpisite djeljitelj: ";
cin >> br2;
rezultat = br1 / br2;
cout << "\n\nRezultat je = " << rezultat << "\n";};
//Izbor
cout << "\nŽelite li opet racunati?Ako da upisite D,a ako ne upisite N : ";
cin >> odabir;
cout << "\n" ;
} while (odabir=='D');
//pauza :D
system("PAUSE");
return EXIT_SUCCESS;
}
ako se ne varam ovako je nekako izgledala moja prva verzija
ali je nedostatak bio sto se moglo racunati samo sa 2 broja
meni se cini da je ovo sto sam sad napravio dosta jednostavnije
ali imam 2 pitanja
prvo pretpostavljam da je razlika između while i do-while
u tome sto u prvom slucaju odmah treba odrediti varijablu na kojoj se temelji while
dok se u drugom slucaju ta varijabla moze odrediti na kraju
i druga stvar so me zanima je cemu sluzi cstdlib biblioteka
jos uvijek me zanima ono iz prethodnog posta sto se tice .h u nazivima nekih biblioteka
i nacina reseta
evo mislim da sam gotov
trenutno nemam ideja kako bi jos mogao poboljsati kalkulator
kad se sjetim jos necega cu dodati
#include <iostream>
#include <conio.h>
using namespace std;
int main ()
{
float prvi_broj;
float drugi_broj;
float rezultat;
char operacija;
char prekid;
do
{
rezultat =0;
cin >> prvi_broj;
rezultat = rezultat + prvi_broj;
cin >> operacija;
while (operacija != '=')
{
cin >> drugi_broj;
switch (operacija)
{
case '+':
rezultat = rezultat + drugi_broj;
break;
case '-':
rezultat = rezultat - drugi_broj;
break;
case '*':
rezultat = rezultat * drugi_broj;
break;
case '/':
rezultat = rezultat / drugi_broj;
break;
}
cin >> operacija;
}
cout << "Rezultat je : " << rezultat << "\n";
cout << "Zelite li nastaviti s radom? D/N" << "\n";
cin >> prekid;
} while (prekid == 'D');
getch ();
return 0;
}
koliko sam vidio sve funkcionira onako kako zelim
a evo i link za skinuti pa mozete i sami isprobati
http://rapidshare.com/files/129706234/calculator_1_0.exe.html
sto mi preporucujete za sljedeci 'projekt' :D
znate li mozda neku stranicu s slicnim zadatcima ali malo određenijima??
http://programiranje.big-forum.net/prog ... io-t16.htm (http://programiranje.big-forum.net/programski-jezik-c-f1/skupina-zadataka-za-vjezbu-1-dio-t16.htm)
http://programiranje.big-forum.net/prog ... io-t17.htm (http://programiranje.big-forum.net/programski-jezik-c-f3/skupina-zadataka-za-vjezbu-2-dio-t17.htm)
imaš brdo prilično jednostavnih zadataka...
@RZR
1.
while prilikom svake iteracije petlje prvo evoluira logički uvjet a tek onda izvršava kod, dok do-while radi obrnuto
npr.
do
{
cout << "abc";
} while (0 > 1);
će ispisati "abc" jer se uvjet provjeravao tek nakon izvršavanja koda unutar petlje
while (0 > 1)
{
cout << "abc"
}
nikad neće ispisati "abc"
2.
http://www.cplusplus.com/reference/clibrary/cstdlib/
3.
misliš na pravi restart, da se program zatvori i ponovno pokrene?
Plexihack
16-07-2008, 10:20
Eh,sad bi ti postao primjer da vidiš kako sam ja to napravio,ali nemogu nać...
Ugl.
funkcija kalkulator()
{
blablabla;
kalkulator();
};
int main()
{
kalkulator();
system("PAUSE");
return 0;
}
Jutro je,pa neznam dali si primjer valja šta :D
Ugl.Kalkulator funkcija,na kraju svakog switcha će opet pokretat sama sebe.
Najbolje je da postaviš pitanje na kraju dali opet pokrenuti i onda if uvjet prije funkcije.
sto se tice restarta
ne treba mi da se gasi i ponovo pokrece
znam napraviti restart if funkcijom
ali su me zanimali i drugi nacini
@plexihack
zanimljivo je ovo s funkcijama
ali nisam siguran da sam skuzio
bilo bi dobro ako nadjes neki primjer
ali ako ne nema veze
skuzit cu kad bude vrijeme za to
evo samo da se javim
da znate da nisam odustao
trenutno u skoli radimo pa sam zato c++ stavio na pauzu
vBulletin v4.2.5, Copyright ©2000-2024, Jelsoft Enterprises Ltd.