Programovanie (1) v C/C++
1-INF-127, ZS 2024/25

Úvod · Pravidlá · Prednášky · Softvér · Testovač
· Kontaktujte nás pomocou e-mailovej adresy E-prg.png (bude odpovedať ten z nás, kto má príslušnú otázku na starosti alebo kto má práve čas).
· Prosíme študentov, aby si pravidelne čítali e-maily na @uniba.sk adrese alebo aby si tieto emaily preposielali na adresu, ktorú pravidelne čítajú.
· Test pre pokročilých bude v piatok 27.9. o 13:10 v posluchárni A (pracovať budete na papieri, bez počítača). Ako prípravu si môžete pozrieť ukážky príkladov z archívu predmetu a ukážkový test. Na test si môžete priniesť ťahák v rozsahu jedného listu (dvoch strán) A4. V prípade záujmu o test sa prihláste do stredy 25.9. obeda na testovači (heslo na testovač dostanete v pondelok poobede). Ak chcete na test prísť a máte s týmto časom konflikt, dajte nám vedieť čím skôr.
· Tento piatok o 13:10 budú doplnkové cvičenia nepovinné. Príďte ak máte otázky ohľadom softvéru na notebookoch alebo ohľadom úloh z cvičení 1.


Zimný semester, softvér: Rozdiel medzi revíziami

Z Programovanie
Skočit na navigaci Skočit na vyhledávání
 
(16 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených)
Riadok 15: Riadok 15:
  
 
===Ako spustiť Kate v učebni===
 
===Ako spustiť Kate v učebni===
* Prihláste sa do Linuxu rovnakým menom a heslom, aké používate v AISe
+
* Prihláste sa do Linuxu rovnakým menom a heslom, aké používate v AISe.
* V menu s ponukou programov nájdite Kate (v časti Utilities), alebo stlačte ALT+F2 a napíšte Kate
+
* Atlačte ALT+F2 a napíšte kate (alebo Kate nájdite v menu s ponukou programov v časti Utilities).
* Odporúčame sedieť vždy pri tom istom počítači, máte uložené nastavenia
+
* Odporúčame sedieť vždy pri tom istom počítači, máte uložené nastavenia.
  
 
===Vytvorenie nového programu===
 
===Vytvorenie nového programu===
 
* <tt>File -> New</tt> (Ctrl+N) vytvorí nový textový súbor
 
* <tt>File -> New</tt> (Ctrl+N) vytvorí nový textový súbor
* Uložte ho pomocou <tt>File -> Save</tt> (Ctrl+S), bude od vás žiadať nejaké meno a môžete si zvoliť kam bude daný súbor umiestnený. Nazvať si ho môžeme napr. <tt>program.cpp</tt>
+
* Uložte ho pomocou <tt>File -> Save</tt> (Ctrl+S), bude od vás žiadať nejaké meno a môžete si zvoliť, kam bude daný súbor umiestnený. Nazvať si ho môžeme napr. <tt>prog.cpp</tt>
 
* Dôležité je pridať koncovku <tt>.cpp</tt> , vďaka nej Kate vie, že chcete programovať v C++ a mal by vám automaticky zapnúť C++ zvýrazňovanie (ktoré je veľmi praktické)
 
* Dôležité je pridať koncovku <tt>.cpp</tt> , vďaka nej Kate vie, že chcete programovať v C++ a mal by vám automaticky zapnúť C++ zvýrazňovanie (ktoré je veľmi praktické)
  
 
===Nastavenia editora===
 
===Nastavenia editora===
 
Na programovanie odporúčame spraviť / skontrolovať nasledujúce nastavenia (keď máte otvorený .cpp súbor)
 
Na programovanie odporúčame spraviť / skontrolovať nasledujúce nastavenia (keď máte otvorený .cpp súbor)
* automatické zvýrazňovanie <tt>Tools -> Highlighting -> Sources</tt>, malo by byť zaškrtnuté C++
 
* automatické C++ odsádzanie <tt>Tools -> Indentation</tt> malo by byť zaškrtnuté C Style
 
 
* zobrazovanie terminálu  
 
* zobrazovanie terminálu  
 
** <tt>Settings -> Configure Kate -> Plugins</tt> a tam zaškrtnite Plugin s terminálom
 
** <tt>Settings -> Configure Kate -> Plugins</tt> a tam zaškrtnite Plugin s terminálom
 
** <tt>View -> Tool Views</tt> a zaškrtnite <tt>Show Terminal</tt>
 
** <tt>View -> Tool Views</tt> a zaškrtnite <tt>Show Terminal</tt>
 
** <tt>Tools -> Synchronize Terminal with Current Document</tt>
 
** <tt>Tools -> Synchronize Terminal with Current Document</tt>
 +
* automatické zvýrazňovanie <tt>Tools -> Highlighting -> Sources</tt>, malo by byť zaškrtnuté C++
 +
* automatické C++ odsádzanie <tt>Tools -> Indentation</tt> malo by byť zaškrtnuté C Style
 
* <tt>Tools -> align</tt> vám preformátuje vybranú časť programu
 
* <tt>Tools -> align</tt> vám preformátuje vybranú časť programu
  
 
===Kompilovanie a spustenie programu===
 
===Kompilovanie a spustenie programu===
* Kate nemá vstavané kompilovanie ani spúšťanie (keďže je to textový editor), preto na to treba používať '''terminál''' (textové príkazy)
+
* Kate nemá vstavané kompilovanie ani spúšťanie, preto na to treba používať '''terminál''' (textové príkazy)
* v Kate viete mať priamo otvorenú lištu s terminálom, čo je veľmi praktické, mala by sa nachádzať dole pod textovým oknom (prípade kliknite na malú ikonku Terminal)
+
* V Kate viete mať priamo otvorenú lištu s terminálom, čo je veľmi praktické. Mala by sa nachádzať dole pod textovým oknom (prípade kliknite na malú ikonku Terminal)
 
* Kliknite do okna s terminálom, aby sa stalo aktívnym
 
* Kliknite do okna s terminálom, aby sa stalo aktívnym
* v termináli sa treba dostať do priečinku s vaším súborom
+
* V termináli sa treba dostať do priečinku s vaším súborom
 
** buď sa to stane automaticky vďaka nastaveniu <tt>Tools -> Synchronize Terminal with Current Document</tt>
 
** buď sa to stane automaticky vďaka nastaveniu <tt>Tools -> Synchronize Terminal with Current Document</tt>
 
** alebo použite príkazy nižšie
 
** alebo použite príkazy nižšie
* Ak sa nachádzate v priečinku, v ktorom sa nachádza váš <tt>.cpp</tt> program, môžete ho pomocou konzoly kompilovať a spúšťať
+
* Ak sa nachádzate v priečinku, v ktorom sa nachádza váš program napr. v súbore <tt>prog.cpp</tt>, môžete ho pomocou konzoly kompilovať a spúšťať
* Príkaz <tt>make meno_suboru_bez_koncovky</tt> - napíšeme meno súboru, ale bez koncovky, v tom istom priečinku sa vytvorí súbor ''meno_suboru_bez_koncovky'', čo bude spustiteľný program (linuxový ekvivalent .exe)
+
* Príkaz <tt>make prog</tt> (slovo <tt>prog</tt> je meno súboru, ale bez koncovky), v tom istom priečinku sa vytvorí súbor ''prog'', čo bude spustiteľný program (linuxový ekvivalent .exe)
* Príkaz <tt>g++ program.cpp -o program</tt> - vytvorí to isté ako príkaz pred tým, akurát vieme nastavovať parametre kompilátora g++
+
* Príkaz <tt>g++ prog.cpp -o prog</tt> - vytvorí to isté ako príkaz pred tým, akurát vieme nastavovať parametre kompilátora g++
* Príkaz <tt>./spustitelny_subor</tt> - spustí daný program v priečinku, ak mal niečo vypísať, vypíše to do konzoly, ak mal niečo čítať, načítava to tiež z konzoly (ak nie je povedané inak)
+
* Príkaz <tt>./prog</tt> - spustí daný program v priečinku, ak mal niečo vypísať, vypíše to do konzoly, ak mal niečo čítať, načítava to tiež z konzoly (ak nie je povedané inak)
 +
* Text <tt>prog</tt> v príkazoch vyššie nahraďte menom súboru, s ktorým pracujete.
  
 
===Ďalšia práca s teminálom===
 
===Ďalšia práca s teminálom===
* V termináli by ste mali vidieť svoje meno, nejaké ďalšie veci a potom <tt>:~$</tt> za ktorým kliká kurzor  
+
* V termináli by ste mali vidieť svoje meno, nejaké ďalšie veci a potom <tt>:~$</tt> za ktorým kliká kurzor.
* časť za : vám hovorí, v ktorom priečinku sa nachádzate, <tt>~</tt> je domový priečinok
+
* Časť za : vám hovorí, v ktorom priečinku sa nachádzate, <tt>~</tt> je domový priečinok.
* príkaz <tt>ls</tt> vypíše zoznam súborov a priečinkov v priečinku, v ktorom ste (skratka z list)
+
* Príkaz <tt>ls</tt> vypíše zoznam súborov a priečinkov v priečinku, v ktorom ste (skratka z list).
* príkaz <tt>cd meno_priečinka</tt> - presunie sa do priečinka s daným menom, ak sa taký priečinok nachádza v aktuálnom priečinku (skratka z change directory)
+
* Príkaz <tt>cd meno_priečinka</tt> presuniete sa do priečinka s daným menom, ak sa taký priečinok nachádza v aktuálnom priečinku (skratka z change directory).
* príkaz <tt>cd ..</tt> - posuniete sa o jeden priečinok vyššie
+
* Príkaz <tt>cd ..</tt> presuniete sa o jeden priečinok vyššie.
* ak budete pri písaní mena priečinka/súboru stláčať Tabulátor, bude sa vám to snažiť automaticky doplniť hľadaný súbor, ak je možností viac, doplní čo najviac znakov, ktoré sú rovnaké
+
* Ak budete pri písaní mena priečinka/súboru stláčať klávesu Tab, bude sa vám snažiť automaticky doplniť hľadaný súbor. Ak je možností viac, doplní čo najviac znakov, ktoré sú rovnaké.
* šípkou hore a dole listujete v histórii príkazov a stlačením Enter ho môžete spustiť znovu
+
* Šípkou hore a dole listujete v histórii príkazov a stlačením Enter ho môžete spustiť znovu.
 +
 
 +
Ak si v aktuálnom priečinku vytvoríte textový súbor so vstupom, môžete ho poslať na vstup vášho programu pomocou presmerovania:
 +
* Namiesto <tt>./prog</tt> spustíte <tt>./prog < my_input.txt</tt>
 +
* Výsledok bude rovnaký ako keby ste obsah súboru <tt>my_input.txt</tt> ručne písali na konzolu.
 +
* Ak by ste si výsledok programu tiež chceli uložiť do súboru, použite opačné presmerovanie: <tt>./prog < my_input.txt > my_output.txt</tt>
  
 
===Práca v Kate s grafickou knižnicou SVGdraw===
 
===Práca v Kate s grafickou knižnicou SVGdraw===
Riadok 62: Riadok 68:
  
 
'''Kompilácia s grafickou knižnicou SVGdraw'''
 
'''Kompilácia s grafickou knižnicou SVGdraw'''
* kompilátor potrebuje vedieť, že váš program chce používať funkcie z iného súboru (<tt>SVGdraw.cpp</tt>) a preto mu musíte povedať, aby ich nalinkoval. Obyčajný make fungovať nebude
+
* Kompilátor potrebuje vedieť, že váš program chce používať funkcie z iného súboru (<tt>SVGdraw.cpp</tt>) a preto mu musíte povedať, aby ich nalinkoval. Obyčajný make fungovať nebude.
* použite príkaz <tt>g++ program.cpp SVGdraw.cpp -o program</tt>
+
* Použite príkaz <tt>g++ prog.cpp SVGdraw.cpp -o prog</tt>
* vytvorí sa vám súbor <tt>program</tt>, ktorý môžete normálne spustiť pomocou <tt>./program</tt>
+
* Vytvorí sa vám súbor <tt>prog</tt>, ktorý môžete normálne spustiť pomocou <tt>./prog</tt>
* v priečinku s programom sa vytvorí súbor s príponou <tt>.svg</tt>, ktorý si môžete pozrieť napr. v internetových prehliadačoch firefox alebo chromium
+
* V priečinku s programom sa vytvorí súbor s príponou <tt>.svg</tt>, ktorý si môžete pozrieť napr. v internetových prehliadačoch firefox alebo chromium.
  
 
==Iné programátorské prostredia==
 
==Iné programátorské prostredia==
Riadok 73: Riadok 79:
 
===Viacplatformové prostredia===
 
===Viacplatformové prostredia===
 
Nasledovné prostredia by mali fungovať na Linuxových aj Windowsových počítačoch, aj keď nie vždy je ľahké ich nainštalovať a môžu byť tiež pomerne pomalé
 
Nasledovné prostredia by mali fungovať na Linuxových aj Windowsových počítačoch, aj keď nie vždy je ľahké ich nainštalovať a môžu byť tiež pomerne pomalé
 +
* [https://code.visualstudio.com/ Visual Studio Code] od firmy Microsoft ([https://code.visualstudio.com/docs/languages/cpp návod na zapnutie C++])
 
* [http://netbeans.apache.org/ Netbeans]
 
* [http://netbeans.apache.org/ Netbeans]
 
* [https://www.eclipse.org/downloads/packages/release/2019-09/r/eclipse-ide-cc-developers Eclipse]
 
* [https://www.eclipse.org/downloads/packages/release/2019-09/r/eclipse-ide-cc-developers Eclipse]
 
* [http://www.codeblocks.org/ Code::Blocks]
 
* [http://www.codeblocks.org/ Code::Blocks]
 
* CLion, komerčný softvér so [https://www.jetbrains.com/student/ študentskou licenciou zadarmo]
 
* CLion, komerčný softvér so [https://www.jetbrains.com/student/ študentskou licenciou zadarmo]
* [https://code.visualstudio.com/ Visual Studio Code] od firmy Microsoft
+
 
 +
Z nich v učebniach v Linuxe fungujú VS Code, Netbeans, Code::Blocks, Eclipse
 +
* Tieto prostredia teda môžete použiť aj na skúške (vo VS Code ale nebudú pluginy pre C++)
 +
* Návod na použitie prostredia Netbeans z minulých semestrov nájdete [http://compbio.fmph.uniba.sk/vyuka/prog/index.php/2018/19_Programovanie_(1)_v_C/C%2B%2B#Netbeans tu]
  
 
===Windows===
 
===Windows===
Riadok 86: Riadok 96:
 
* Ide o najjednoduchšiu možnosť podobnú práci s Kate pod Linuxom.
 
* Ide o najjednoduchšiu možnosť podobnú práci s Kate pod Linuxom.
 
* GCC je pôvodom Linuxový kompilátor pre C/C++. Existuje však aj verzia pre Windows, ktorá je súčasťou prostredia [https://sourceforge.net/projects/mingw/ MinGW].  
 
* GCC je pôvodom Linuxový kompilátor pre C/C++. Existuje však aj verzia pre Windows, ktorá je súčasťou prostredia [https://sourceforge.net/projects/mingw/ MinGW].  
* Programy možno písať v ľubovoľnom textovom editore, idálne však v takom, ktorý podporuje zvýrazňovanie syntaxe pre C a C++ &ndash; napríklad [https://notepad-plus-plus.org/ Notepad++], [http://www.pspad.com/sk/ PSPad] a mnohé ďalšie.
+
* Programy možno písať v ľubovoľnom textovom editore, ideálne však v takom, ktorý podporuje zvýrazňovanie syntaxe pre C a C++, napríklad [https://notepad-plus-plus.org/ Notepad++], [http://www.pspad.com/sk/ PSPad] a mnohé ďalšie.
 
* Programy potom kompilujeme z príkazového riadku: napríklad súbor <tt>program.cpp</tt> skompilujeme tak, že sa v príkazovom riadku nastavíme do adresára, ktorý ho obsahuje a následne zadáme príkaz ako  
 
* Programy potom kompilujeme z príkazového riadku: napríklad súbor <tt>program.cpp</tt> skompilujeme tak, že sa v príkazovom riadku nastavíme do adresára, ktorý ho obsahuje a následne zadáme príkaz ako  
 
<pre>
 
<pre>
g++ -o program program.cpp
+
g++ -o prog prog.cpp
 
</pre>
 
</pre>
Tým sa vytvorí spustiteľný súbor <tt>program.exe</tt>, ktorý možno spustiť z príkazového riadku príkazom <tt>program</tt>.
+
Tým sa vytvorí spustiteľný súbor <tt>prog.exe</tt>, ktorý možno spustiť z príkazového riadku príkazom <tt>prog</tt>.
 
* Viaceré textové editory podporujú aj integráciu s príkazovým riadkom, takže kompilovanie a spúštanie programov možno realizovať priamo z nich.
 
* Viaceré textové editory podporujú aj integráciu s príkazovým riadkom, takže kompilovanie a spúštanie programov možno realizovať priamo z nich.
  
Riadok 101: Riadok 111:
  
 
'''2. NetBeans'''
 
'''2. NetBeans'''
 +
* NetBeans je IDE určené najmä pre jazyk Java. Možno v ňom však vyvíjať aj aplikácie pre C a C++.
 +
* Je potrebné mať nainštalované MinGW (viď vyššie) a súčasne aj utilitu MSYS. Je možné nainštalovať aj [https://sourceforge.net/projects/mingwbundle/ obidva tieto programy naraz]. Po ukončení inštalácie je potrebné okrem cesty na adresár obsahujúci <tt>gcc.exe</tt> a <tt>g++.exe</tt> do premennej <tt>PATH</tt> pridať aj adresár obsahujúci <tt>make.exe</tt>.
 +
* Podrobný návod na inštaláciu je k dispozícii [https://netbeans.org/community/releases/80/cpp-setup-instructions.html tu], pričom odporúčame variant s MinGW.
  
 
'''3. Dev-C++'''
 
'''3. Dev-C++'''
 +
* Iné IDE pre Windows s pomerne bezproblémovou inštaláciou (nepotrebuje MinGW).
 +
* Dostupné je [https://sourceforge.net/projects/orwelldevcpp/ tu].
  
 
'''4. Code::Blocks'''
 
'''4. Code::Blocks'''
 +
* Multiplatformové IDE.
 +
* Dostupné [http://www.codeblocks.org/ tu].
  
 
'''5. Visual Studio 2015'''  
 
'''5. Visual Studio 2015'''  
 +
* Profesionálne komerčné prostredie od firmy Microsoft, ktoré si ako študenti môžete na študijné účely nainštalovať podľa [http://zona.fmph.uniba.sk/sluzby-a-administrativa/it-sluzby/softver-dostupny-na-fakulte/ pokynov na fakultnej stránke]
  
 
+
'''Ak máte na počítači operačný systém Windows, ale chceli by ste si vyskúšať aj prácu v Linuxe:'''
 
+
* Môžete si nainštalovať Linux do virtuálneho počítača, napr. pomocou programu [https://www.virtualbox.org/ VirtualBox].
Nástroje podobné na editor Kate: <!-- TODO ako inštalovať kompilator plus vhodny editor -->
+
* Alebo môžete štartovať Linux nainštalovaný na [https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-windows#0 USB kľúči].
 
 
Ak máte na počítači operačný systém Windows, ale chceli by ste si vyskúšať aj prácu v Linuxe,
 
* môžete si nainštalovať Linux do virtuálneho počítača, napr. pomocou programu [https://www.virtualbox.org/ VirtualBox].
 
* alebo môžete štartovať Linux nainštalovaný na [https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-windows#0 USB kľúči]
 
 
 
Ďalšie GUI pre Windows
 
* Visual Studio 2015 od firmy Microsoft, ktoré si ako študenti môžete na študijné účely nainštalovať podľa [http://zona.fmph.uniba.sk/sluzby-a-administrativa/it-sluzby/softver-dostupny-na-fakulte/ pokynov na fakultnej stránke]
 
* [https://sourceforge.net/projects/orwelldevcpp/ Dev-C++]
 
  
 
===On-line prostredia===
 
===On-line prostredia===
Riadok 125: Riadok 135:
 
* Mierne zložitejšia stránka, v ktorej sa dá program interaktívne spúšťať a dá sa robiť aj s SVGdraw: http://www.tutorialspoint.com/compile_cpp11_online.php
 
* Mierne zložitejšia stránka, v ktorej sa dá program interaktívne spúšťať a dá sa robiť aj s SVGdraw: http://www.tutorialspoint.com/compile_cpp11_online.php
 
Tieto stránky nebudete môcť používať na skúške.
 
Tieto stránky nebudete môcť používať na skúške.
 +
 +
 +
==Kontrola práce s pamäťou programom valgrind==
 +
 +
V druhej polovici semestra budeme pracovať aj so smerníkmi a alokáciou pamäte. Na odhalenie chýb, ktoré pri práci s pamäťou vznikajú, môžete použiť program valgrind.
 +
* [[Valgrind|Návod na použite programu valgrind]].

Aktuálna revízia z 09:00, 24. september 2024

V tomto dokumente popisujeme niektoré nástroje, ktoré môžete použiť na programovanie v tomto semestri. Na cvičeniach a skúške odporúčame používať editor Kate popísaný nižšie.

Môžete používať aj iné nástroje, ale

  • k iným prostrediam vám nemusíme vedieť poradiť, ako ich používať
  • na skúške budete môcť používať iba tie programy, ktoré sú k dispozícii v učebniach na fakulte v Linuxe, pričom nebude k dispozícii internet

Prenášanie programov a odovzdávanie domácich úloh

  • Pri odovzdávaní domácich úloh odovzdávajte súbor .cpp s vašim programom (prípadne ďalšie súbory, ak to vyžaduje zadanie).
  • Ak pracujete na rôznych počítačoch v rámci FMFI učební, svoje projekty si ukladajte na sieťovom disku net
  • Dáta zo sieťového disku si môžete stiahnuť v učebni na USB kľúčik, alebo aj cez sieť z domu prihlásením sa na študentský Linuxový klaster daVinci (davinci.fmph.uniba.sk). Na prenos dát môžete použiť napríklad windowsovský program winscp
  • Odovzdané programy si môžete počas semestra stiahnuť z testovača, po začiatku ďalšieho semestra k ním stratíte prístup

Kate

Kate je základný textový editor, ponúka však dostatok nastavení, aby sa s v ňom pohodlne písali jednoduché programy (nie je však úplne vhodný na väčšie projekty).

Ako spustiť Kate v učebni

  • Prihláste sa do Linuxu rovnakým menom a heslom, aké používate v AISe.
  • Atlačte ALT+F2 a napíšte kate (alebo Kate nájdite v menu s ponukou programov v časti Utilities).
  • Odporúčame sedieť vždy pri tom istom počítači, máte uložené nastavenia.

Vytvorenie nového programu

  • File -> New (Ctrl+N) vytvorí nový textový súbor
  • Uložte ho pomocou File -> Save (Ctrl+S), bude od vás žiadať nejaké meno a môžete si zvoliť, kam bude daný súbor umiestnený. Nazvať si ho môžeme napr. prog.cpp
  • Dôležité je pridať koncovku .cpp , vďaka nej Kate vie, že chcete programovať v C++ a mal by vám automaticky zapnúť C++ zvýrazňovanie (ktoré je veľmi praktické)

Nastavenia editora

Na programovanie odporúčame spraviť / skontrolovať nasledujúce nastavenia (keď máte otvorený .cpp súbor)

  • zobrazovanie terminálu
    • Settings -> Configure Kate -> Plugins a tam zaškrtnite Plugin s terminálom
    • View -> Tool Views a zaškrtnite Show Terminal
    • Tools -> Synchronize Terminal with Current Document
  • automatické zvýrazňovanie Tools -> Highlighting -> Sources, malo by byť zaškrtnuté C++
  • automatické C++ odsádzanie Tools -> Indentation malo by byť zaškrtnuté C Style
  • Tools -> align vám preformátuje vybranú časť programu

Kompilovanie a spustenie programu

  • Kate nemá vstavané kompilovanie ani spúšťanie, preto na to treba používať terminál (textové príkazy)
  • V Kate viete mať priamo otvorenú lištu s terminálom, čo je veľmi praktické. Mala by sa nachádzať dole pod textovým oknom (prípade kliknite na malú ikonku Terminal)
  • Kliknite do okna s terminálom, aby sa stalo aktívnym
  • V termináli sa treba dostať do priečinku s vaším súborom
    • buď sa to stane automaticky vďaka nastaveniu Tools -> Synchronize Terminal with Current Document
    • alebo použite príkazy nižšie
  • Ak sa nachádzate v priečinku, v ktorom sa nachádza váš program napr. v súbore prog.cpp, môžete ho pomocou konzoly kompilovať a spúšťať
  • Príkaz make prog (slovo prog je meno súboru, ale bez koncovky), v tom istom priečinku sa vytvorí súbor prog, čo bude spustiteľný program (linuxový ekvivalent .exe)
  • Príkaz g++ prog.cpp -o prog - vytvorí to isté ako príkaz pred tým, akurát vieme nastavovať parametre kompilátora g++
  • Príkaz ./prog - spustí daný program v priečinku, ak mal niečo vypísať, vypíše to do konzoly, ak mal niečo čítať, načítava to tiež z konzoly (ak nie je povedané inak)
  • Text prog v príkazoch vyššie nahraďte menom súboru, s ktorým pracujete.

Ďalšia práca s teminálom

  • V termináli by ste mali vidieť svoje meno, nejaké ďalšie veci a potom :~$ za ktorým kliká kurzor.
  • Časť za : vám hovorí, v ktorom priečinku sa nachádzate, ~ je domový priečinok.
  • Príkaz ls vypíše zoznam súborov a priečinkov v priečinku, v ktorom ste (skratka z list).
  • Príkaz cd meno_priečinka presuniete sa do priečinka s daným menom, ak sa taký priečinok nachádza v aktuálnom priečinku (skratka z change directory).
  • Príkaz cd .. presuniete sa o jeden priečinok vyššie.
  • Ak budete pri písaní mena priečinka/súboru stláčať klávesu Tab, bude sa vám snažiť automaticky doplniť hľadaný súbor. Ak je možností viac, doplní čo najviac znakov, ktoré sú rovnaké.
  • Šípkou hore a dole listujete v histórii príkazov a stlačením Enter ho môžete spustiť znovu.

Ak si v aktuálnom priečinku vytvoríte textový súbor so vstupom, môžete ho poslať na vstup vášho programu pomocou presmerovania:

  • Namiesto ./prog spustíte ./prog < my_input.txt
  • Výsledok bude rovnaký ako keby ste obsah súboru my_input.txt ručne písali na konzolu.
  • Ak by ste si výsledok programu tiež chceli uložiť do súboru, použite opačné presmerovanie: ./prog < my_input.txt > my_output.txt

Práca v Kate s grafickou knižnicou SVGdraw

  • Knižnicu začneme používať od piatej prednášky
  • Stiahnite si knižnicu
    • Stiahnuté súbory SVDdraw.cpp a SVGdraw.h si uložte do priečinku, v ktorom máte svoje programy
  • do vlastného programu potom musíte na začiatok pridať riadok #include "SVGdraw.h"

Kompilácia s grafickou knižnicou SVGdraw

  • Kompilátor potrebuje vedieť, že váš program chce používať funkcie z iného súboru (SVGdraw.cpp) a preto mu musíte povedať, aby ich nalinkoval. Obyčajný make fungovať nebude.
  • Použite príkaz g++ prog.cpp SVGdraw.cpp -o prog
  • Vytvorí sa vám súbor prog, ktorý môžete normálne spustiť pomocou ./prog
  • V priečinku s programom sa vytvorí súbor s príponou .svg, ktorý si môžete pozrieť napr. v internetových prehliadačoch firefox alebo chromium.

Iné programátorské prostredia

Okrem jednoduchých editorov ako Kate existujú aj zložitejšie prostredia, ktoré podporujú prácu programátora, najmä na väčších projektoch. Zvyknú sa nazývať IDE (integrated development environment). Výhodu je napríklad zabudovaný debugger, ktorý umožňuje krokovať program pri hľadaní chýb.

Viacplatformové prostredia

Nasledovné prostredia by mali fungovať na Linuxových aj Windowsových počítačoch, aj keď nie vždy je ľahké ich nainštalovať a môžu byť tiež pomerne pomalé

Z nich v učebniach v Linuxe fungujú VS Code, Netbeans, Code::Blocks, Eclipse

  • Tieto prostredia teda môžete použiť aj na skúške (vo VS Code ale nebudú pluginy pre C++)
  • Návod na použitie prostredia Netbeans z minulých semestrov nájdete tu

Windows

Pod Windows existuje pomerne veľké množstvo programátorských prostredí podporujúcich C/C++. Možnosti sú napríklad nasledovné:

1. Kompilátor GCC + textový editor

  • Ide o najjednoduchšiu možnosť podobnú práci s Kate pod Linuxom.
  • GCC je pôvodom Linuxový kompilátor pre C/C++. Existuje však aj verzia pre Windows, ktorá je súčasťou prostredia MinGW.
  • Programy možno písať v ľubovoľnom textovom editore, ideálne však v takom, ktorý podporuje zvýrazňovanie syntaxe pre C a C++, napríklad Notepad++, PSPad a mnohé ďalšie.
  • Programy potom kompilujeme z príkazového riadku: napríklad súbor program.cpp skompilujeme tak, že sa v príkazovom riadku nastavíme do adresára, ktorý ho obsahuje a následne zadáme príkaz ako
g++ -o prog prog.cpp

Tým sa vytvorí spustiteľný súbor prog.exe, ktorý možno spustiť z príkazového riadku príkazom prog.

  • Viaceré textové editory podporujú aj integráciu s príkazovým riadkom, takže kompilovanie a spúštanie programov možno realizovať priamo z nich.

Inštalácia MinGW:

  • Stiahnite si inštálator zo stránky projektu.
  • Zapamätajte si adresár na disku, do ktorého MinGW inštalujete.
  • Spustite inštaláciu, počas ktorej zvoľte obidva jazyky C a C++.
  • Po ukončení inštalácie pridajte cestu do adresára obsahujúceho spustiteľné súbory gcc.exe a g++.exe (typicky <cesta do koreňového adresára MinGW>\bin) do systémovej premennej PATH, aby bolo možné g++ v príkazovom riadku volať z ľubovoľného adresára. Na internete je dostupných množstvo návodov na editovanie systémových premenných (kľúčové slová pre vyhľadávanie môžu byť napríklad edit PATH environment variable v kombinácii s vašou verziou Windows).

2. NetBeans

  • NetBeans je IDE určené najmä pre jazyk Java. Možno v ňom však vyvíjať aj aplikácie pre C a C++.
  • Je potrebné mať nainštalované MinGW (viď vyššie) a súčasne aj utilitu MSYS. Je možné nainštalovať aj obidva tieto programy naraz. Po ukončení inštalácie je potrebné okrem cesty na adresár obsahujúci gcc.exe a g++.exe do premennej PATH pridať aj adresár obsahujúci make.exe.
  • Podrobný návod na inštaláciu je k dispozícii tu, pričom odporúčame variant s MinGW.

3. Dev-C++

  • Iné IDE pre Windows s pomerne bezproblémovou inštaláciou (nepotrebuje MinGW).
  • Dostupné je tu.

4. Code::Blocks

  • Multiplatformové IDE.
  • Dostupné tu.

5. Visual Studio 2015

  • Profesionálne komerčné prostredie od firmy Microsoft, ktoré si ako študenti môžete na študijné účely nainštalovať podľa pokynov na fakultnej stránke

Ak máte na počítači operačný systém Windows, ale chceli by ste si vyskúšať aj prácu v Linuxe:

  • Môžete si nainštalovať Linux do virtuálneho počítača, napr. pomocou programu VirtualBox.
  • Alebo môžete štartovať Linux nainštalovaný na USB kľúči.

On-line prostredia

Ak máte problémy nainštalovať na svoj počítač vhodné prostredie na programovanie, môžete skúsiť webstránky, ktoré vám umožňujú písať, kompilovať a spúšťať jednoduché programy.

Tieto stránky nebudete môcť používať na skúške.


Kontrola práce s pamäťou programom valgrind

V druhej polovici semestra budeme pracovať aj so smerníkmi a alokáciou pamäte. Na odhalenie chýb, ktoré pri práci s pamäťou vznikajú, môžete použiť program valgrind.