Úvod do programovania v C++

Algoritmus a programovanie

* Algoritmus je návod, opis, postup ako niečo vyriešiť
* Algoritmy zapisujeme v jazyku, ktorému počítač rozumie - takému jazyku hovoríme programovací jazyk
* Programovanie je prepis algoritmu do programovacieho jazyka – náš programovací je C++. Programovací jazyk má určité pravidlá zápisu (tzv. syntax), ktoré musíme pri písaní programov dodržiavať
* Programy väčšinou zapisujeme, opravujeme a testujeme pomocou špecializovaných programov - vo vývojových prostrediach.


Prečo je dobré vedieť programovať

* vo svojej profesii budete navrhovať, popisovať a vysvetľovať návody, plánovať určité kroky, ktoré veľmi pripomínajú algoritmy
* budete pracovať s existujúcimi programami, ktoré treba často prispôsobiť špeciálnym požiadavkám
* budete vedieť vytvárať programy, ktoré doteraz nikto nevytvoril.


Prečo programovať v prostredí C++Builder

* môžeme rýchlo naprogramovať plnohodnotné aplikácie pre MS Windows 95, 98, 2000, XP
* vieme využívať všetky dobré vlastnosti MS Windows (grafika, sieť, beh viacerých úloh súčasne, schránka)
* ľahko vytvoríme vzhľad aplikácie, dokážeme elegantne písať a opravovať naše programy.


Prostredie C++Builder


Prostredie sa skladá z niekoľkých okien – často budeme mať zobrazené tieto 4 okná. Ich význam postupne vysvetlíme.


Hlavné okno

Menu obsahuje niektoré užitočné povely:

File|New Application – vytvorí nový program (aplikáciu)
File|Save All – uloží všetko čo sme vytvorili na disk
File|Open Project – otvorí program, ktorý sa nachádza na disku

Svoje programy ukladajte do samostatných adresárov (inak sa pravdepodobne prepíšete súbory patriace inému programu a budete mať problémy).

Aj nový !prázdny" program, ktorý sme práve vytvorili, vieme spustiť (z menu: Run|Run). Program sa najskôr skompiluje – preloží sa z jazyka C++ do strojového kódu (čísla, ktorým počítač dobre rozumie a dokáže rýchlo vykonávať), a potom sa spustí. Uvidíme okno, ktoré sa dá presúvať, minimalizovať alebo zatvoriť.


Ako v C++Builderi programujeme

Väčšinou vykonávame nasledovné kroky:

* navrhneme vzhľad programu
* ak chceme, aby program niečo rozumné vykonával, musíme programovať
* potom program skompilujeme a spustíme
* otestujeme, či program dobre pracuje a ak nie, ukončíme ho a budeme odstraňovať chyby.

Pritom sa k niektorým krokom podľa potreby vraciame a viackrát opakujeme.


Paleta s komponentmi

Paleta s komponentmi obsahuje komponenty – tlačidlá, posuvné lišty, menu (poznáme ich aj z iných programov) a ďalšie. Komponenty ukladáme na formulár – okno budúceho programu. Napríklad:

Potrebujeme komponent Image (obrázok) zo záložky Additional

Ďalej použijeme komponent Button (tlačidlo) zo záložky Standard.

Ak spustíme takýto, uvidíme okno s jedným tlačidlom. Môžeme naň klikať myšou, ale zatiaľ nič sa nestane.


Vlastnosti komponentov

Pomocou okne Object Inspector (Inšpektor) nastavujeme komponenty, ktoré sme položili do formulára. Okno má dve dôležité záložky:

* Properties (vlastnosti) - napríklad, vlastnosti Top, Left, Width, Height určujú polohu a rozmery komponentu
* Events (udalosti) - napríklad, tlačidlo vie reagovať na udalosť OnClick (kliknutie myšou)

Každá vlastnosť má svoje meno (ľavý stĺpik) a hodnotu (pravý stĺpik)


Krátky úvod do programovania

Predchádzajúci program oživíme tak, aby sa po kliknutí na tlačidlo niečo vykonalo. Teraz sa potrebujeme dozvedieť niečo o programovaní v C++:

* program v C++ sa skladá z niekoľkých (aj veľmi veľa) funkcií
* každá funkcia obsahuje príkazy, ktoré sa postupne vykonávajú:
o pomocou niekoľký základných príkazov, riadime beh programu
o množstvo ďalších príkazov, ktoré niečo vykonávajú

Dvojklikneme na tlačidlo Button1. V Okne s programom sa objaví nasledovný text:

Pozor, tento text sami nepíšte ani z neho sami nič nemažte, inak vám program nebude fungovať .

Tým sme nastavili udalosť tlačidla OnClick - pri kliknutí na tlačidlo sa vykoná funkcia. Funkcia sa skladá:

* z hlavičky void __fastcall TForm1::Button1Click(TObject *Sender)
o hlavičke ešte nemusíme úplne rozumieť
o ale dokážeme rozpoznať názov funkcie Button1Click
* a tela funkcie funkcie, ktoré obsahuje príkazy uzavreté v zložených zátvorkách { }
o telo funkcie Button1Click je zatiaľ prázdne
o môže však obsahovať príkazy rozpísané aj na niekoľkých riadkoch

Ukážka tela funkcie, ktorá už obsahuje príkazy a niečo vykonáva:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TCanvas *g=Image1->Canvas;
g->TextOut(0, 0, "Ahoj");
}

Program skompilujeme a spustíme. Ak nám C++Builder vyhlási chyby:

* musíme program skontrolovať, či sme sa nepomýlili (nezabúdajte na medzery, veľké a malé písmená, bodkočiarky, úvodzovky)
* pokúsime program opäť skompilovať a spustiť

Keď už program beží a myšou klikneme na tlačidlo, vykonajú sa príkazy funkcie Button1Click:

TCanvas *g=Image1->Canvas; ... príkaz "inicializuje" grafickú plochu, do ktorej sa dá kresliť
g->TextOut(0, 0, "Ahoj!"); ... do v ľavého horného rohu grafickej plochy vypíše text Ahoj!

Príkazy sa vykonávajú v poradí, v akom sú napísané. Väčšinou je poradie príkazov dôležité (to je teraz aj náš prípad), inokedy môžeme poradie príkazov zamieňať.