Programovanie (1) v C/C++
1-INF-127, ZS 2024/25
Prednáška 1: Rozdiel medzi revíziami
(50 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených) | |||
Riadok 1: | Riadok 1: | ||
Pozrite si [[Zimný semester, úvodné informácie|úvod k predmetu]] a [[Zimný semester, pravidlá|pravidlá]]. | Pozrite si [[Zimný semester, úvodné informácie|úvod k predmetu]] a [[Zimný semester, pravidlá|pravidlá]]. | ||
− | == | + | ==Oznamy== |
− | * Zajtra budú hlavné cvičenia s prvými bodovanými príkladmi | + | * Ak nemáte predmet zapísaný v AIS, zapíšte si ho pokiaľ možno už dnes do 14:00, aby sme pre vás pripravili konto na cvičenia. |
− | ** Oboznámenie sa s prostredím, s testovačom, riešenie jednoduchých príkladov k prvej prednáške | + | * Zajtra budú hlavné cvičenia s prvými bodovanými príkladmi. |
− | ** Budete potrebovať prihlasovacie meno a heslo do AIS2 na prihlásenie na počítač v učebni | + | ** Dve skupiny 9:50 a 14:50, zaradenie do skupiny ste dostali emailom. Treba prísť na určenú skupinu. |
− | ** Aspoň na úvod cvičenia odporúčame prísť aj pokročilým | + | ** Oboznámenie sa s prostredím, s testovačom, riešenie jednoduchých príkladov k prvej prednáške. |
− | + | ** Budete potrebovať prihlasovacie meno a heslo do AIS2 na prihlásenie na počítač v učebni. | |
− | * | + | ** Budete potrebovať aj heslo na náš testovač, ktoré vám pošleme dnes večer. |
− | * Ak si neviete C++ nainštalovať na notebook, prineste ho na doplnkové cvičenia, skúsime pomôcť | + | ** Aspoň na úvod cvičenia odporúčame prísť aj pokročilým. |
+ | ** Môžete si priniesť a používať aj vlastný počítač. | ||
+ | ** Ak z vážnych príčin nemôžete prísť, kontaktujte nás a dohodneme náhradné riešenie. | ||
+ | * Na cvičení alebo aj skôr prosím vyplňte anonymnú [https://forms.gle/ECzWp4kf3MEKhVzEA anketu]. | ||
+ | * V stredu druhá prednáška. | ||
+ | * Tento piatok sú doplnkové cvičenia pre všetkých nepovinné. | ||
+ | * Ak si neviete C++ nainštalovať na notebook, prineste ho na doplnkové cvičenia niektorý piatok, skúsime pomôcť. | ||
+ | * Do stredy obeda sa v prípade záujmu prihláste na test pre pokročilých. | ||
+ | * Test pre pokročilých bude v piatok počas doplnkových cvičení v I-H3. | ||
== Programátorské prostredie == | == Programátorské prostredie == | ||
− | * Na tomto predmete budeme programovať v jazyku '''C++''', budeme však z neho používať len malú časť | + | * Na tomto predmete budeme programovať v jazyku '''C++''', budeme však z neho používať len malú časť. |
− | * | + | * Na cvičeniach odporúčame vyskúšať ako v operačnom systéme '''Linux''' používať editor '''Kate'''. |
− | |||
* Môžete používať aj iné programátorské prostredia, ale | * Môžete používať aj iné programátorské prostredia, ale | ||
− | ** odovzdané programy | + | ** odovzdané programy musia správne pracovať na testovači, |
− | ** počas skúšky budete mať k dispozícii len to, čo beží v učebniach v Linuxe | + | ** počas skúšky budete mať k dispozícii len to, čo beží v učebniach v Linuxe bez pripojenia na internet, |
− | ** | + | ** v iných prostrediach vám nemusíme vedieť pomôcť s ich používaním. |
+ | * Ak na vašom počítači máte Windows, namiesto Kate si môžete nainštalovať napr. Visual Studio Code. | ||
+ | ** Viac informácií na stránke [[Zimný semester, softvér#In.C3.A9_program.C3.A1torsk.C3.A9_prostredia|o alternatívach ku Kate]]. | ||
+ | * Vypnite si v programátorských prostrediach AI pomocné nástroje na písanie alebo opravovanie kódu. | ||
− | * | + | * Potrebné nástroje si môžete nainštalovať zadarmo aj na vašom počítači alebo môžete mimo rozvrhu používať školské učebne. |
− | |||
==Prvý program== | ==Prvý program== | ||
Riadok 31: | Riadok 40: | ||
using namespace std; | using namespace std; | ||
− | int main( | + | int main() { |
cout << "Hello world!" << endl; | cout << "Hello world!" << endl; | ||
} | } | ||
Riadok 37: | Riadok 46: | ||
* Samotný text je vypísaný príkazom <tt>cout << "Hello world!" << endl;</tt> | * Samotný text je vypísaný príkazom <tt>cout << "Hello world!" << endl;</tt> | ||
* Všimnite si, že text <tt>Hello world!</tt> sme dali do úvodzoviek, čím poukazujeme na to, že to nie sú príkazy programovacieho jazyka, ale text, s ktorým treba niečo robiť. | * Všimnite si, že text <tt>Hello world!</tt> sme dali do úvodzoviek, čím poukazujeme na to, že to nie sú príkazy programovacieho jazyka, ale text, s ktorým treba niečo robiť. | ||
− | * Za | + | * Za príkaz sme dali bodkočiarku, ktorá ho ukončuje. |
* O vypisovaní si povieme viac neskôr, ale už teraz môžete vypisovať rôzne texty tým, že zmeníte text medzi úvodzovkami. | * O vypisovaní si povieme viac neskôr, ale už teraz môžete vypisovať rôzne texty tým, že zmeníte text medzi úvodzovkami. | ||
− | * Riadok <tt>int main( | + | * Riadok <tt>int main() {</tt> označuje začiatok programu, program ide až po ukončovaciu zloženú zátvorku <tt>}</tt> |
* Jazyk C++ sám o sebe neobsahuje príkazy na vypisovanie (<tt>cout <<...</tt>). Na to potrebujeme použiť '''knižnicu''': súbor príkazov, ktoré niekto už naprogramoval a my ich len používame. Prvé dva riadky programu nám umožnia používať štandardnú knižnicu <tt>iostream</tt>, ktorá je súčasťou C++ a ktorá obsahuje príkazy na vypisovanie. | * Jazyk C++ sám o sebe neobsahuje príkazy na vypisovanie (<tt>cout <<...</tt>). Na to potrebujeme použiť '''knižnicu''': súbor príkazov, ktoré niekto už naprogramoval a my ich len používame. Prvé dva riadky programu nám umožnia používať štandardnú knižnicu <tt>iostream</tt>, ktorá je súčasťou C++ a ktorá obsahuje príkazy na vypisovanie. | ||
Riadok 46: | Riadok 55: | ||
===Spúšťanie programu=== | ===Spúšťanie programu=== | ||
* Na to, aby sme náš program mohli spustiť na počítači, potrebujeme ho najskôr '''skompilovať''', t.j. preložiť do spustiteľného strojového kódu. | * Na to, aby sme náš program mohli spustiť na počítači, potrebujeme ho najskôr '''skompilovať''', t.j. preložiť do spustiteľného strojového kódu. | ||
− | * Ako na to, nájdete | + | * Ako na to, nájdete [[Zimný_semester,_softvér#Kate|v návode na prácu s editorom Kate]]. |
− | |||
==Ďalší jednoduchý program== | ==Ďalší jednoduchý program== | ||
Riadok 56: | Riadok 64: | ||
using namespace std; | using namespace std; | ||
− | int main( | + | int main() { |
− | cout << "Dnes je | + | cout << "Dnes je 23.9.2024." << endl; |
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | * Cvičenie: | + | * Cvičenie: Rozšírte program tak, aby na druhý riadok vypísal dátum v americkom formáte mesiac/deň/rok. |
==Premenné== | ==Premenné== | ||
Riadok 70: | Riadok 78: | ||
#include <iostream> | #include <iostream> | ||
using namespace std; | using namespace std; | ||
− | int main( | + | int main() { |
− | cout << " | + | cout << "23.9.2024" << endl; |
− | + | cout << "9/23/2024" << endl; | |
− | cout << "9/ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Ak by sme v ňom chceli zmeniť dátum na prvú prednášku o rok, museli by sme pomeniť vhodné | + | Ak by sme v ňom chceli zmeniť dátum na prvú prednášku o rok, museli by sme pomeniť vhodné čísla na dvoch miestach. Navyše keď vidíme v programe nejaké číslo, nemusí byť úplne jasné, čo znamená. |
Program teraz prepíšeme tak, aby sme deň, mesiac a rok mali zapísané symbolicky a mohli ich meniť na jednom mieste. | Program teraz prepíšeme tak, aby sme deň, mesiac a rok mali zapísané symbolicky a mohli ich meniť na jednom mieste. | ||
Riadok 84: | Riadok 91: | ||
#include <iostream> | #include <iostream> | ||
using namespace std; | using namespace std; | ||
− | int main( | + | int main() { |
− | int den = | + | int den = 23; |
int mesiac = 9; | int mesiac = 9; | ||
− | int rok = | + | int rok = 2024; |
cout << den << "." << mesiac << "." << rok << endl; | cout << den << "." << mesiac << "." << rok << endl; | ||
− | |||
cout << mesiac << "/" << den << "/" << rok << endl; | cout << mesiac << "/" << den << "/" << rok << endl; | ||
} | } | ||
Riadok 97: | Riadok 103: | ||
Symbolickým hodnotám '''den, mesiac, rok''' sa hovorí '''premenné'''. | Symbolickým hodnotám '''den, mesiac, rok''' sa hovorí '''premenné'''. | ||
− | * | + | * Premenná je vyhradené miesto v pamäti počítača, ku ktorému v programe pristupujeme pod určitým názvom. |
* Do tejto pamäti si môžeme zapísať hodnotu a neskôr ju použiť. | * Do tejto pamäti si môžeme zapísať hodnotu a neskôr ju použiť. | ||
Riadok 106: | Riadok 112: | ||
Ak v programe premenným priradíme iné čísla, môžeme vypísať iný dátum. | Ak v programe premenným priradíme iné čísla, môžeme vypísať iný dátum. | ||
− | Príkaz <tt>int x = 100;</tt> vieme rozpísať aj na dva príkazy < | + | Príkaz <tt>int x = 100;</tt> vieme rozpísať aj na dva príkazy: |
+ | <syntaxhighlight lang="C++"> | ||
+ | int x; | ||
+ | x = 100; | ||
+ | </syntaxhighlight> | ||
+ | Prvý z nich vytvorí premennú <tt>x</tt>, ktorá bude mať nejakú ľubovoľnú hodnotu a druhý túto počiatočnú hodnotu zmení na 100. | ||
==Zhrnutie== | ==Zhrnutie== | ||
* Programy, ktoré sme doteraz videli, vyzerali takto: | * Programy, ktoré sme doteraz videli, vyzerali takto: | ||
** Najprv sme zapli používanie niekoľkých knižníc | ** Najprv sme zapli používanie niekoľkých knižníc | ||
− | ** Samotný program začínal <tt>int main( | + | ** Samotný program začínal <tt>int main() {</tt> a končil zloženou zátvorkou <tt>}</tt> |
** Program mohol mať niekoľko príkazov ukončených bodkočiarkami, ktoré sa vykonávajú jeden po druhom. | ** Program mohol mať niekoľko príkazov ukončených bodkočiarkami, ktoré sa vykonávajú jeden po druhom. | ||
Riadok 128: | Riadok 139: | ||
== Textový výpis a načítanie == | == Textový výpis a načítanie == | ||
− | Vieme už vypísať niečo na obrazovku (výstup | + | Vieme už vypísať niečo na obrazovku (výstup, output) a podobne môžeme aj čítať, čo nám používateľ napíše na klávesnici (vstup, input). Takéto zadané hodnoty tiež uložíme do premenných, aby sme s nimi mohli ďalej pracovať. |
===Sčítanie čísel=== | ===Sčítanie čísel=== | ||
− | Nasledujúci program od | + | Nasledujúci program od používateľa vypýta dve čísla a vypíše ich súčet. |
<syntaxhighlight lang="C++"> | <syntaxhighlight lang="C++"> | ||
Riadok 137: | Riadok 148: | ||
using namespace std; | using namespace std; | ||
− | int main( | + | int main() { |
int x, y; | int x, y; | ||
Riadok 150: | Riadok 161: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Tu je príklad behu programu, keď | + | Tu je príklad behu programu, keď používateľ zadal čísla 10 a 3: |
<pre> | <pre> | ||
Riadok 158: | Riadok 169: | ||
</pre> | </pre> | ||
− | * Tento program používa na vstup a výstup príkazy z knižnice iostream a teda do hlavičky programu dáme <tt>#include <iostream></tt> a <tt>using namespace std;</tt> | + | * Tento program používa na vstup a výstup príkazy z knižnice <tt>iostream</tt> a teda do hlavičky programu dáme <tt>#include <iostream></tt> a <tt>using namespace std;</tt> |
− | * Program najskôr vytvorí dve premenné <tt>x</tt> a <tt>y</tt> typu <tt>int</tt> (a nepriradzuje im zatiaľ žiadne hodnoty) | + | * Program najskôr vytvorí dve premenné <tt>x</tt> a <tt>y</tt> typu <tt>int</tt> (a nepriradzuje im zatiaľ žiadne hodnoty). |
− | * Potom príkazom <tt>cout</tt> vypíše text <tt>"Please enter the first number: "</tt> aby | + | * Potom príkazom <tt>cout</tt> vypíše text <tt>"Please enter the first number: "</tt> aby používateľ vedel, čo má robiť. |
− | * Potom pomocou príkazu <tt>cin</tt> načíta číslo od používateľa do premennej <tt>x</tt> | + | * Potom pomocou príkazu <tt>cin</tt> načíta číslo od používateľa do premennej <tt>x</tt>. |
− | * To isté opakuje pre premennú <tt>y</tt> | + | * To isté opakuje pre premennú <tt>y</tt>. |
* Potom vytvorí novú premennú <tt>result</tt> a uloží do nej súčet <tt>x</tt> a <tt>y</tt>. | * Potom vytvorí novú premennú <tt>result</tt> a uloží do nej súčet <tt>x</tt> a <tt>y</tt>. | ||
* Nakoniec vypíše výsledok aj s výrazom, ktorý sme počítali, pomocou príkazu <tt>cout</tt>. | * Nakoniec vypíše výsledok aj s výrazom, ktorý sme počítali, pomocou príkazu <tt>cout</tt>. | ||
Riadok 168: | Riadok 179: | ||
=== Viac o príkaze cout === | === Viac o príkaze cout === | ||
− | * Pomocou <tt>cout</tt> vypisujeme na konzolu, t.j. textovú obrazovku | + | * Pomocou <tt>cout</tt> vypisujeme na konzolu, t.j. textovú obrazovku. |
− | * To, čo chceme vypísať pošleme na <tt>cout</tt> pomocou šípky <tt><<</tt> | + | * To, čo chceme vypísať, pošleme na <tt>cout</tt> pomocou šípky <tt><<</tt> |
− | * <tt>cout << endl;</tt> vypíše koniec riadku | + | * <tt>cout << endl;</tt> vypíše koniec riadku. |
* Môžeme naraz vypísať aj viac vecí oddelených šípkami <tt><<</tt> | * Môžeme naraz vypísať aj viac vecí oddelených šípkami <tt><<</tt> | ||
** Napr. <tt>cout << x << "+" << y << "=" << result << endl;</tt> vypíše najskôr obsah premennej <tt>x</tt> (napr. hodnotu 10), potom znamienko plus (ktoré máme v úvodzovkách), potom obsah premennej <tt>y</tt>, potom znamienko rovnosti, potom obsah premennej <tt>result</tt> a nakoniec koniec riadku. | ** Napr. <tt>cout << x << "+" << y << "=" << result << endl;</tt> vypíše najskôr obsah premennej <tt>x</tt> (napr. hodnotu 10), potom znamienko plus (ktoré máme v úvodzovkách), potom obsah premennej <tt>y</tt>, potom znamienko rovnosti, potom obsah premennej <tt>result</tt> a nakoniec koniec riadku. | ||
Riadok 176: | Riadok 187: | ||
=== Viac o príkaze cin === | === Viac o príkaze cin === | ||
− | * Pomocu <tt>cin</tt> načítavame z konzoly údaje od | + | * Pomocu <tt>cin</tt> načítavame z konzoly údaje od používateľa. |
* Tieto údaje pošleme do premenných pomocou šípky <tt>>></tt> | * Tieto údaje pošleme do premenných pomocou šípky <tt>>></tt> | ||
* Opäť môžeme načítať aj viac vecí naraz, napr. nasledovný úryvok si vypýta obe čísla naraz a uloží ich do premenných ''x'' a ''y'' | * Opäť môžeme načítať aj viac vecí naraz, napr. nasledovný úryvok si vypýta obe čísla naraz a uloží ich do premenných ''x'' a ''y'' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<syntaxhighlight lang="C++"> | <syntaxhighlight lang="C++"> | ||
− | + | cout << "Please enter two numbers separated by a space: "; | |
− | + | cin >> x >> y; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | * | + | * Pozor, <tt>cin</tt> nekontroluje, že používateľ zadáva rozumné hodnoty. Čo sa stane, ak namiesto čísla zadá nejaké písmená a podobne? |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Aktuálna revízia z 08:24, 23. september 2024
Pozrite si úvod k predmetu a pravidlá.
Obsah
Oznamy
- Ak nemáte predmet zapísaný v AIS, zapíšte si ho pokiaľ možno už dnes do 14:00, aby sme pre vás pripravili konto na cvičenia.
- Zajtra budú hlavné cvičenia s prvými bodovanými príkladmi.
- Dve skupiny 9:50 a 14:50, zaradenie do skupiny ste dostali emailom. Treba prísť na určenú skupinu.
- Oboznámenie sa s prostredím, s testovačom, riešenie jednoduchých príkladov k prvej prednáške.
- Budete potrebovať prihlasovacie meno a heslo do AIS2 na prihlásenie na počítač v učebni.
- Budete potrebovať aj heslo na náš testovač, ktoré vám pošleme dnes večer.
- Aspoň na úvod cvičenia odporúčame prísť aj pokročilým.
- Môžete si priniesť a používať aj vlastný počítač.
- Ak z vážnych príčin nemôžete prísť, kontaktujte nás a dohodneme náhradné riešenie.
- Na cvičení alebo aj skôr prosím vyplňte anonymnú anketu.
- V stredu druhá prednáška.
- Tento piatok sú doplnkové cvičenia pre všetkých nepovinné.
- Ak si neviete C++ nainštalovať na notebook, prineste ho na doplnkové cvičenia niektorý piatok, skúsime pomôcť.
- Do stredy obeda sa v prípade záujmu prihláste na test pre pokročilých.
- Test pre pokročilých bude v piatok počas doplnkových cvičení v I-H3.
Programátorské prostredie
- Na tomto predmete budeme programovať v jazyku C++, budeme však z neho používať len malú časť.
- Na cvičeniach odporúčame vyskúšať ako v operačnom systéme Linux používať editor Kate.
- Môžete používať aj iné programátorské prostredia, ale
- odovzdané programy musia správne pracovať na testovači,
- počas skúšky budete mať k dispozícii len to, čo beží v učebniach v Linuxe bez pripojenia na internet,
- v iných prostrediach vám nemusíme vedieť pomôcť s ich používaním.
- Ak na vašom počítači máte Windows, namiesto Kate si môžete nainštalovať napr. Visual Studio Code.
- Viac informácií na stránke o alternatívach ku Kate.
- Vypnite si v programátorských prostrediach AI pomocné nástroje na písanie alebo opravovanie kódu.
- Potrebné nástroje si môžete nainštalovať zadarmo aj na vašom počítači alebo môžete mimo rozvrhu používať školské učebne.
Prvý program
- Tradične sa v učebniciach programovania ako prvý uvádza program, ktorý iba vypíše na obrazovku text "Hello world!". Tu je v jazyku C++:
#include <iostream>
using namespace std;
int main() {
cout << "Hello world!" << endl;
}
- Samotný text je vypísaný príkazom cout << "Hello world!" << endl;
- Všimnite si, že text Hello world! sme dali do úvodzoviek, čím poukazujeme na to, že to nie sú príkazy programovacieho jazyka, ale text, s ktorým treba niečo robiť.
- Za príkaz sme dali bodkočiarku, ktorá ho ukončuje.
- O vypisovaní si povieme viac neskôr, ale už teraz môžete vypisovať rôzne texty tým, že zmeníte text medzi úvodzovkami.
- Riadok int main() { označuje začiatok programu, program ide až po ukončovaciu zloženú zátvorku }
- Jazyk C++ sám o sebe neobsahuje príkazy na vypisovanie (cout <<...). Na to potrebujeme použiť knižnicu: súbor príkazov, ktoré niekto už naprogramoval a my ich len používame. Prvé dva riadky programu nám umožnia používať štandardnú knižnicu iostream, ktorá je súčasťou C++ a ktorá obsahuje príkazy na vypisovanie.
Spúšťanie programu
- Na to, aby sme náš program mohli spustiť na počítači, potrebujeme ho najskôr skompilovať, t.j. preložiť do spustiteľného strojového kódu.
- Ako na to, nájdete v návode na prácu s editorom Kate.
Ďalší jednoduchý program
- Podobným spôsobom môžeme vypísať aj iný text. Napríklad dnešný dátum:
#include <iostream>
using namespace std;
int main() {
cout << "Dnes je 23.9.2024." << endl;
}
- Cvičenie: Rozšírte program tak, aby na druhý riadok vypísal dátum v americkom formáte mesiac/deň/rok.
Premenné
Príklad z cvičenia by mohol vyzerať napríklad takto:
#include <iostream>
using namespace std;
int main() {
cout << "23.9.2024" << endl;
cout << "9/23/2024" << endl;
}
Ak by sme v ňom chceli zmeniť dátum na prvú prednášku o rok, museli by sme pomeniť vhodné čísla na dvoch miestach. Navyše keď vidíme v programe nejaké číslo, nemusí byť úplne jasné, čo znamená.
Program teraz prepíšeme tak, aby sme deň, mesiac a rok mali zapísané symbolicky a mohli ich meniť na jednom mieste.
#include <iostream>
using namespace std;
int main() {
int den = 23;
int mesiac = 9;
int rok = 2024;
cout << den << "." << mesiac << "." << rok << endl;
cout << mesiac << "/" << den << "/" << rok << endl;
}
Symbolickým hodnotám den, mesiac, rok sa hovorí premenné.
- Premenná je vyhradené miesto v pamäti počítača, ku ktorému v programe pristupujeme pod určitým názvom.
- Do tejto pamäti si môžeme zapísať hodnotu a neskôr ju použiť.
- Príkaz int x = 100; vytvorí novú premennú a uloží do nej hodnotu 100.
- Každá premenná má určitý typ, ktorý určuje, aké hodnoty do nej môžeme ukladať.
- Tieto premenné majú typ int, čo je skratka zo slova integer, celé číslo.
Ak v programe premenným priradíme iné čísla, môžeme vypísať iný dátum.
Príkaz int x = 100; vieme rozpísať aj na dva príkazy:
int x;
x = 100;
Prvý z nich vytvorí premennú x, ktorá bude mať nejakú ľubovoľnú hodnotu a druhý túto počiatočnú hodnotu zmení na 100.
Zhrnutie
- Programy, ktoré sme doteraz videli, vyzerali takto:
- Najprv sme zapli používanie niekoľkých knižníc
- Samotný program začínal int main() { a končil zloženou zátvorkou }
- Program mohol mať niekoľko príkazov ukončených bodkočiarkami, ktoré sa vykonávajú jeden po druhom.
- Logiku za tým, prečo jednotlivé príkazy píšu tak, ako sa píšu, sme zatiaľ ešte nevysvetľovali, mali by ste však byť schopní modifikovať príklady uvedené v prednáške menením čísel, textov v úvodzovkách, pridávaním ďalších príkazov a podobne.
- Upozornenia:
- Je rozdiel medzi malými a veľkými písmenami
- Všetky čiarky, bodkočiarky, zátvorky a podobne sú dôležité
- Na väčšine miest v programe môžeme voľne pridávať medzery a konce riadku, snažíme sa tým program spraviť prehľadný
- Programy, ktoré sme videli doteraz, nie sú veľmi zaujímavé, lebo vždy robia to isté a robia pevný počet krokov, ktoré sme museli ručne všetky vypísať. Ďalej uvidíme
- načítanie, ktoré nám umožní získať dáta od používateľa
- podmienky, ktoré nám umožnia vykonávať príkazy podľa okolností
- cykly, ktoré nám umožnia opakovať tie isté príkazy veľa krát
Textový výpis a načítanie
Vieme už vypísať niečo na obrazovku (výstup, output) a podobne môžeme aj čítať, čo nám používateľ napíše na klávesnici (vstup, input). Takéto zadané hodnoty tiež uložíme do premenných, aby sme s nimi mohli ďalej pracovať.
Sčítanie čísel
Nasledujúci program od používateľa vypýta dve čísla a vypíše ich súčet.
#include <iostream>
using namespace std;
int main() {
int x, y;
cout << "Please enter the first number: ";
cin >> x;
cout << "Please enter the second number: ";
cin >> y;
int result = x + y;
cout << x << "+" << y << "=" << result << endl;
}
Tu je príklad behu programu, keď používateľ zadal čísla 10 a 3:
Please enter the first number: 10 Please enter the second number: 3 10+3=13
- Tento program používa na vstup a výstup príkazy z knižnice iostream a teda do hlavičky programu dáme #include <iostream> a using namespace std;
- Program najskôr vytvorí dve premenné x a y typu int (a nepriradzuje im zatiaľ žiadne hodnoty).
- Potom príkazom cout vypíše text "Please enter the first number: " aby používateľ vedel, čo má robiť.
- Potom pomocou príkazu cin načíta číslo od používateľa do premennej x.
- To isté opakuje pre premennú y.
- Potom vytvorí novú premennú result a uloží do nej súčet x a y.
- Nakoniec vypíše výsledok aj s výrazom, ktorý sme počítali, pomocou príkazu cout.
Viac o príkaze cout
- Pomocou cout vypisujeme na konzolu, t.j. textovú obrazovku.
- To, čo chceme vypísať, pošleme na cout pomocou šípky <<
- cout << endl; vypíše koniec riadku.
- Môžeme naraz vypísať aj viac vecí oddelených šípkami <<
- Napr. cout << x << "+" << y << "=" << result << endl; vypíše najskôr obsah premennej x (napr. hodnotu 10), potom znamienko plus (ktoré máme v úvodzovkách), potom obsah premennej y, potom znamienko rovnosti, potom obsah premennej result a nakoniec koniec riadku.
Viac o príkaze cin
- Pomocu cin načítavame z konzoly údaje od používateľa.
- Tieto údaje pošleme do premenných pomocou šípky >>
- Opäť môžeme načítať aj viac vecí naraz, napr. nasledovný úryvok si vypýta obe čísla naraz a uloží ich do premenných x a y
cout << "Please enter two numbers separated by a space: ";
cin >> x >> y;
- Pozor, cin nekontroluje, že používateľ zadáva rozumné hodnoty. Čo sa stane, ak namiesto čísla zadá nejaké písmená a podobne?