[C++] kalkulator czterodziałaniowy

0

Jak zrealizowalibyście takie zadanie:

Napisać program, który symuluje prosty kalkulator czterodziałaniowy, w którym po wpisaniu kolejnych liczb i operatorów (wykonywanych w kolejności wpisywania) wpisanie znaku '=' będzie sygnałem do wyświetlenia wyniku.

0

Za pierwszym razem wczytujesz int,char,int i wykonujesz odpowiednie działanie, tutaj nic innego tylko if() albo switch() żeby sprawdzic jaki operator sie pojawił, następne do zmiennej przechowującej pierwszą liczbę wstawiasz wynik i wczytujesz juz tylko char,int i postępujesz cały czas tak samo, aż nie okaże się wczytany char jest znakiem = wtedy wypisuejsz wyniki (który od samego początku zbierasz sobie w osobnej zmiennej)

0

Niby proste, a zupełnie inny tok myślenia przyjąłem. Dzięki za pomoc w skierowaniu na słuszną ścieżkę życia :).

#include <iostream>
using namespace std; 

int main()
{
	float l1, l2;
	char operacja;
	
	cout << "Podaj dzialanie jakie chcesz wykonac: \n";
	cin >> l1 >> operacja >> l2;
	
	do
	{
	
		switch(operacja)
		{
			case '+':
					l1 = l1+l2;
					break;
			case '-':
					l1 = l1-l2;
					break;
			case '*':
					l1 = l1*l2;
					break;
			case '/':
					l1 = l1/l2;
					break;
		}
	
		cin >> operacja;
		if(operacja!='=') 
			cin >> l2;
	
	}while(operacja!='=');
	cout << l1;
}
0

w pętli powinno być:

cin >> operacja >> l2;
0
MarekR22 napisał(a)

w pętli powinno być:

cin >> operacja >> l2;

No nie do końca, bo jeśli damy tak jak proponujesz to po wczytaniu 'operacja' musimy wczytać jeszcze 'l2'. A w przypadku jeśli 'operacja' to znak '=' to nie ma sensu czytać jeszcze liczbę 'l2'.

0

racja, ślepy jestem.
Swoją drogą to należało by zrezygnować z używania standardowego wejścia, żeby taka implementacja miała sens (i tak zawsze trzeba wcisnąć enter dla przetworzenia danych wejściowych).

0

Nie rozumiem... można więcej?

0

Chodzi mu o użycie innych metod przetwarzania wejścia. Bo w twoim programie trzeba czekać na wciśnięcie entera żeby działania się wykonały. Gdyby uzywać jakiegoś getch() można by tak zrobić ze wszystko wykona się po wpisaniu = bez wciskania entera, ale to będzie nieoptymalne bo trzeba będzie konwertować znaki na liczby.

0

W podobny sposób myślałem zanim przystąpiłem do zadania, stąd też pojawiło się pytanie: 'jak?' (pierwszy post):).

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