kalkulator w C

Awatar użytkownika
qaz
Użytkownik
Użytkownik
Posty: 486
Rejestracja: 28 paź 2006, o 21:56
Płeć: Kobieta
Lokalizacja: Gobbos' Kingdom
Podziękował: 311 razy
Pomógł: 5 razy

kalkulator w C

Post autor: qaz »

Witam!
Mam napisać program w C:
wpisujemy litere oznaczającą jedno sposród 4 działań (dodawanie, mnożenie, odejmowanie, dzielenie) a następnie po spacjach liczby na których chcemy to działanie wykonać. Np. po wpisaniu: m 3 5 program wykonuje działanie \(\displaystyle{ 3*5}\). Problem w tym ze nie mam Linuxa, co do devc++ i MinGW to po dwoch dniach walki zrezygnowałam. No i nie umiem jeszcze C bo z powodów powyższych nie moge sie nauczyć, pomoże ktoś w napisaniu tego?
Awatar użytkownika
Emiel Regis
Użytkownik
Użytkownik
Posty: 1495
Rejestracja: 26 wrz 2005, o 17:01
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 71 razy
Pomógł: 225 razy

kalkulator w C

Post autor: Emiel Regis »

Tzn czemu zrezygnowałaś z przygody z DevC++? Ja w nim zawsze pisałem i poza drobnymi niuansami się sprawdza.

Widze że dopiero sie uczysz programować, jeśli masz możliwosc wyboru to polecam od razu w C++ zacząć. Ja składni z C już nie pamiętam natomiast poniżej wklejam Ci swój kalkulator napisany (dawno temu) w C++. Pętle i wszystko inne w zasadzie jest takie samo tylko strumienie wejścia i wyjścia należałoby przerobić. Mimo wszystko zachęcam do C++.

Program wygląda tak:
(nieco bardziej zaawansowany niż od Ciebie wymagają ale myśle ze można się na nim wzorować i uczyć samodzielnego pisania, mi się zawsze najlepiej z przykładu uczyło)

Kod: Zaznacz cały

#include<iostream>
#include<math.h>

using namespace std;

int dzialanie, i, n, stopien;
float liczba1, liczba2, wynik;

int main()
{
  for(;;)
  {
    cout << "Podaj dzialanie " << endl;
    cout << "1 - dodawanie" << endl;
    cout << "2 - odejmowanie" << endl;
    cout << "3 - mnozenie" << endl;
    cout << "4 - dzielenie" << endl;
    cout << "5 - potegowanie" << endl;
    cout << "6 - silnia" << endl;
    cout << "0 - WYJSCIE z programu" << endl;
    cin >> dzialanie;
     switch(dzialanie)
     {
     case(0):
        return 0;
     case(1):
        cout << "Pierwszy skladnik = ";
        cin >> liczba1;
        cout << "Drugi skladnik = ";
        cin >> liczba2;
        wynik=liczba1+liczba2;
        cout << liczba1 << " + " << liczba2 << " = " << wynik << endl;
        cout << endl;
        break;
     case(2):
        cout << "Odjemna = ";
        cin >> liczba1;
        cout << "Odjemnik = ";
        cin >> liczba2;
        wynik=liczba1-liczba2;
        cout << liczba1 << " - " << liczba2 << " = " << wynik << endl;
        cout << endl;
        break;
     case(3):
        cout << "Pierwszy czynnik = ";
        cin >> liczba1;
        cout << "Drugi czynnik = ";
        cin >> liczba2;
        wynik=liczba1*liczba2;
        cout << liczba1 << " * " << liczba2 << " = " << wynik << endl;
        cout << endl;
        break;
     case(4):
        cout << "Dzielna = ";
        cin >> liczba1;
        cout << "Dzielnik = ";
        cin >> liczba2;
          if(liczba2!=0)
          {
          wynik=liczba1/liczba2;
          cout << liczba1 << " / " << liczba2 << " = " << wynik << endl;
          cout << endl;
          }
          else
          {
          cout << "Nie dzieli sie przez 0!" << endl;
          cout << endl;
          }
        break;
     case(5):
        cout << "Podstawa = ";
        cin >> liczba1;
        cout << "Wykladnik = ";
        cin >> liczba2;
        if(liczba2==0)
        {
           wynik=1;
        }
        else
        {
           wynik=liczba1;
           for(n=1; n<liczba2; n++)
           {
              wynik=wynik*liczba1;
           } 
        }  
        cout << liczba1 << "^" << liczba2 << " = " << wynik << endl; 
        cout << endl;
        break;
     case(6):
       cout << "Liczba ktorej ma byc policzona silnia = ";
       cin >> liczba1;
       wynik=1;
         for(n=1;n<=liczba1;n++)
         wynik=wynik*n;
       cout << liczba1 << "! = " << wynik << endl;
       cout << endl;
       break;
      default:
        cout << "Wybrales niepoprawny numer dzialania" << endl;
        cout << endl;
        break; 
    };
  }
  system("PAUSE");
  return 0;    
}
Awatar użytkownika
qaz
Użytkownik
Użytkownik
Posty: 486
Rejestracja: 28 paź 2006, o 21:56
Płeć: Kobieta
Lokalizacja: Gobbos' Kingdom
Podziękował: 311 razy
Pomógł: 5 razy

kalkulator w C

Post autor: qaz »

dzięki, Dev poszedł w zapomnienie bo jakies mam problemy z tym ze po skompilowaniu programu po jego uruchomieniu, zamiast wyświetlać wynik zamyka okno i tyle samo wiem czy program działa jak i bez Dev :/
Awatar użytkownika
Emiel Regis
Użytkownik
Użytkownik
Posty: 1495
Rejestracja: 26 wrz 2005, o 17:01
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 71 razy
Pomógł: 225 razy

kalkulator w C

Post autor: Emiel Regis »

To nie jest wina Dev: ) Każdy program ma to do siebie że jak sie wykona to się wyłącza: )
Dlatego zawsze jak już napiszesz cały program to na końcu daj jakaś komendę co czeka na wczytanie znaku, wtedy będziesz mogła obejrzeć na spokojnie swój program a po wciśnieciu znaku dopiero on się wyłączy.
Ja żeby zatrzymać program użyłem funkcji:

Kod: Zaznacz cały

system("PAUSE");
Zresztą zapewne już wkleiłaś mój program do kompilatora to sama widzisz że możesz obejrzeć swoje/moje dzieło; )

W C z tego co pamiętam można by napisać np:

Kod: Zaznacz cały

int a;
a=getchar();
Awatar użytkownika
qaz
Użytkownik
Użytkownik
Posty: 486
Rejestracja: 28 paź 2006, o 21:56
Płeć: Kobieta
Lokalizacja: Gobbos' Kingdom
Podziękował: 311 razy
Pomógł: 5 razy

kalkulator w C

Post autor: qaz »

wszystko sie zdecydowanie zgadza, jeszcze raz dziękuję za pomoc!
ODPOWIEDZ