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ú.


Zimný semester, skúška: Rozdiel medzi revíziami

Z Programovanie
Skočit na navigaci Skočit na vyhledávání
 
(31 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených)
Riadok 1: Riadok 1:
Na tejto stránke pribudnú informácie ohľadom skúšok. Podrobnejšie informácie o skúške a rady k zvládnutiu prvého skúškového budú na prednáške v stredu 9.12. Odporúčame účasť na tejto prednáške.  
+
<!-- Na tejto stránke pribudnú informácie ohľadom skúšok. Podrobnejšie informácie o skúške a rady k zvládnutiu prvého skúškového budú na prednáške v stredu 9.12. Odporúčame účasť na tejto prednáške. -->
  
 
Odporúčame tiež si preštudovať '''[[Zimný semester, pravidlá|pravidlá predmetu]]'''.
 
Odporúčame tiež si preštudovať '''[[Zimný semester, pravidlá|pravidlá predmetu]]'''.
Riadok 5: Riadok 5:
 
==Termíny, prihlasovanie==
 
==Termíny, prihlasovanie==
  
Boli zverejnené predbežné termíny skúšok
+
 
* piatok 18.12. 12:00 predtermín (koná sa len pri dostatočnom záujme<!--, viď nižšie-->)
+
Termíny skúšok
* piatok 8.1. 9:00 riadny termín
+
* Piatok 15.12. 13:10 predtermín
* piatok 22.1. 9:00 prvý opravný termín
+
* Piatok 12.1. 9:00
* piatok 5.2. 9:00 druhý opravný termín
+
* Piatok 19.1. 9:00
 +
* Piatok 26.1. 9:00, hlavne 1. opravný termín
 +
* Piatok 9.2. 9:00, hlavne 2. opravný termín
 +
Ak zistíte konflikt našej skúšky s hromadnou skúškou alebo písomkou iného predmetu, dajte nám vedieť čím skôr. Na poslednú chvíľu už nedokážeme nájsť riešenie. Trvanie skúšky je cca 2,5 hodiny.
  
 
Prihlasovanie
 
Prihlasovanie
* Na termín skúšky sa prihlasujte v AIS/Votr <!-- od 27.11. 20:00. -->
+
* Prihlasovanie je v AIS2/Votr otvorené od stredy 29.11. 20:00  
* Na termín sa prihlasujte / odhlasujte najneskôr 24 hodín pred začiatkom termínu
+
* Na termín sa prihlasujte / odhlasujte najneskôr 24 hodín pred začiatkom termínu.
* Prihlasujte sa čím skôr, termíny majú limitovanú kapacitu
+
* Opravnú písomku môžete na tomto predmete písať aj po skúške.
* Na predtermín 20.12. sa treba prihlásiť aspoň týždeň dopredu, do piatku 13.12. 13:10. Ak na predtermín 20.12. nebude prihlásených aspoň 10 študentov, predtermín sa nebude konať
+
* Celkovo budú iba uvedených päť termínov. Každý sa môže zúčastniť na najviac troch z nich.
* Opravnú písomku môžete na tomto predmete písať aj po skúške
 
* Celkovo budú iba uvedené štyri termíny plus prípadný predtermín. Každý sa môže zúčastniť na najviac troch z nich, ďalšie termíny neplánujeme pridávať
 
 
 
'''Ak zistíte konflikt našej skúšky s hromadnou skúškou alebo písomkou iného predmetu, dajte nám vedieť čím skôr. Na poslednú chvíľu už nedokážeme nájsť riešenie.'''
 
  
<!--
+
Špeciálne pravidlá pre predtermín
==Základné pokyny==
+
* Ak sa zúčastňujete predtermínu, body za tréningové príklady môžete dostať iba ak ich vyriešite do 15.12. 11:30 (toto neplatí, ak po predtermíne ešte idete na opravný termín skúšky).
  
* Prineste si ISIC a index, písacie potreby na písanie pracovných poznámok, ťahák v rozsahu jedného listu A4. Žiadne ďalšie pomôcky nie sú povolené.
+
==Praktická skúška==
* Stretávame sa vždy desať minút pred začiatkom skúšky pred počítačovou miestnosťou, kde sa dozviete pokyny a rozsadenie
 
