[Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / )

  • 19 odgovora
  • 7.718 pregleda
[Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 02.11.2007. u 09:30 · pre 231 meseci #1
Napisati C program koji predstavlja kalkulator sa 4 osnovne operacije (+ - * / ). Kalkulator realizovati pomocu promenljive operand1 i operand2.Obezbediti sekvencijalno ucitavanje niza operacija sve dok se ne unese operacija =.

Mogu da koristim if i while petlje. For ne!

Ne razumem kako da uradim. Dal ovako nekako:

operand1= neka vrednost
operacija= neki znak
operand2= neka vrednost

ako je ucitano = onda kraj a ako ne ponovo

Ovakav nacin mi je glup ne razumem kako treba ucitavati vrednosti.
Potpis
Eureka!

MILAN DJUKIC
D J U K A
Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 03.11.2007. u 15:47 · pre 230 meseci #2
Logican nacin...

Ucitas prvu vrednost.

Udjes u while petlju.

Sad ucitavas operator i ako operator nije =, ucitavas drugi operand... Rezultat stavljas u prvi operadand i ides na pocetak petlje...
Potpis
EOF
Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 04.11.2007. u 18:26 · pre 230 meseci #3
treba ga implementirati preko do while ,

to je naglasio asistent cini mi se

i savet dugare , kad vec postavljas takva pitanja , ukloni svoje pravo ime iz profila :)))

i asistenti imaju internet :) da ne nabasaju na nesto interesantno :)

Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 08.11.2007. u 21:29 · pre 230 meseci #5
Ma uradio sam program sa svim mogucim zastitama cak i vise nego sto treba. Dobio sam 5+ poena od mogucih 5.

@EArthquake

Dobro si mi to predlozio. Koristicu drugo ime :)
Potpis
Eureka!

MILAN DJUKIC
D J U K A
Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 02.11.2008. u 15:58 · pre 218 meseci #7
imam i ja jedan problem sa kalkulatorom.
Moj mora da mnozi i deli samo uz pomoc operacija + i - , ali nikako da ga nateram da mi to i uradi.
moze li mi neko pomoci?
Pokusavam kroz switch, ali nikako nece da izbaci rezultat

Code:

#include <stdio.h>
main()
{
    float a, b, rez;
    char op;
    printf(" + \n -\n /\n *\n");
    scanf("%f%c%f",&a,&op,&b);
    switch(op)
    {
    case'+':
        printf("%f\n",a+b);
        break;
    case'-':
        printf("%f\n",a-b);
        break;
    case'*':
        do {
            (a+a);
        }
        while (a<b);            
        printf("%f\n",a+b);
        break;
    
    default:
        printf("error");
        break;
    }
    
return(0);
}

ovo je bio neki moj pokusaj, ali ne ide

izbacuje rezultat, ali ne pravilno. Broblem je samo u *

[Ovu poruku je menjao ivanzj dana 02.11.2008. u 19:32 GMT+1]
Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 04.11.2008. u 11:43 · pre 218 meseci #12
Ti rezultat smestas u promenjljivu a, znaci na stampi treba da bude promenjljiva a ne a+a, nego a.


case'*':
do {
(a+=a);
}
while (a<b);
printf("%f\n",a);
break;


samo stavi if za 0 i to je to...

[Ovu poruku je menjao zivotus dana 04.11.2008. u 15:55 GMT+1]
Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 04.11.2008. u 13:49 · pre 218 meseci #13
nije mi jasno kako sa
Code:

do {
(a+=a);
}
while (a<b);
printf("%f\n",a+b);

pokusavate da mnozite a i b?

recimo da je a = 100 a b = 3:

1. prvi prolaz kroz petlju: a += 100 ( a je sada 200 )
2. provera uslova a < b (200 < 3) daje false i petlja nikada ne ulazi u drugi krug
3. kao rezultat se stampa a + b = 200 + 3 = 203!


@ivanzj: sta je pogresno u onom resenju koje sam ja dao? (nisam ga testirao, priznajem, ali bi trebalo da radi...)
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 04.11.2008. u 20:05 · pre 218 meseci #14
Citat:
Aleksandar Ružičić:
Code:

case'*':
if (b == 0) a = 0;
else for (int i = 1; i < b; i++) a += a;
printf("%f\n",a);
break; 

ovako?


@ivanzj: sta je pogresno u onom resenju koje sam ja dao? (nisam ga testirao, priznajem, ali bi trebalo da radi...)


Radi, ali ne radi kako treba. za 1*3 izbaci 4, 1*4=8, 1*5=16, 3*4=24; 2*5=32
Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 04.11.2008. u 21:45 · pre 218 meseci #15
u pravu si, ja sam napravio (glupu, priznajem :p) gresku...

ovo je ispravno:
Code:

case'*':
int r = 0;
for (int i = 0; i < b; i++) r += a;
printf("%f\n",r);
break; 


ili, malo optimizovano:
Code:

case'*':
int r = 0;
if ( a != 0 && b != 0 )
{
     if ( ! ( a >= b ) )
     {
         a = a ^ b;
         b = a ^ b;
         a = a ^ b;
     }

     for (int i = 0; i < b; i++) r += a;
}
printf("%f\n",r);
break;
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 05.11.2008. u 19:19 · pre 218 meseci #16
sa maliim ispravkama radi
Code:

case'*':
        
        {r = 0;};
        for ( i = 0; i < b; i++) r += a;
        printf("%f\n",r);
        break; 

Re: [Zadatak] a kalkulator sa 4 osnovne operacije (+ - * / ) 06.11.2008. u 13:09 · pre 218 meseci #19
Ako si int r; deklarisao negde van (ispred) switch/case, onda ovo {r = 0;}; može da bude samo ovako: r = 0; bez potrebe da bude u svom bloku.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme