Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rozdział 15 Zadanie Nr2.

Ostatnio zmodyfikowano 2023-01-12 18:02
Autor Wiadomość
Ariel
Temat założony przez niniejszego użytkownika
Rozdział 15 Zadanie Nr2.
» 2023-01-11 12:50:58
Chciałbym się upewnic czy dobrze wykonalem zadanie, oraz czy kod jest w miarę czytelny.
Napisz prosty kalkulator, który będzie potrafił dodawać, odejmować, mnożyć i dzielić. Program ten ma działać następująco:
1. Wypisuje obecny wynik
2. Wprowadź liczbę
3. Wybierz działanie (jeżeli liczba różna od 0)
4. Wykonaj obliczenia (jeżeli liczba różna od 0)
5. Wróć do kroku 1.
6. Jeżeli wprowadzoną liczbą jest 0, zakończ program.
C/C++
// przepraszam dodalem kilka zmiennych ktore sa niepotrzbne.
#include <iostream>
using namespace std;
int a, b, c, d, e;
int oblicz, suma;
int main()
{
   
   
   
   
do
   
{
        {
           
           
cout << "Obecny wynik to: " << oblicz << endl;
           
cout << "Podaj pierwsza liczbe: ";
           
cin >> a;
           
cout << "Podaj druga liczbe: ";
           
cin >> b;
           
           
cout << "[1] Dodawanie " << endl;
           
cout << "[2] Odejmowanie " << endl;
           
cout << "[3] Mno¿enie " << endl;
           
cout << "[4] Dzielenie " << endl;
           
cout << "[5] Rezygnuj " << endl;
           
cin >> oblicz;
       
}
       
switch( oblicz )
       
{
       
case 1:
           
oblicz = a + b;
           
break;
       
case 2:
           
oblicz = a - b;
           
break;
       
case 3:
           
oblicz = a * b;
           
break;
       
case 4:
           
oblicz = a / b;
           
break;
       
case 5:
           
oblicz = 0;
           
break;
       
default:
            (
oblicz != 0 );
           
break;
           
       
}
       
    }
   
while( oblicz != 0 );
   
   
return 0;
   
}
P-179865
pekfos
» 2023-01-11 18:46:51
To nie jest wykonane zgodnie z opisem. Liczbę miałeś pobrać jedną w danym cyklu i przeprowadzić obliczenie z bieżącym wynikiem.

Zmienne powinny być utworzone blisko miejsca użycia, a w szczególności nie powinny być globalne gdy nie ma na to potrzeby.

C/C++
default:
(
oblicz != 0 );
break;
To nic nie robi.

C/C++
{
   
   
cout << "Obecny wynik to: " << oblicz << endl;
   
cout << "Podaj pierwsza liczbe: ";
   
cin >> a;
   
cout << "Podaj druga liczbe: ";
   
cin >> b;
   
   
cout << "[1] Dodawanie " << endl;
   
cout << "[2] Odejmowanie " << endl;
   
cout << "[3] Mno¿enie " << endl;
   
cout << "[4] Dzielenie " << endl;
   
cout << "[5] Rezygnuj " << endl;
   
cin >> oblicz;
}
Blok dookoła tego kodu też nic nie robi. To nie jest błędne i czasem tak się robi, ale żeby ograniczyć widoczność zmiennych. Kod który nic nie robi szkodzi czytelności.
P-179870
Ariel
Temat założony przez niniejszego użytkownika
» 2023-01-11 20:47:07
C/C++
#include <iostream>
using namespace std;

int main()
{
   
int a;
   
int oblicz, suma = 0;
   
do
   
{
       
cout << "Obecny wynik to: " << suma << endl;
       
cout << "Podaj liczbe: ";
       
cin >> a;
       
cout << "[1] Dodawanie " << endl;
       
cout << "[2] Odejmowanie " << endl;
       
cout << "[3] Mnozenie " << endl;
       
cout << "[4] Dzielenie " << endl;
       
cout << "[5] Rezygnuj " << endl;
       
cin >> oblicz;
       
       
switch( oblicz )
       
{
       
case 1:
           
suma = suma + a;
           
break;
       
case 2:
           
suma = suma - a;
           
break;
       
case 3:
           
suma = suma * a;
           
break;
       
case 4:
           
suma = suma / a;
           
break;
       
case 5:
           
oblicz = 0;
           
break;
       
default:
           
           
break;
           
       
}
       
    }
   
while( oblicz != 0 );
   
   
return 0;
   
}
Tak poprawnie?
zmienne globalne czyli powinny znajdowac sie w int main{} a nie poza tak?
P-179871
pekfos
» 2023-01-11 21:09:30
Dalej nie jest wykonane zgodnie z treścią zadania.

zmienne globalne czyli powinny znajdowac sie w int main{} a nie poza tak?
Zmienne globalne są poza funkcjami. Wewnątrz funkcji (np main) zmienna będzie lokalna (widoczna od definicji do końca bloku). Zmienne powinny mieć możliwie mały zakres widoczności by łatwiej było się zorientować w ich roli i trudniej było o kolizję nazw. Nie jest to takie istotne w krótkim programie.
P-179872
Ariel
Temat założony przez niniejszego użytkownika
» 2023-01-11 22:03:53
zmienna globalna rozumiem :).
Moglbyś napisać jak to poprawnie powinno wygladać bo ja jestem "niewidomy" i nie widzę problemu ^^
P-179874
pekfos
» 2023-01-11 22:07:05
Zadanie mówi że koniec programu jest jak się poda 0 w drugim kroku. Program powinien się zakończyć bez pytania o operację.
P-179876
Ariel
Temat założony przez niniejszego użytkownika
» 2023-01-11 23:32:27
C/C++
#include <iostream>
using namespace std;

int main()
{
   
int a;
   
int oblicz, suma = 0;
   
   
do
   
{
       
cout << "Obecny wynik to: " << suma << endl;
       
cout << "Podaj liczbe: ";
       
cin >> a;
       
if( a == 0 ) { return 0; }
       
cout << "[1] Dodawanie " << endl;
       
cout << "[2] Odejmowanie " << endl;
       
cout << "[3] Mnozenie " << endl;
       
cout << "[4] Dzielenie " << endl;
       
cout << "[5] Rezygnuj " << endl;
       
cin >> oblicz;
       
       
switch( oblicz )
       
{
       
case 1:
           
suma = suma + a;
           
break;
       
case 2:
           
suma = suma - a;
           
break;
       
case 3:
           
suma = suma * a;
           
break;
       
case 4:
           
suma = suma / a;
           
break;
       
case 5:
           
oblicz = 0;
           
break;
       
default:
           
           
break;
           
       
}
       
    }
   
while( oblicz != 0 );
   
   
return 0;
   
}
tak poprawnie?
P-179877
pekfos
» 2023-01-12 18:02:45
Program realizuje zadanie, chociaż niepotrzebnie można wyjść z programu na 3 różne sposoby.
P-179879
« 1 »
  Strona 1 z 1