* '''Skúška''': 2 hodiny práca pri počítačoch
 
** Za špeciálnych pravidiel môže byť čas '''predĺžený''' o 30 minút, viď pravidlá nižšie
 
** Počas skúšky vám nebudeme pomáhať hľadať chyby vo vašom programe. Môžete sa však spýtať na nejasnosti v zadaní. Dajte nám tiež vedieť v prípade technických problémov alebo ak si myslíte, že v zadaní  / kostre / vstupoch je chyba.
 
  
==Po skúške==
+
* 2 hodiny práca pri počítači <!-- v halách H3, H6-->
* Po skúške vyučujúci obodujú vaše programy. Výsledky nájdete na testovači, známky v AIS.
+
* Za určitých okolností môže byť čas '''predĺžený''' o 30 minút, viď pravidlá nižšie
* Ak máte výhrady k prideleným bodom, kontaktujte vyučujúcich najneskôr do týždňa po skúške.
+
* Počas skúšky vám nebudeme pomáhať hľadať chyby vo vašom programe. Môžete sa však spýtať na nejasnosti v zadaní. Dajte nám tiež vedieť v prípade technických problémov alebo ak si myslíte, že v zadaní  / kostre / vstupoch je chyba.
* Spravidla na druhý deň po skúške bude vyhradený čas, kedy môžete prísť si dať zapísať známku do indexu a tiež sa porozprávať o tom, čo ste mali v programe dobre alebo zle.
 
* Na takéto stretnutie odporúčame prísť aj tým, ktorí skúšku nespravili. Môžeme vám poradiť, ako postupovať na opravnom termíne.
 
* Ak chcete iba zapísať známku, index môžete poslať aj po spolužiakovi alebo prísť po inom termíne skúšky. Známky však zapisujeme iba v časoch na to určených, nie keď zrovna idete okolo. Známku si potrebujete dať do indexu zapísať najneskôr do konca skúškového.
 
* Ak niekto skúšku ukončí v dostatočnom predstihu pred koncom 2-hodinovej doby skúšky a priebeh skúšky to umožní, skúšajúci môžu jeho programy obodovať už počas skúšky a priamo aj udeliť známku a zapísať ju do indexu.
 
  
==Technické detaily==
+
Ďalšie detaily
* Skúška bude v Linuxe, rovnaké prostredie ako na cvičeniach
 
* Odovzdávanie prostredníctvom špeciálnej verzie testovača
 
* Okrem testovača nebude k dispozícii internet
 
* Budete používať špeciálne skúškové konto, takže nebudete mať k dispozícii žiadne svoje súbory alebo nastavenia
 
* Pri reštarte počítača sa stratia všetky súbory, používajte testovač ako zálohu (odovzdajte aj nedokončený program)
 
* Môžete použiť Kate, valgrind, Netbeans, ale aj iné nástroje, ktoré bežia v Linuxe v učebniach a nepotrebujú internet. Prípadné problémy s použitím iného softvéru vám však nebudeme pomáhať riešiť
 
 
* Nebudeme používať SVGdraw
 
* Nebudeme používať SVGdraw
 
* Môžete používať aj črty C/C++, ktoré sme nebrali. Používajte len štandardné súčasti jazyka. Vaše programy by mali fungovať na testovači bez zvláštnych nastavení kompilátora a pod.
 
* Môžete používať aj črty C/C++, ktoré sme nebrali. Používajte len štandardné súčasti jazyka. Vaše programy by mali fungovať na testovači bez zvláštnych nastavení kompilátora a pod.
** Odporúčame používať iba tie časti jazyka, s ktorými máte dostatočné skúsenosti. Príkazy, ktoré si nepamätáte, si dajte na ťahák.
+
* Odporúčame používať iba tie časti jazyka, s ktorými máte dostatočné skúsenosti.
 
