Size: 3451
Comment:
|
← Revision 292 as of 2019-01-28 14:51:18 ⇥
Size: 190
Comment: Mercurial uz nediskutujem
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Zadania = | = Študijné materiály = |
Line 3: | Line 3: |
Všeobecné zásady: * Vypracované zadania zasielajte na sarkoci@math.sk, prikladajte ich k e-mailu skomprimované ako prílohu a subject nastavte na "seminar z programovania". * Zdrojový kód odsádzajte. * Program rozbíjajte na zmysluplné funkčné bloky ktoré sú realizované funkciami - čím viac, tým lepšie. * Ošetrujte chybové stavy. * Programujte tak, aby kompilátor nevyhlasoval ani jedno varovanie pri pedantnom móde kompilácie. === 1 === Naprogramujte funkciu ktorá zadané dynamicky allokované <<latex($n$)>>-prvkové pole premenných typu `int`: * Inicializuje na hodnotu 0. * Inicializuje na aritmetickú postupnosť <<latex($\{a+i.b\}_{i\in \mathbf{Z}_{n}}$)>> so zadanými parametrami <<latex($a,b\in\mathbf{Z}$)>>. * Inicializuje na postupnosť náhodne generovaných celých čísel. * Analyzuje a zisťuje pozíciu a dĺžku najdlhšej klesajúcej podpostupnosti bezprostredne po sebe nasledujúcich prvkov. * Sčituje a vracia hodnotu súčtu všetkých prvkov v poli. * Analyzuje a vracia aritmetický priemer prvkov v poli. * Analyzuje a vracia rozptyl prvkov v poli. Design funkcií (čiže voľba návratových typov a argumentov) je na vás. Urobte to ale tak, aby funkcie referovali všetky možné chybové stavy aké pri ich vykonávaní môžu nastať. === 2 === Napíšte program ktorý od uživateľa z klávesnice načíta prirodzené číslo <<latex($n$)>> a následne, metódou Erastotenovho sita, zistí všetky prvočísla nie väčšie než <<latex($n$)>>. Pamäť v ktorej Erastotenov algoritmus vykonáva Erastotenovské značkovanie allokujte dynamicky. === Priebežný stav === || ID || 1 || 2 || 3 || 4 || || 41458 || || || || || || 67640 || || || || || || 67644 || || || || || || 67654 || <!> || <!> || || || || 67660 || || || || || || 67667 || || || || || || 67674 || <!> || <!> || || || || 67678 || || || || || || 67682 || || || || || || 67687 || || || || || || 67692 || || || || || || 67698 || <!> || <!> || || || || 67705 || || || || || || 67708 || || || || || || 67718 || || || || || || 67720 || || || || || || 67725 || || || || || || 67728 || || || || || || 67733 || || || || || || 67737 || <!> || || || || || 67743 || <!> || <!> || || || || 67746 || || || || || || 69782 || || || || || === Časté chyby === 1. Chyby týkajúce sa designu funkcií a. Funkcia alebo procedúra má vykonávať ''jednu'', čo možno ''najjednoduchšiu'' činnosť a túto činnosť má vykonávať dobre. a. Rozmeniac na drobné predchádzajúci bod: ak žiadam implementáciu funkcie ktorá vykonáva činnosť Č tak tým myslím, bez toho aby som to explicitne zdôraznoval, že funkcia žiadnu inú činnosť ''nevykonáva''. Napríklad ak chcem, aby funkcia inicializovala pole premenných typu `int` na zadanú hodnotu <<latex($h$)>> tak, bez toho aby som to explicitne písal, očakávam, že funkcia nebude ani nič čítať z klávesnice, ani nič písať na obrazovku a vôbec, nebude robiť nič čo bezprostredne nesúvisí s inicializáciou pola. |
* [[GitReceptar|Receptár Git]] * [[http://www.lurklurk.org/linkers/linkers.html|Čo robí kompilátor a čo robí linker, pre zvedavých začiatočníkov]] |