Programowanie. Teoria i praktyka z wykorzystaniem C++
Programowanie. Teoria i praktyka z wykorzystaniem C++
Programowanie. Teoria i praktyka z wykorzystaniem C++
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
6.3. WRACAJC DO KALKULATORA 181<br />
Wczytujemy par wartoci oddzielonych operatorem, np. 2+2, obliczamy wynik (tu 4) i drukujemy<br />
go na ekranie. Zmienn przechowujc warto z lewej strony operatora nazwalimy<br />
lval, a z prawej strony rval.<br />
To nawet dziaa! Co z tego, e program nie jest ukoczony? To wspaniae uczucie zrobi<br />
co, co dziaa! Moe to programowanie i informatyka s atwiejsze, ni gosz plotki? Moliwe,<br />
ale nie dajmy si ponie emocjom z powodu tego pierwszego sukcesu. Oto lista czynnoci:<br />
1. Oczyci kod.<br />
2. Doda obsug dzielenia i mnoenia (np. 2*3).<br />
3. Doda obsug wyrae zawierajcych wicej ni jeden operand (np. 1+2+3).<br />
W szczególnoci pamitamy, e zawsze naley sprawdza, czy uytkownik poda sensowne<br />
dane (zapomnielimy z popiechu wczeniej), oraz e porównywanie jednej wartoci z wieloma<br />
staymi lepiej wykona za pomoc instrukcji switch ni if.<br />
czenie dziaa w acuchy, np. 1+2+3+4, obsuymy, sumujc wartoci w czasie wczytywania.<br />
Tzn. wczytujemy 1, widzimy +2, wic dodajemy 2 do 1 (uzyskujc w ten sposób wynik<br />
3). Dalej widzimy +3, a wic dodajemy 3 do poprzedniego wyniku itd. Po kilku falstartach<br />
i poprawieniu kilku bdów skadni uzyskalimy nastpujcy rezultat:<br />
#include "std_lib_facilities.h"<br />
int main()<br />
{<br />
cout >lval; // Wczytywanie pierwszego argumentu wyraenia z lewej.<br />
if (!cin) error("Na pocztku nie ma argumentu wyraenia.");<br />
while (cin>>op) { // Wczytywanie operatora i prawego argumentu wyraenia na zmian.<br />
cin>>rval;<br />
if (!cin) error("Nie ma drugiego argumentu wyraenia.");<br />
switch(op) {<br />
case '+':<br />
lval += rval; // Dodawanie: lval = lval + rval<br />
break;<br />
case '–':<br />
lval –= rval; // Odejmowanie: lval = lval – rval<br />
break;<br />
case '*':<br />
lval *= rval; // Mnoenie: lval = lval · rval<br />
break;<br />
case '/':<br />
lval /= rval; // Dzielenie: lval = lval / rval<br />
break;<br />
default: // Koniec operatorów — drukowanie wyniku.<br />
cout