Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije

[ Pregleda: 7829 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stojce84
neko_neko

Član broj: 122927
Poruke: 4
*.dialup.neobee.net.



Profil

icon [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije27.11.2006. u 13:16 - pre 211 meseci
Prvi put vidim program c a profa nam vec na drugom casu dao zadatak da uradimo....
Ja ne znam da ga uradim pa trazim pomoc, mozda neko ima uradjen zadatak koji mi treba....

Zadatak: Napisati c program (kalkulator) celih brojeva sa cetiri osnovne operacije (+,-,*,:) i da se pri tome koriste tri promenljive REZULTAT, OPERACIJA, OPERAND.....

Do sada smo radili samo neke osnovne funkcije, printf, scanf i poslednje teoretski for i uslove if, if else

a program je potrebno uraditi sto jednostavnije sa osnovnim naredbama.....

pomozite mi bar sa dve operacije pa cu pokusati ostale uraditi sam


hvala....
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.smin.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije27.11.2006. u 14:47 - pre 211 meseci
Code:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int br1, br2; //operandi
    int rez;    //rezultat
    char op;    //operator

    //uzimanje brojeva i operatora
    printf("Unesi izraz za racunanje-> ");
    scanf("%d%c%d", &br1, &op, &br2);


    /*izvrsi racunanje na osnovu operatora( trebalo bi da se koristi SWITCH jer je lakse,
    al' izgleda da to niste ucili, pa cu preko IFa...) */
    if( op == '+')
        rez = br1 + br2;
    else if( op == '-')
        rez = br1 - br2;
    else if( op == '/')
        if( br2 == 0) { printf("Nemoze se deliti nulom!"); getch(); exit(1); }
        else rez = br1 / br2;
    else if( op == '*')
        rez = br1 * br2;
    else { printf("Operator mora biti + - * ili /..."); getch(); exit(1); }

    //prikazi rezultat
    printf("Rezultat od %d %c %d je %d.\n", br1, op, br2, rez);

    return 0;
}


Pozz
 
Odgovor na temu

stojce84
neko_neko

Član broj: 122927
Poruke: 4
*.dialup.neobee.net.



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije27.11.2006. u 21:15 - pre 211 meseci
program dobro izracunava vrednosti ali nakon racunanja ih ne prikazuje vec izlazi zi programa, u pitanju je kalkulator
napisacu ovde kod da bi znali o cemu se radi
probajte pokrenuti program da bi shvatili sta mi pravi problem.......

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(void)
{
int br1, br2; //operandi
int rez; //rezultat
char op; //operator

//uzimanje brojeva i operatora
printf("Unesi izraz za racunanje-> ");
scanf("%d%c%d", &br1, &op, &br2);


/*izvrsi racunanje na osnovu operatora( trebalo bi da se koristi SWITCH jer je lakse,
al' izgleda da to niste ucili, pa cu preko IFa...) */
if( op == '+')
rez = br1 + br2;
else if( op == '-')
rez = br1 - br2;
else if( op == '/')
if( br2 == 0) { printf("ne moze se deliti nulom!"); getch(); exit(1); }
else rez = br1 / br2;
else if( op == '*')
rez = br1 * br2;
else { printf("Operator mora biti + - * ili /..."); getch(); exit(1); }

//prikazi rezultat
printf("Rezultat od %d %c %d je %d.\n", br1, op, br2, rez);

system("pause");
return 0;
}




 
Odgovor na temu

sarizatatus

Član broj: 42686
Poruke: 13
195.252.90.*



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije27.11.2006. u 21:41 - pre 211 meseci
1) Nemoj otvarati novu temu za svaki detalj jednog problema vec sve u istoj temi, pravis problem moderatorima
2)Program radi lepo.


Edmondo
Prikačeni fajlovi
 
Odgovor na temu

stojce84
neko_neko

Član broj: 122927
Poruke: 4
*.dialup.neobee.net.



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije27.11.2006. u 21:58 - pre 211 meseci
pa ne znam zasto, mozda je zbog verzije programa, ja imam neki borland c++ 3.1

ali svako put sa pritiskom na enter posle unete operacije mi izdje iz programa, posle kada udjem stoji mi rezultat..
dobro to je zato sto nigde nemam clrscr.....

ako ima neka caka recite mi.....
Prikačeni fajlovi
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.smin.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije29.11.2006. u 16:31 - pre 210 meseci
Zašto si stavio "unsigned int"? :-/



