C++ programavimo kalba Visa pagrindine teorija, klausimai ir atsakymai su pavyzdziais.
Įvadas į OOP, I/O bibliotekaProgramavimo kalbosn 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 programavimasn Struktūrinio programavimo požymiai:n Programos lengvai suprantamos, testuojamos, modifikuojamas.n Struktūrinio programavimo taisyklėsn Naudojamos single-entry/single-exit valdymo struktūros;n Taisyklės1) 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 struktūra ( if, if/else, switch, while, do/while, for)4) 2 ir 3 punktas gali kartotis
OOPn 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 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š Cn ~10 % didesnis programų našumas nei C;n Programos (didelės) lengviau taisomos bei modifikuojamos; n Dėl klasių pritaikymo lengviau naudojamos bibliotekosn Šablonai (template) automatiškai modifikuoja programinį kodą, taip palengvinami bibliotekų naudojimą;n Progaminis kodas gali viršyti 50.000 eilučių;
I/O bibliotekan 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 iostreamHeader File Descriptioniostream.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 for 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 OutputStandard I/O istream ostream iostreamFile I/O ifstream ofstream fstreamArray of char I/O istrstream ostrstream strstreamApibrėžti standartiniai srautaiStream Type Buffered Descriptioncin 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 operatoriain Įvedimo <<n Išvedimo >>
#include void main() {float A = 18.236;cout << “1. A=” << A << endl;cout << “2. A=” << A*2.0 << endl;}
I/On 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 naujonurodymo
#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 žodiscout << “Eilute: *” << A << “*n”;cin.getline(A, 12); //Vienuolika simbolių ir ‘