Prednáška 1
- Oznamy
- Programátorské prostredie
- Prvý program
- Ďalší jednoduchý program
- Premenné
- Zhrnutie
- Textový výpis a načítanie
Pozrite si úvod k predmetu a pravidlá.
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.
- 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/poslali sme emailom.
- 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 a doplnkové cvičenia.
- Tento týždeň doplnkové cvičenia odporúčame hlavne pre začiatočníkov.
- Ak si neviete C++ nainštalovať na notebook, prineste ho na doplnkové cvičenia niektorú stredu, skúsime pomôcť.
- Test pre pokročilých bude v stredu 18:10 v posluchárni A, prihlasovanie do utorka večera.
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žnicuiostream, 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
iostreama teda do hlavičky programu dáme ` #include<iostream> ausing namespace std;` - Program najskôr vytvorí dve premenné
xaytypuint(a nepriradzuje im zatiaľ žiadne hodnoty). - Potom príkazom
coutvypíše text"Please enter the first number:"aby používateľ vedel, čo má robiť. - Potom pomocou príkazu
cinnačíta číslo od používateľa do premennejx. - To isté opakuje pre premennú
y. - Potom vytvorí novú premennú
resulta uloží do nej súčetxay. - Nakoniec vypíše výsledok aj s výrazom, ktorý sme počítali, pomocou
príkazu
cout.
Viac o príkaze cout
- Pomocou
coutvypisujeme na konzolu, t.j. textovú obrazovku. - To, čo chceme vypísať, pošleme na
coutpomocou ší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 premennejx(napr. hodnotu 10), potom znamienko plus (ktoré máme v úvodzovkách), potom obsah premennejy, potom znamienko rovnosti, potom obsah premennejresulta nakoniec koniec riadku.
- Napr.
Viac o príkaze cin
- Pomocu
cinnačí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
xay
cout << "Please enter two numbers separated by a space: ";
cin >> x >> y;
- Pozor,
cinnekontroluje, že používateľ zadáva rozumné hodnoty. Čo sa stane, ak namiesto čísla zadá nejaké písmená a podobne?