Ljudi u ovom promeštanju tema, moja prosla poruka je obrisana
 
Odgovor na temu

wipeout
Renato Jovic
Split

Član broj: 70705
Poruke: 9
*.sava.sczg.hr.



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije30.11.2006. u 15:16 - pre 210 meseci
pokusaj s ovim...moguce da te zeza borland 3.1 ..mozda ne prepoznaje system("pause"); , pa sam stoga stavio getch();
nadam se da sam bio od pomoci
pozz

Code:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(void)
{
  int br1, br2; //operandi
  int rez; //rezultat
  char op; //operator

  //uzimanje brojeva i operatora
  printf("Unesi izraz za racunanje-> ");
  scanf("%d%c%d", &br1, &op, &br2);


  /*izvrsi racunanje na osnovu operatora( trebalo bi da se koristi SWITCH jer je lakse,
  al' izgleda da to niste ucili, pa cu preko IFa...) */
  if( op == '+')
    rez = br1 + br2;
  else if( op == '-')
    rez = br1 - br2;
  else if( op == '/')
    if( br2 == 0) { printf("ne moze se deliti nulom!"); getch(); exit(1); }
    else rez = br1 / br2;
  else if( op == '*')
    rez = br1 * br2;
  else { printf("Operator mora biti + - * ili /..."); getch(); exit(1); }

  //prikazi rezultat
  printf("Rezultat od %d %c %d je %d.\n", br1, op, br2, rez);

 // system("pause");
  getch();
return 0;
}

Kako glasi kletva kompjuterasa? Dabogda ti zena bila open source!
 
Odgovor na temu

Geco

Član broj: 46958
Poruke: 2
*.041net.co.yu.



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije19.03.2007. u 20:54 - pre 207 meseci
Kalkulator.Omoguciti sukcesivno izvrsavanje niza operacija sve dok se ne unese operator =
 
Odgovor na temu

lammas
djak

Član broj: 142239
Poruke: 66
62.193.129.*



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije15.04.2007. u 20:54 - pre 206 meseci
#include <stdio.h>
int main(void)
{
float a,b;
char operacija;
printf("Upisati prvi broj: ");
scanf(" %f",&a);
printf("Upisati drugi broj: ");
scanf(" %f",&b);
printf("Upisati operaciju: sabiranje(s), oduzimanje(o),\n");
printf(" mnozenje(m),deljenje(d) :");
scanf(" %c",&operacija);
if(operacija=='z')
printf("%f\n",a+b);
else if(operacija=='o')
printf("%f\n",a-b);
else if(operacija=='m')
printf("%f\n",a*b);
else if(operacija=='d')
printf("%f\n",a/b);
else
printf("Nedopustena operacija!\n");
return 0;
}
lammas
 
Odgovor na temu

cirra

Član broj: 152450
Poruke: 102
*.jotel.co.yu.



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije21.08.2007. u 20:21 - pre 202 meseci
stavi
getch();
na kraju koda
 
Odgovor na temu

butcher87

Član broj: 148902
Poruke: 32
*.3dnet.co.yu.



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije28.11.2007. u 20:25 - pre 198 meseci
Pozdrav svima! Naam se da nisam promasio temu.

Naime, moj problem je sto mi nikako ne ide da napravim kalkulator sa cetiri osnovne operacije, pojasnicu... Mogu da napravim, ako se unose samo dva broja za koja treba da izracuna rezultat. Ali, ja zelim da napravim kalkulator koji ce raditi i kada se unese vise od dva broja, npr: 2+6+78-56/87+5*9-47 ...

Evo mog neuspesnog koda:
Code:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
    unsigned int cuva1=0, cuva2=0;
    char brojevi[1000], *ptr, *cuva_vrednosti;
    int i, j, n=0;
    float rez=0.0;
    ptr=brojevi;

    printf("\nUnosite brojeve i cetiri osnovne aritmeticke operacije medju njih:\n\n");
    gets(brojevi);
    fflush(stdin);

    cuva_vrednosti=malloc(sizeof(char));
    if(cuva_vrednosti==NULL)
    {
        printf("\nNema memorije!");
        exit(1);
    }
    for(i=0; i<1000; i++)
    {
        if(*(ptr+i)>='0' && *(ptr+i)<='9')
        {
            n++;
            cuva1=((int)*(ptr+i)-(int)'0');
            cuva_vrednosti[j++]=cuva1;
            cuva_vrednosti=realloc(cuva_vrednosti,(2+n)*sizeof(char));
        }
        else if(*(ptr+i)=='+')
        {
            cuva2=atoi(cuva_vrednosti);
            rez+=(float)cuva2;
            j=0;
            n=0;
            free(cuva_vrednosti);
            cuva_vrednosti=malloc(sizeof(char));
            if(cuva_vrednosti==NULL)
            {
                printf("\nNema memorije!");
                exit(1);
            }
        }
        else if(*(ptr+i)=='-')
        {
            cuva2=atoi(cuva_vrednosti);
            rez-=(float)cuva2;
            j=0;
            n=0;
            free(cuva_vrednosti);
            cuva_vrednosti=malloc(sizeof(char));
            if(cuva_vrednosti==NULL)
            {
                printf("\nNema memorije!");
                exit(1);
            }
        }
        else if(*(ptr+i)=='/')
        {
            cuva2=atoi(cuva_vrednosti);
            rez/=(float)cuva2;
            j=0;
            n=0;
            free(cuva_vrednosti);
            cuva_vrednosti=malloc(sizeof(char));
            if(cuva_vrednosti==NULL)
            {
                printf("\nNema memorije!");
                exit(1);
            }
        }
        else if(*(ptr+i)=='*')
        {
            cuva2=atoi(cuva_vrednosti);
            rez*=(float)cuva2;
            j=0;
            n=0;
            free(cuva_vrednosti);
            cuva_vrednosti=malloc(sizeof(char));
            if(cuva_vrednosti==NULL)
            {
                printf("\nNema memorije!");
                exit(1);
            }
        }
        else if(ptr+i==NULL)
            break;
        else
        {
            printf("\nUneli ste pogresan operator, ili slovo!!");
            exit(1);
        }
    }
    printf("\n\nRezultat:\t%f",rez);
    free(cuva_vrednosti);
    system("PAUSE");
    return 0;
}


Ako neko ima ideju kako, ili zna kako da uradi, bio bih mu veoma zahvalan!

 
Odgovor na temu

Nemanja.Ciric
web dizajner/programer, Niteoweb
Novi Sad/Subotica

Član broj: 163398
Poruke: 63
*.dynamic.sbb.co.yu.

Jabber: serj.cobain@gmail.com


Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije29.11.2007. u 02:57 - pre 198 meseci
mnogo komplikovano... pogledaću tvoj kod detaljnije kasnije (sada me mrzi) samo bih dao par brzih komentara:

stojce84, odgovore ne vidis iz prostog razloga što nisi stisnuo taster za gledanje konzole. Tekst je ispisan, samo što se program po ispisu završava. Mislim da se u tvom programu sa F5 gleda konzola. Ovaj kod:

Code:

    //prikazi rezultat
    printf("Rezultat od %d %c %d je %d.\n", br1, op, br2, rez);

    return 0;


sam po sebi apsolutno ne daje šansu da se rezultat pročita ako program nije pokrenut u DOS-u ili ako ne pogledaš konzolu po njegovom završavanju. Što reće cira ne mre to bez getch() ^_^.

butcher-u:
Preporučujem čitanje karakter po karakter u pseudo-realnom vremenu i kontekstna analiza (analiza u odnosu na prethodno uneseno). Tako inače rade kalkulatori. Znači, učitaš karakter, izbrišeš ekran, proveriš jel' sve OK, ispišeš ga na ekran, ako ima problema još ispišeš poruku o grešci i izbrišeš zadnji karakter.

Ako pustiš čoveka da unese šta hoće moraš DEBELO da proveravaš zbog grešaka i meni to deluje krajnje nezgodno. Mada, možda bi neki rekli da je lakše uočiti grešku (to jest naći je, jednostavnija je logika koda) ako imaš celu stvar nego ako imaš samo deo. Ako ništa drugo, bolje grešku naći odmah i omogućiti ispravku na licu mesta, nego posle unošenja kilometarskog izraza izbaciti poruku o grešci i aj ovo nanovo...

NĆirić
 
Odgovor na temu

butcher87

Član broj: 148902
Poruke: 32
*.3dnet.co.yu.



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije29.11.2007. u 10:45 - pre 198 meseci
Hvala na preporuci, znaci mi veoma! E sad, da li bi mogao da mi pojasnis termine "pseudo realno" i "kontekstna analiza"? Pocetnik sam, i zato ne razumem. Hvala!
 
Odgovor na temu

Nemanja.Ciric
web dizajner/programer, Niteoweb
Novi Sad/Subotica

