[Lekcja 15 ] zadanie 2
Ostatnio zmodyfikowano 2012-02-19 21:25
Asharoth Temat założony przez niniejszego użytkownika |
» 2012-02-18 11:34:40 Ok rozumiem co źle zrobiłem. Niestety mam nowy problem. Jako że przerobić program żeby spełniał warunki zadania spotkałem się z nowym problemem a mianowicie: #include <iostream> using namespace std;
int wynik = 0; int a; int b; bool spr_a; bool spr_b; int wyb; int main()
{ cout << "\t Kalkulator" << endl; do { if( wynik != 0 ) cout << "Obecny wynik" << wynik << endl; do { cout << "Podaj liczbe a: " << endl; cin >> a; spr_a = cin.fail() == true; cin.clear(); cin.sync(); if( a == 0 ) { cout << "a = 0 przerwanie programu" << endl; return( 0 ); } if( wynik = 0 ) { do { cout << "Podaj liczbę b: " << endl; cin >> b; cin.clear(); cin.sync(); if( b == 0 ) { cout << "b = 0 przerwanie program" << endl; return( 0 ); } } } } while( spr_a == true ); } while( 0 ); return( 0 ); }
nie chce mi się to poprawnie skompilować choć teoretycznie chyba poprawnie wszystko zrobiłem to podczas kompilacji wywala mi błędy związane z domykaniem funkcji może mi ktoś powiedzieć co źle zrobiłem ? |
|
SeaMonster131 |
» 2012-02-18 11:37:21 Nie ma pętli do { }; , jest pętla do { } while(); |
|
RazzorFlame |
» 2012-02-18 11:40:42 W 3 petli braknie while. Poza tym w jednym z ifow zrobiłeś przypisanie. Co to jest? spr_a = cin.fail() == true;
chyba spr_a = cin.fail(); ??? Edit: Jakoś dziwnie zrobiłeś ten kalkulator. Nie lepiej użyć funkcji? |
|
Asharoth Temat założony przez niniejszego użytkownika |
» 2012-02-19 10:14:15 No chyba działa tak jak chciał tego autor zadania proszę o sprawdzenie i ew sugestie. #include <iostream> using namespace std;
double wynik = 0; double a; double b; bool spr_a; bool spr_b; int wyb; int main()
{ cout << "\t Kalkulator" << endl; do { if( wynik != 0 ) cout << "Obecny wynik : " << wynik << endl; do { if( wynik != 0 ) cout << "Podaj liczbe b : " << endl; else cout << "Podaj liczbe a : " << endl; cin >> a; spr_a = cin.fail() == true; cin.clear(); cin.sync(); if( a == 0 ) { cout << "a = 0 przerwanie programu lub bledna liczba" << endl; return( 0 ); } if( wynik == 0 ) { do { cout << "Podaj liczbe b : " << endl; cin >> b; spr_b = cin.fail() == true; cin.clear(); cin.sync(); if( b == 0 ) { cout << "b = 0 przerwanie program lub bledna liczba" << endl; return( 0 ); } } while( spr_b == true ); } } while( spr_a == true ); cout << "[0] Zakoncz Program \n[1] Dodawanie \n[2] Odejmowanie \n[3] Mnozenie \n[4] Dzielenie \n[5] Powrot na Poczatek" << endl; cin >> wyb; switch( wyb ) { case 0: cout << "Koniec!"; return( 0 ); break; case 1: if( wynik == 0 ) { cout << a << " + " << b << " = " << a + b << endl; wynik = a + b; break; } else cout << wynik << " + " << a << " = " << wynik + a << endl; wynik = wynik + a; break; case 2: if( wynik == 0 ) { cout << a << " - " << b << " = " << a - b << endl; wynik = a - b; break; } else cout << wynik << " - " << a << " = " << wynik - a << endl; wynik = wynik - a; break; case 3: if( wynik == 0 ) { cout << a << " * " << b << " = " << a * b << endl; wynik = a * b; break; } else cout << wynik << " * " << a << " = " << wynik * a << endl; wynik = wynik * a; break; case 4: if( wynik == 0 ) { cout << a << " / " << b << " = " << a / b << endl; wynik = a / b; break; } else cout << wynik << " / " << a << " = " << wynik / a << endl; wynik = wynik / a; break; case 5: wynik = 0; break; default: cout << "Sprobuj jeszcze raz" << endl; wynik = 0; break; } } while( 1 ); return( 0 ); }
|
|
RazzorFlame |
» 2012-02-19 15:34:13 Moja rada: Czyść na początku pętli 1 ekran. (np. "system("cls");" ) |
|
za8ol |
Lek15 zad 2 » 2012-02-19 21:09:11 Witam mam prośbę przerobiłem czyjść kod żeby nie działał w sposób podaj liczbę a ,b a później wybierz działanie . Tylko najpierw wybierz działanie później podaj liczby i wszystko jest dobrze do momentu wyniku. Wynik jest dobry natomiast idzie idzie idzie i się nie kończy gdzie jest błąd ?
#include <iostream>
using namespace std;
int main() { cout << "Kalkulator prosty\n" "[1] dodawanie \n" "[2] odejmowanie a - b \n" "[3] odejmowanie b-a \n" "[4] mnozenie \n" "[5] dzielenie \n" "[6] rezygnuje \n"; float a; float b; int dzialanie; cin >> dzialanie; cin.clear(); cin.sync(); do { cout << "Podaj liczbe a: " << endl; cin >> a; cin.clear(); cin.sync(); if( a == 0 ) cout << "Musisz podac liczbe wieksza od 0 \n" "Podaj liczby jeszcze raz: " << endl; } while( a == 0 ); do { cout << "Podaj liczbe b:" << endl; cin >> b; cin.clear(); cin.sync(); if( b == 0 ) cout << "Musisz podac liczbe wieksza od 0 \n" "Podaj liczby jeszcze raz: " << endl; } while( b == 0 ); do { switch( dzialanie ) { case 1: cout << "Wynik dodawania: " << a + b << endl; break; case 2: cout << "Wynik odejmowania a-b: " << a - b << endl; break; case 3: cout << "Wynik odejmowania b-a: " << b - a << endl; break; case 4: cout << "Wynik mnozenia: " << a * b << endl; break; case 5: cout << "Wynik dzielenia: " << a / b << endl; break; } } while(( dzialanie >= 1 ) &&( dzialanie <= 5 ) ); cout << "Rezygnuje \n\n" << endl; cout << "Koniec" << endl; return 0; }
|
|
malan |
» 2012-02-19 21:25:53 @za8ol: załóż swój temat. |
|
1 « 2 » |