C++ programavimo kalba
Visa pagrindine teorija, klausimai ir atsakymai su pavyzdziais.
Įvadas į OOP, I/O biblioteka
Programavimo kalbos
n Procedūrinės (ankstyvos Fortran versijos)
n Pagrindą sudaro funkcijos. Programos kodo ilgis iki kelių tūkstančių eilučių.
n Struktūrinės (Pascal, C, Fortran, Basic, COBOL)
n Pagrindą sudaro blokai (procedūros) ir duomenys, priskirti tiems blokams. Programos kodo ilgis iki 50 tūkstančių eilučių.
n OOP (C++, Java, Visual Basic)
Struktūrinis programavimas
n Struktūrinio programavimo požymiai:
n Programos lengvai suprantamos, testuojamos, modifikuojamas.
n Struktūrinio programavimo taisyklės
n Naudojamos single-entry/single-exit valdymo struktūros;
n Taisyklės
1) Pradedama nuo “paprasčiausios” struktūrinės schemos;
2) Bet kuris veiksmas, gali būti pakeistas dviejų veiksmų seka;
3) Bet kuris veiksmas gali būti pakeistas valdymo st
truktūra ( if, if/else, switch, while, do/while, for)
4) 2 ir 3 punktas gali kartotis
OOP
n Išradėjai Ole-Johan Dhal ir Kristen Nygaard iš Oslo Universiteto ir Norvegijos Skaičiavimo centro (Norsk Regnesentral). OOP konsepcija buvo pristatyta 1966.
n OOP esmė – sudaryti realaus pasaulio atspindį programinio kodo struktūroje.
importantStuff = new Object( );
importantStuff.money = 500;
importantStuff.papers = 96;
importantStuff.annPassport = “er246vjl”;
importantStuff.bobPassport = “kl554mkt”;
importantStuff.jewelryBox = new Object( );
importantStuff.jewelryBox.necklace1 = “Pearl”;
importantStuff.jewelryBox.necklace2 = “Diamond”;
C++
n C++ – tai C kalbos pratęsimas, priskiriant ją OOP kalbų grupei, todėl išlieka C ir C++ suderinamumas.
n C++ geriau nei C, nes:
n Išsamesnis klaidų tikrinamas, lengvesnė klaidų paieška;
n Nuorodų (reference) panaudojimas funkcijų argumentuose ir
r grąžinamose reikšmėse yra patogesnis nei žymių (pointer).
n Funkcijų perkrovimas (overloading) leidžia naudoti tuos pačius f-jų pavadinimus skirtingoms funkcijoms.
n Vardų erdvės (namespace) leidžia geriau kontroliuoti vardų naudojimą
C++ privalumai prieš C
n ~10 % didesnis programų našumas nei C;
n Programos (didelės) lengviau taisomos bei modifikuojamos;
n Dėl klasių pr
n Šablonai (template) automatiškai modifikuoja programinį kodą, taip palengvinami bibliotekų naudojimą;
n Progaminis kodas gali viršyti 50.000 eilučių;
I/O biblioteka
n I/O srautas – tai loginis įrenginys informacijos gavimui iš vartotojo ir informacijos perdavimui vartotojui.
n I/O srautas siejamas su fiziniais įrenginais (ekranu, klaviatūra, pele, HDD) per C++ I/O sistemą t.y. I/O biblioteką, vadinamą iostream.
n Tokia I/O sistema užtikrina vieningą trarką informacijos įvedimui/išvedimui.
n I/O biblioteka suskirstyta į 4 failus:
1. iostream.h
2. fstream.h
3. strstream.h
4. iomanip.h
iostream
Header File Description
iostream.h Defines a hierarchy of classes for low-level (untyped character-level) IO and high-level (typed) IO. This includes the definition of the ios, istream, ostream, and iostream classes.
fstream.h Derives a set of classes from those defined in iostream.h for file IO. This includes the definition of the ifstream, ofstream, and fstream classes.
strstream.h Derives a set of classes from those defined in iostream.h fo
or IO with respect to character arrays. This includes the definition of the istrstream, ostrstream, and strstream classes.
iomanip.h Defines a set of manipulator which operate on streams to produce useful effects.
Form of I/O Input Output Input and Output
Standard I/O istream ostream iostream
File I/O ifstream ofstream fstream
Array of char I/O istrstream ostrstream strstream
Apibrėžti standartiniai srautai
Stream Type Buffered Description
cin istream Yes Connected to standard input (e.g., the keyboard)
cout ostream Yes Connected to standard output (e.g., the monitor)
clog ostream Yes Connected to standard error (e.g., the monitor)
cerr ostream No Connected to standard error (e.g., the monitor)
I/O operatoriai
n Įvedimo <<
n Išvedimo >>
#include
void main()
{
float A = 18.236;
cout << “1. A=” << A << endl;
cout <<

}
I/O
n setw (n) n – lauko plotis simboliais,
n setprecision (n) n – skaitmenų skaičius.
Jei setw nurodyto lauko dydžio skaičiui nepakanka, manipuliatorius ignoruojamas.
Nuoroda setw galioja artimiausiai išvedamai reikšmei, o setprecission – iki naujo
nurodymo
#include
#include
main() {
float A = 18.236;
cout << “1. A=” << setw(9) << A << endl;
cout << “2. A=” << setprecision(3) << A << endl;
cout << “3. A=”
<< setw(10) << setprecision(5) << A <
main() {
char sim;
cout << “Ar dar dirbsite?( T/N ): “;
do {
sim = cin.get();
sim = toupper(sim); }
while((sim != ‘T’) && (sim != ‘N’));
cout << “Jus pasirinkote : ” << sim << endl;
}
Įvedimo klasėje metodas getline skirtas vienos eilutės įvedimui klaviatūra. Matome, kad paprastai įvedama eilutė iki pirmojo tarpo simbolio arba iki galo, jeigu tarpo simbolio nebuvo. Panaudoję getline metodą galima įvesti norimą simbolių skaičių: nurodomas skaičius. Jeigu tiek simbolių nebuvo, įvedami visi simboliai iki eilutės galo. Įvedama eilutė visuomet papildoma nuliniu simboliu.
main() {
char A[30];
int n;
cout << “Iveskite eilute:n”;
cin >> A; // Pirmasis eilutės žodis
cout << “Eilute: *” << A << “*n”;
cin.getline(A, 12); //Vienuolika simbolių ir ‘