16.07.2014 Views

Programowanie. Teoria i praktyka z wykorzystaniem C++

Programowanie. Teoria i praktyka z wykorzystaniem C++

Programowanie. Teoria i praktyka z wykorzystaniem C++

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!