Kalkulator na zaliczenie- proszę pomóżcie [C]

Odpowiedz Nowy wątek
2015-01-20 20:58
0

Tak jak w temacie, niestety mój wykładowca laboratorium oszalał i co 5 min zmienia zasady zaliczenia o ile brakowało mi 1pkt, teraz brakuje mi 10.5, a mogę zdobyć tylko 10, muszę tylko napisać taki program a nie mam pojęcia jak za tak bardzo rozbudowany kalkulator się zabrać.
Kalkulator z kolejnością działań (do kilku np: 4 działań na wejściu). takie jest polecenie wykładowcy proszę jeżeli ktoś jest w stanie pomóc to będę bardzo szczęśliwy.
Pozdrawiam
/@ edit nie chcę gotowca umiem tylko prosty kalkulator na pentli swtich case czy też if else if

edytowany 1x, ostatnio: Naky, 2015-01-20 21:17
Podaj jakiś kod który sam zrobiłeś w tym temacie, bo to wygląda jak próba uzyskania gotowca (a takich nie rozdajemy) - msm 2015-01-20 21:11
Znam te humory wykladowcow;) Sprobuj to sam napisac a bedziesz mial podwojna frajde. Dopiero jak na pewnym etapie bedziesz mial z czyms problem to napisz a na pewno ktos Ci da wskazowki. - Sebastiano 2015-01-20 21:23

Pozostało 580 znaków

2015-01-20 21:19
0
  #include <stdlib.h>
    #include <stdio.h>

         int main ()
{
         double a,b,c;
         char dzialanie ;

         printf("Podaj a: ");
         scanf("%lf", &a);
         printf("Podaj b: ");
         scanf("%lf", &b);
         printf("Podaj dzialanie :  ");
         _flushall();
         scanf("%c", &dzialanie);
         if ((dzialanie !='+')&(dzialanie !='-')&(dzialanie!='*')&(dzialanie!='/'))
         {
         printf("Niewłaściwy znak\n");
         return -1;
         }
         if (dzialanie == '+')
         {        
         double c=a+b;
         printf("Suma = %.2lf\n",c);

         }
         else if ( dzialanie == '-')
         {
         double c=a-b;
         printf("Roznica = %.2lf\n", c);
         }
         else if (dzialanie == '*')
         {
         double c=a*b;
         printf("Iloczyn = %.2lf\n", c);
         }

         else if (dzialanie == '/', b >0)
         {
         double c=a/b;
         printf("Iloraz = %.2lf\n", c);
         }
          else ( b==0);
         {
         printf("Nie dziel przez zero\n");
         system("pause");
         return -1;
         }

         system ("pause");
         return 0

to jest mój program 2+2 a nie wiem zbytnio jak zabrać się za 2+2*3/4 ;(

/@ kolega mi sugeruje takie coś żeby wygenerować tablice string, i pentli for odczytywać wartości od początku do końca tablicy przy pomocy pentli if.

edytowany 2x, ostatnio: Shalom, 2015-01-22 15:23

Pozostało 580 znaków

2015-01-20 21:24
0

poczytaj o odwroconej notacji polskiej.

Pozostało 580 znaków

2015-01-20 22:23
0

Dużo mi to nie da skoro muszę napisać coś czego nie potrafie

Pozostało 580 znaków

2015-01-20 23:01
3

@Naky na tym polega nauka że się uczysz a potem robisz.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2015-01-22 13:35
0
#include <stdlib.h>
#include <stdio.h>

int main (int agrc(), void *agrv[])
{
    double a,b,c,d;
    double w,w1,w2;
    char dz,dz1,dz2;

    do
    {
        printf ("Podaj liczby i dzialania\n");
        scanf ("%lf", &a);
        printf ("");
        scanf("%c",&dz);
        printf ("");
        scanf ("%lf", &b);
        printf ("");
        scanf ("%c", &dz1);
        if (dz1=='=') break;
        printf ("");
        scanf ("%lf", &c);
        printf ("");
        scanf ("%c", & dz2);
        if (dz2 =='=') break;
        printf ("");
        scanf ("%lf", &d);
        }
        while (getchar());

         switch (dz)
        {
               case       '+': w=a+b;
               printf ("Wynik dzialania = %.4lf\n", w);
               break;
               case       '-': w=a-b;
               printf ("Wynik dzialania = %.4lf\n", w);
               break;
               case       '*': w=a*b;
               printf ("Wynik dzialania = %.4lf\n", w);
               break;
               case       '/': w=a/b;
               printf ("Wynik dzialania = %.4lf\n", w);
               break;

               }
        switch (dz1)
        {
               case '+': w1=w+c;
               printf("Wynik dzialania%.4lf\n", w1);
               break;
               case '-': w1=w-c;
               printf ("Wynik dzialania %.4lf\n", w1);
               break;
               case '*': w1=a dz(b*c);
               printf ("Wynik dzialania %.4fl\n",w1);
               break;

               }
        system ("pause");
        }

Dobra tak wygląda mój kod, piszę to tak jak potrafię i mam problem na samym dole chciałbym aby program czytał mi znak wprowadzonego działania "dz" jest działaniem 1 z poprzedniej pętli dobrze by było gdyby ktoś pomógł mi to skompilować bo mój dev nie godzi się na to
pozdrawiam

edytowany 4x, ostatnio: Shalom, 2015-01-22 15:24
Usuń te encje z kodu, nikt nie będzie tego przepisywał. - _borisov8 2015-01-22 13:55
jakie encje? - Naky 2015-01-22 14:03
te amp tak? tak mi te kolorowanie zrobiło nie wiem jak to poprawic - Naky 2015-01-22 14:05
dobra poprawione :) - Naky 2015-01-22 14:07

Pozostało 580 znaków

2015-01-22 14:20
0

W switchu dz1, po wz1=a brakuje średnika, i próbujesz użyć zmiennej jako funkcji.
Wszystko było napisane w logach kompilacji :)

edytowany 1x, ostatnio: _borisov8, 2015-01-22 14:21

Pozostało 580 znaków

2015-01-22 14:27
0

To rozumiem chodzi mi o to żeby tam wczytywał się znak wprowadzony w 1 działaniu.

Pozostało 580 znaków

2015-01-22 16:55
0

To nie może być aż takie trudne a czas nagli :P

Pozostało 580 znaków

2015-01-22 17:04
1

Pod windowsa.

#include <string>
#include <iostream>
#include <cstdlib>
#include <utility>
auto main(int argc, char **argv) -> int{
    const std::basic_string<char> cmdlexpr;
    std::getline(std::cin, const_cast<std::basic_string<char>&>(cmdlexpr));
    std::system(((std::basic_string<char>("set /a ")+*(&cmdlexpr)).c_str()));
    return !!!1+!!!2 == !!4;
}
edytowany 1x, ostatnio: spartanPAGE, 2015-01-22 17:06
Pokaż pozostałe 4 komentarze
jesteś w jakikolwiek sposób zobrazować mi jak ma to wyglądać w c? - Naky 2015-01-22 17:36
@spartanPAGE Jaki oszust. :-D - Endrju 2015-01-22 18:29
nie czaje tego tematu no :P nie chcę wyłudzić programu tylko no żeby mi zamiast tego dz wczytywało znak z 1 działania :) - Naky 2015-01-22 18:35
@Endrju działa? działa - spartanPAGE 2015-01-22 20:53
Naprawdę nikt nie chce pomóc ? :( - Naky 2015-01-23 22:02

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0