+
* Skúška bude v Linuxe, rovnaké prostredie ako na cvičeniach.
==Opravné termíny==
+
* Odovzdávanie prostredníctvom špeciálnej verzie testovača.
* Opakovanie skúšky sa riadi študijným poriadkom fakulty. Máte nárok na dva opravné termíny (ale len v rámci termínov, ktoré sme určili).
+
* Okrem testovača nebude k dispozícii internet.
* Ak po skúške pri počítači máte nárok na známku E alebo lepšiu, ale chceli by ste si známku ešte opraviť, musíte sa dohodnúť so skúšajúcimi pred zapísaním známky do indexu.
+
* Bude k dispozícii kópia poznámok z predmetu, ktoré vidíte na tejto stránke.
* Ak po skúške pri počítači píšete opravnú písomku, je potrebné prísť zapísať známku v termíne určenom vyučujúcimi.
+
* Budete používať špeciálne skúškové konto, takže nebudete mať k dispozícii žiadne svoje súbory alebo nastavenia.
* Ak sa zo závažných dôvodov (napr. zdravotných, alebo konflikt s inou skúškou) nemôžete zúčastniť termínu skúšky alebo písomky, dajte o tom vyučujúcim vedieť čím skôr.
+
* Môžete použiť Kate, valgrind, Netbeans, ale aj iné nástroje, ktoré bežia v Linuxe v učebniach a nepotrebujú internet. Prípadné problémy s použitím iného softvéru vám však nebudeme pomáhať riešiť.
 +
** Nemôžete použiť online prostredia.
 +
* Môžete použiť pero alebo ceruzku na robenie poznámok (odporúčame).
 +
* Prineste si aj preukaz študenta.
 +
* Zakázané sú akékoľvek ďalšie pomôcky (mobily a elektronické zariadenia, poznámky a iné papierové materiály atď), komunikácia s inými osobami než s vyučujúcimi predmetu ako aj pokusy o narušenie riadneho chodu testovača.
 +
* Pri reštarte počítača sa stratia všetky súbory, používajte testovač ako zálohu (odovzdajte aj nedokončený program).
 +
* Každých cca 20 minút vás vyučujúci vyzvú, aby ste v najbližších minútach odovzdali svoj program na testovač. Ak práve nerobíte na žiadnom programe, odovzdajte krátku správu, napr. "rozmyslam"
  
 
== Príklady ==
 
== Príklady ==
Riadok 69: Riadok 60:
 
* V tomto príklade môžete mať v zadaní predpísaný spôsob, ako máte niektoré časti naprogramovať.
 
* V tomto príklade môžete mať v zadaní predpísaný spôsob, ako máte niektoré časti naprogramovať.
 
* Budú sa vyžadovať aj zložitejšie časti učiva, ako napríklad zoznamy, stromy a rekurzia.
 
* Budú sa vyžadovať aj zložitejšie časti učiva, ako napríklad zoznamy, stromy a rekurzia.
 +
 +
 +
'''Ukážkové príklady'''
 +
 +
Niektoré ukážkové príklady na skúšku budú k dispozícii na [http://prog.dcs.fmph.uniba.sk/ testovači], môžete si ich v rámci tréningu vyriešiť a odovzdať. Pre realistickejší tréning si vždy prečítajte zadanie tesne predtým, ako príklad začnete riešiť, aby ste odhadli, koľko času vám príklad zaberie vrátane čítania zadania a rozmýšľania nad riešením.
 +
 +
'''Techniky hľadania chýb'''
 +
 +
Pre niektorých študentov nie je ani tak problém napísať takmer kompletný program, ale skôr nájsť v ňom chyby, kvôli ktorým nefunguje.
 +
* Pozrite si rady k hľadaniu chýb na [[Prednáška_5#H.C4.BEadanie_ch.C3.BDb_v_programe|prednáške 5]] a návod na použitie programu [[Valgrind]].
  
 
==Hodnotenie==
 
==Hodnotenie==
Riadok 81: Riadok 82:
 
* V druhej úlohe budeme jednotlivé funkcie hodnotiť zvlášť, takže môžete získať čiastočné body, ak ste niekoľko funkcií napísali správne.
 
* V druhej úlohe budeme jednotlivé funkcie hodnotiť zvlášť, takže môžete získať čiastočné body, ak ste niekoľko funkcií napísali správne.
 
* Na hodnotenie môže mať menší vplyv aj úprava a štýl programu (komentáre, mená premenných, odsadzovanie, členenie dlhšieho programu na funkcie,...)
 
* Na hodnotenie môže mať menší vplyv aj úprava a štýl programu (komentáre, mená premenných, odsadzovanie, členenie dlhšieho programu na funkcie,...)
* Na tejto skúške nezáleží na rýchlosti vášho programu. Radšej napíšte jednoduchý, prehľadný a hlavne správny pomalší program, než rýchlejší, ale zbytočne zložitý, či nesprávny.
+
* Na tejto skúške nezáleží na rýchlosti vášho programu (pokiaľ zbehne v časovom limite, ktorý však nie je prísny). Radšej napíšte jednoduchý, prehľadný a hlavne správny pomalší program, než rýchlejší, ale zbytočne zložitý, či nesprávny.
  
 
==Predĺženie času==
 
==Predĺženie času==
Riadok 88: Riadok 89:
 
* Ak zostanete na predĺženie, budeme vám rátať do výsledku '''body iba z jedného príkladu'''. Konkrétne z toho, za ktorý ste dostali OK na testovači (ak z oboch, tak z toho, za ktorý ste mali OK skôr)
 
* Ak zostanete na predĺženie, budeme vám rátať do výsledku '''body iba z jedného príkladu'''. Konkrétne z toho, za ktorý ste dostali OK na testovači (ak z oboch, tak z toho, za ktorý ste mali OK skôr)
  
==Ukážkové príklady na skúšku pri počítači==
+
==Opravné termíny==
Niektoré ukážkové príklady na skúšku budú k dispozícii na [http://prog.dcs.fmph.uniba.sk/ testovači], môžete si ich v rámci tréningu vyriešiť a odovzdať. Pre realistickejší tréning si vždy prečítajte zadanie tesne predtým, ako príklad začnete riešiť, aby ste odhadli, koľko času vám príklad zaberie vrátane čítania zadania a rozmýšľania nad riešením.
+
* Opakovanie praktickej skúšky sa riadi študijným poriadkom fakulty. Máte nárok na dva opravné termíny (ale len v rámci termínov, ktoré sme určili).
 
+
* Ak po skúške máte nárok na známku E alebo lepšiu, ale chceli by ste si známku ešte opraviť, musíte sa dohodnúť so skúšajúcimi.
==Špeciálne pravidlá pre predtermín==
+
* Ak sa zo závažných dôvodov (napr. zdravotných, alebo konflikt s inou skúškou) nemôžete zúčastniť termínu skúšky alebo písomky, dajte o tom vyučujúcim vedieť čím skôr.
* Na predtermín sa v AIS da prihlásiť / odhlásiť najneskôr týždeň vopred, po tomto termíne iba pri závažných okolnostiach emailom B. Brejovej.
 
* Ak sa zúčastňujete predtermínu, body za tréningové príklady môžete dostať iba ak ich vyriešite do 20.12. 23:55. (toto neplatí, ak po predtermíne ešte idete na opravný termín skúšky)
 
* Výsledky oznámime najneskôr v pondelok 23.12., ale známky do indexov budeme zapisovať až v januári po prvom riadnom termíne. Prípadné reklamácie bodov alebo známok z predtermínu nám dajte vedieť najneskôr do 7.1.
 
* Počas predtermínu spravidla nebudeme zapisovať známky do indexov (ani pri skoršom odovzdaní), vzhľadom na to, že nebude ukončené vyhodnotenie poslednej DÚ, DÚ pre pokročilých a tréningových príkladov.
 
-->
 

Aktuálna revízia z 12:44, 27. november 2023


Odporúčame tiež si preštudovať pravidlá predmetu.

Termíny, prihlasovanie

Termíny skúšok

  • Piatok 15.12. 13:10 predtermín
  • Piatok 12.1. 9:00
  • Piatok 19.1. 9:00
  • Piatok 26.1. 9:00, hlavne 1. opravný termín
  • Piatok 9.2. 9:00, hlavne 2. opravný termín

Ak zistíte konflikt našej skúšky s hromadnou skúškou alebo písomkou iného predmetu, dajte nám vedieť čím skôr. Na poslednú chvíľu už nedokážeme nájsť riešenie. Trvanie skúšky je cca 2,5 hodiny.

Prihlasovanie

  • Prihlasovanie je v AIS2/Votr otvorené od stredy 29.11. 20:00
  • Na termín sa prihlasujte / odhlasujte najneskôr 24 hodín pred začiatkom termínu.
  • Opravnú písomku môžete na tomto predmete písať aj po skúške.
  • Celkovo budú iba uvedených päť termínov. Každý sa môže zúčastniť na najviac troch z nich.

Špeciálne pravidlá pre predtermín

  • Ak sa zúčastňujete predtermínu, body za tréningové príklady môžete dostať iba ak ich vyriešite do 15.12. 11:30 (toto neplatí, ak po predtermíne ešte idete na opravný termín skúšky).

Praktická skúška

  • 2 hodiny práca pri počítači
  • Za určitých okolností môže byť čas predĺžený o 30 minút, viď pravidlá nižšie
  • Počas skúšky vám nebudeme pomáhať hľadať chyby vo vašom programe. Môžete sa však spýtať na nejasnosti v zadaní. Dajte nám tiež vedieť v prípade technických problémov alebo ak si myslíte, že v zadaní / kostre / vstupoch je chyba.

Ďalšie detaily

  • Nebudeme používať SVGdraw
  • Môžete používať aj črty C/C++, ktoré sme nebrali. Používajte len štandardné súčasti jazyka. Vaše programy by mali fungovať na testovači bez zvláštnych nastavení kompilátora a pod.
  • Odporúčame používať iba tie časti jazyka, s ktorými máte dostatočné skúsenosti.
  • Skúška bude v Linuxe, rovnaké prostredie ako na cvičeniach.
  • Odovzdávanie prostredníctvom špeciálnej verzie testovača.
  • Okrem testovača nebude k dispozícii internet.
  • Bude k dispozícii kópia poznámok z predmetu, ktoré vidíte na tejto stránke.
  • Budete používať špeciálne skúškové konto, takže nebudete mať k dispozícii žiadne svoje súbory alebo nastavenia.
  • Môžete použiť Kate, valgrind, Netbeans, ale aj iné nástroje, ktoré bežia v Linuxe v učebniach a nepotrebujú internet. Prípadné problémy s použitím iného softvéru vám však nebudeme pomáhať riešiť.
    • Nemôžete použiť online prostredia.
  • Môžete použiť pero alebo ceruzku na robenie poznámok (odporúčame).
  • Prineste si aj preukaz študenta.
  • Zakázané sú akékoľvek ďalšie pomôcky (mobily a elektronické zariadenia, poznámky a iné papierové materiály atď), komunikácia s inými osobami než s vyučujúcimi predmetu ako aj pokusy o narušenie riadneho chodu testovača.
  • Pri reštarte počítača sa stratia všetky súbory, používajte testovač ako zálohu (odovzdajte aj nedokončený program).
  • Každých cca 20 minút vás vyučujúci vyzvú, aby ste v najbližších minútach odovzdali svoj program na testovač. Ak práve nerobíte na žiadnom programe, odovzdajte krátku správu, napr. "rozmyslam"

Príklady

Na skúške budete riešiť dva príklady za rovnaký počet bodov

Prvý príklad

  • V prvom príklade budete mať za úlohu samostatne napísať celý program, ktorý rieši zadanú úlohu. Typicky bude treba načítať dáta, spracovať ich a vypísať výsledok.
  • V tomto príklade môžete použiť ľubovoľný postup.
  • Budú však zakázané polia pevných veľkostí. Polia alokujte dynamicky cez new, alebo použite štruktúry, ktoré menia veľkosť podľa potreby (napr. string, vector). Alokovanú pamäť odalokujte.
  • Predtým ako začnete programovať, si poriadne rozmyslite, aké dátové štruktúry (polia, matice, struct-y a pod.) chcete v programe použiť.

Druhý príklad

  • V druhom príklade dostanete kostru programu, pričom vašou úlohou bude doprogramovať niektoré funkcie.
  • V tomto príklade môžete mať v zadaní predpísaný spôsob, ako máte niektoré časti naprogramovať.
  • Budú sa vyžadovať aj zložitejšie časti učiva, ako napríklad zoznamy, stromy a rekurzia.


Ukážkové príklady

Niektoré ukážkové príklady na skúšku budú k dispozícii na testovači, môžete si ich v rámci tréningu vyriešiť a odovzdať. Pre realistickejší tréning si vždy prečítajte zadanie tesne predtým, ako príklad začnete riešiť, aby ste odhadli, koľko času vám príklad zaberie vrátane čítania zadania a rozmýšľania nad riešením.

Techniky hľadania chýb

Pre niektorých študentov nie je ani tak problém napísať takmer kompletný program, ale skôr nájsť v ňom chyby, kvôli ktorým nefunguje.

Hodnotenie

Aby ste mali šancu úspešne ukončiť predmet, aspoň jeden z príkladov vám musí prejsť všetky testy na testovači

  • Túto podmienku nebudeme považovať za splnenú, ak váš program nerieši zadanú úlohu (t.j. jeho myšlienka nie je v zásade správna)
  • Podmienku však považujeme za splnenú, ak váš program prejde všetky vstupy, má v zásade správnu myšlienku, ale nedostane plný počet bodov napríklad kvôli chýbajúcemu uvoľneniu pamäte, statickým poliam, menšej chybe, ktorá sa neprejavila na daných vstupoch a pod.
  • Dobre si rozmyslite, s ktorým príkladom chcete začať a snažte sa ho dokončiť, kým nedostanete OK na testovači. Potom ho môžete ešte vylepšovať alebo sa snažiť vyriešiť aspoň časť príkladu, ktorý ste ešte neriešili.

Bodové hodnotenie

  • V prvom rade budeme hodnotiť správnosť myšlienky vášho programu. Predtým, ako začnete programovať, si dobre prečítajte zadanie a rozmyslite, ako budete úlohu riešiť.
  • Ďalej je veľmi dôležité, aby sa program dal skompilovať (v štandardnom prostredí) a aby správne fungoval na všetkých vstupoch spĺňajúcich podmienky v zadaní.
  • V druhej úlohe budeme jednotlivé funkcie hodnotiť zvlášť, takže môžete získať čiastočné body, ak ste niekoľko funkcií napísali správne.
  • Na hodnotenie môže mať menší vplyv aj úprava a štýl programu (komentáre, mená premenných, odsadzovanie, členenie dlhšieho programu na funkcie,...)
  • Na tejto skúške nezáleží na rýchlosti vášho programu (pokiaľ zbehne v časovom limite, ktorý však nie je prísny). Radšej napíšte jednoduchý, prehľadný a hlavne správny pomalší program, než rýchlejší, ale zbytočne zložitý, či nesprávny.

Predĺženie času

  • Ak v riadnom čase 2 hodiny nemáte na testovači OK ani z jedného príkladu, zo skúšky by ste mali dostať Fx.
  • Dovolíme vám však predĺžiť čas skúšky o najviac 30 minút.
  • Ak zostanete na predĺženie, budeme vám rátať do výsledku body iba z jedného príkladu. Konkrétne z toho, za ktorý ste dostali OK na testovači (ak z oboch, tak z toho, za ktorý ste mali OK skôr)

Opravné termíny

  • Opakovanie praktickej skúšky sa riadi študijným poriadkom fakulty. Máte nárok na dva opravné termíny (ale len v rámci termínov, ktoré sme určili).
  • Ak po skúške máte nárok na známku E alebo lepšiu, ale chceli by ste si známku ešte opraviť, musíte sa dohodnúť so skúšajúcimi.
  • Ak sa zo závažných dôvodov (napr. zdravotných, alebo konflikt s inou skúškou) nemôžete zúčastniť termínu skúšky alebo písomky, dajte o tom vyučujúcim vedieť čím skôr.