Član broj: 163398
Poruke: 63
*.ns.ac.yu.

Jabber: serj.cobain@gmail.com


Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije29.11.2007. u 16:41 - pre 198 meseci
Pseudo-realno vreme - nije u realnom vremenu, možda sam pogrešno formulisao termin, ali hteo sam da naznačim da izgleda kao da unos ide u realnom vremenu, ali ne ide, jer se ispravnost svakog karaktera proverava pošto se unese i u zavisnosti od toga odlučuje šta se radi sa njim.

Kontekstna analiza - analiziraš svaki uneti karakter u KONETKSTU svih prethodnih kada gledaš da li je ispravan, a u KONTEKSTU celog izraza kada računaš njegovu vrednost, a ne samog za sebe.

Dakle ako ja u tvom hipotetičkom programu unesem sledeći niz karaktera sa tastature: '1','*','/'; tvoj program treba da me zaustavi, jer to deljenje, posmatrano samo za sebe ne može da bude ispravano ili neispravano, ali ako je pre njega već bila neka operacija (u ovom slučaju množenje) onda imaš grešku (čemu je jednak izraz "1:/2" ?!). Dakle znak podeljeno se posmatra u konektstu (u celini, u zavisnosti od, u odnosu na) svih ostalih znakova unesenih pre njega.

Dakle morao bi da definišeš pravila na osnovu matematike (jedino plus i minus od operacija mogu da stoje u velikom nizu jedan pored drugog i onda se svi sem prvog (ili zadnjeg, zavisi kako odlučiš da grupišeš) budu tretirani kao unarni operatori znaka (recimo "1+-+-+-+-+-+-+-+-+-+-++++----2" se računa tako što sve pluseve sem prvog zanemariš (posmatraš ih kao operatore koji ne menjaju ništa, pod uslovom da ne uvedeš operator inkrementa (++) i svaka dva minusa izbaciš (tu minus tretiraš kao operaciju koja menja znak operanda desno od nje, tako da ako dva puta promeniš znak, dobiješ isti znak) tako da rezultat ispadne 3 (prvi plus je binarni operator (ima dva operanda) ostali se ne gledaju i ima paran broj minusa koji se potiru) - dakle sve se posmatra u kontekstu svega ostalog :)). Ovo je dosta velik posao, preporučujem ti da ostaneš na četiri osnovne operacije i da ne koristiš zagrade (dakle sve sem broja i znakova +,-,*,/,= smatraš greškom). Eventualno da ubaciš neke tastere da predstavljaju rad sa memorijom (kao na digitronu memory store, memory reset, memory add).
NĆirić
 
Odgovor na temu

butcher87

Član broj: 148902
Poruke: 32
*.3dnet.co.yu.



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije29.11.2007. u 19:15 - pre 198 meseci
HVALA majstore! Ne znam kako da ti se oduzim... RESPECT!
 
Odgovor na temu

g1l3
N.S

Član broj: 174355
Poruke: 3
*.static.sbb.rs.



Profil

icon Re: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije25.10.2008. u 11:25 - pre 187 meseci
E imam problem..isto moram da napravim kalkulator al da unosim npr 5+4-7*7/1 itd...kao sto je prethodni lik postao...ugl eo koda
Code:

#include <stdio.h>


int main()
{
    //definisanje promenjivih
    char operacija;
    double operand1, operand2 , rez, rez1=0;



        printf("\n\t\t Unesite izraz =");


        do{

            scanf("%lf", &operand1);
            scanf("%c", &operacija);



        switch(operacija)
        {
            case '+':   scanf("%lf", &operand2);
                        rez=operand1+operand2;
                        break;
            case '-':   scanf("%lf", &operand2);
                        rez=operand1-operand2;
                        break;
            case '/':   scanf("%lf", &operand2);
                        rez=operand1/operand2;
                        break;
            case '*':   scanf("%lf", &operand2);
                        rez=operand1*operand2;
                        break;
        }
        rez1+=rez;
        rez=0;

        }while(operacija!='q');

        printf("rez je %f", rez1);



}


ne smem da koristim nizove za to..samo if else..switch itd..znaci osnovno ono...ovo sto sam ja napravio mislim da je dobra logika..al mi ne radi...pa sada ako moze neka pomoc da otklonim problem..da popravim nesto itd...svaka sugestija je dobrodosla...hvala vam unapred
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Kalkulator celih brojeva sa cetiri osnovne operacije

[ Pregleda: 7829 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.