C++ for Business Programmers John C. Molluzzo - Pace University, New York
description
Transcript of C++ for Business Programmers John C. Molluzzo - Pace University, New York
1/18
Uvod u programiranje II2 i 3
(Realni brojevi i iteracije)
C++ za programere poslovnih aplikacija
C++ for Business Programmers
John C. Molluzzo - Pace University, New York
Prentice Hall, August 02, 2005
Fakultet za poslovnu informatiku
2/18
Poglavlje 2 – Realni brojevi
• float (4 bajta, 7 cifara preciznost)• double (8 bajtova, 15 digit precision)
#include <iostream>
using namespace std;
int main()
{
cout << “Na ovom racunaru broj bajtova odvojenih za tip float je"
<< sizeof(float) << endl;
cout << "On this computer a double occupies this many bytes "
<< sizeof(double) << endl;
return 0;
}
3/18
Problemi:
- kontrola broja cifara iza decimalne tačke
- prebacivanje na naučnu notaciju i
- gubitak završne nule,
cout << setprecision(2) // two digits to right of decimal
<< setiosflags(ios::fixed) // display in fixed form
<< setiosflags(ios::showpoint); // print trailing zeros
• Mora da se uključi heder fajl iomanip
#include <iomanip>
Realni brojevi
4/18
Demo02-1
5/18
Program prb02-1.cpp
6/18
• Konverzija u tip double pre aritmetičkih operacija– Kada aritmetički izraz sadrži više promenljivih tipa int ili long i više
promenljivih tipa float ili double, C++ automatski konvertuje sve promenljive u tip double pre nego što izvrši aritmetičke operacije. Sledi, rezultat je tipa double
• type cast – Tip cast (C++ data type nakon koga sledi izraz u malim zagradama)
menja tip podatka – vrednosti koja je uključena u određeni tip. – int i = 5; double(i) casts (kastuje, menja) vrednost promenljive i,
odnosno konvertuje vrednost i u double 5.0.
• Konverzija desne strane pridruženja u levu– Kada se tip podatka desne strane znaka pridruženja razlikuje od tipa
podatka promenljive sa leve strane, C++ konvertuje vrednost desne strane u tip podatka varijable sa leve strane
• ...
Aritmetika
7/18
• Svaki izraz u C++ ima numeričku vrednost
Aritmetika
8/18
Aritmetika
9/18
Poglavlje 3 – Iteracije (petlje)
• U C++, ako je relacioni uslov true-tačno, ceo uslov ima numeričku vrednost 1. Ako je relacioni uslov false-netačno, ceo uslov ima numeričku vrednost 0. Sledi, C++ uzima svaku vrednost različitu od nule kao true, a vrednost 0 kao false-netačno.
• Iteracije (looping - while loop, do loop, i for loop)
#include <iostream>
using namespace std;
int main()
{
int i = 3,
j = 8,
k = 5,
result;
result = (i < j < k);
cout << "result = " << result << endl;
return 0;
}
10/18
• while (control-expression) loop-body
Petlja
11/18
Korišćenje cin.get()
Ako deklarišemo promenljivu tipa character
char ch;
Sledeća naredba pridružuje sledeći karakter iz ulaznog strima varijable ch
ch = cin.get();
12/18
Dem03-1
13/18
Dem03-2
14/18
do-while petlja
15/18
Dem03-3
16/18
• for naredba
for()
17/18
Nested while Loops
Kako da signaliziramo programu da ne želimo više da unosimo kataktere?
C++ ima specijalnu simboličku konstantu EOF da bi se označio kraj ulaza. EOF je mnemonic koji znači "end of file“, definisan u standardnom heder fajlu iostream.
Vrednost EOF je sistemski zavisna, mada većina sistema koristi int vrednost 1.
U Windows-u, da bi se ubacila sa terminala korektna vrednost EOF, mora da ukucate ^Z;
U UNIX/Linux-u, enter ^D za vrednost EOF.
Ugnežđene while petlje
18/18
• ... promenljiva ch u koju se smešta karakter koji korisnik unosi preko tastature je tipa int umesto tipa char. Jedina razlika u skladištenju karaktera recimo 'a', u int type variable umesto u char type variable je da int variable zahteva 2 ili 4 bajta memorije dok char type variable zahteva 1 ili 2 bajta (dva bajta za Unicode karaktere) memorije. U oba slučaja karakter 'a' je uskladišten kao integer value 97.
U poslednjem primeru ...