Programování v C/CPP
Z ωικι.matfyz.cz
(Přesměrováno z PRG012)
Programování v C/C++ | ||||
|
Předmět nahrazen předmětem Programování v CPP (NPRG041)
Obsah
Na co si dajte pozor![editovat | editovat zdroj]
Na com vsetkom si zaciatocnik moze vylamat zuby a skuseny harcovnik len gula ocami...
[editovat | editovat zdroj]
a hoci sa kompilator tvari spokojne, vas program nefunguje a zo zapoctovej pisomky idete domov naprazdno...
if (podmienka); /* bodkociarka navyse */ { akcia(); }
O jeden znak míň[editovat | editovat zdroj]
Kompilátor to sice nezkousne, ale ani nám moc neporadí, co s tím. Místo toho zařve něco ve smyslu "Unexpected bla bla..." všude tam, kde hlavičku includujeme.
/* hlavicka.h */ class trida { int cislo; void fce(); } // tady chybí středník
Zápočtové příklady[editovat | editovat zdroj]
[editovat | editovat zdroj]
ak riadok zacina '/' je to prikaz, inak je to text, pridava sa na koniec buffra. ak je text ukonceny '/' odstavec pokracuje na dalsom riadku, ak je '\n' je to koniec odstavca
prikazy:
- /L <file> - nacita vstup zo suboru (staci pripojit za buffer) [mozte predpokladat ze v subore nie su prikazy]
- /A <wraplen> - dlzka zarovnaneho riadku (ak je 0 tak nezarovnany [nemusi by v rovnakom tvare ako na vstupe])
- /S - vypis zarovnaneho textu na obrazovku
- /O <file> - vypis zarovnaneho textu do suboru
- /E - koniec
pozn: nemusi vas trapit ze nejde napisat riadok ktory zacina alebo '/'
Další oblíbená zadání[editovat | editovat zdroj]
- vyhodnoceni vyrazu zapsaneho jako retezec v jedne z notaci infix, postfix nebo prefix - rada: prefix se da vyhodnocovat rekurzi nebo zasobnikem, postfix zasobnikem, infix neprimou rekurzi
- setrideni souboru dle radek (popr. podle n-teho slova v radku, podle znaku n az m a dalsi varianty), nekdy chteji setridit soubor v pameti (treba quicksortem), nekdy je pozadavek pouzit vnejsi trideni (mergesort) - rada: mergesort si muzete hodne zjednodusit, kdyz doplnite pocet radek v textovem souboru nejakymi dumm radkami na mocninu dvojky - odpadne prace se "zbytky" - pokud tedy nepouzivate prirozene slucovani
- podobne jako zarovnani do bloku take zarovnani doleva, doprava a na stred - rada: problem s dynamickou alokaci se da vyresit velmi snadno - naalokujte si buffer pevne delky - tak velky, jak ma byt dlouha radka na vystupu, az ji zaplnite, vytisknete ji a zacnete od zacatku...
- prikaz podobny unixovskemu cut (na vstupu text. soubor a oddelovac sloupcu a sloupce, ktere chceme vypsat) - rada: nacist radku do jednoho char*, udelat si pole pointru na vsechny oddelovace v nactene radce, vsechny tyhle oddelovace nahradit nulou - pak uz jen pro kazdy sloupec, ktery ma byt na vystupu, vypsat spravny ukazatel
- program, ktery z textoveho souboru cte radky #define xxxxxx zzzzzz a od nacteni makra xxxxxx bude textovy soubor upravovat - nahradi xxxxxxx za zzzzzzz - rada: zadna :), jen si poradit s dynamickou alokaci...
- prikaz podobny unixovskemu grep (regularni vyrazy - ruzne modifikace) - rada: pokud je ve vyrazu povolena hvezdicka pro opakovani, neni to uz takova sranda, protoze regexp z*z by asi mel matchovat s radkou zzzz, takze je videt, ze nemuzete matchovat s hvezdickou tak dlouho jak to jde. Reseni ale necham pro nejakeho vetsiho odbornika
- naprogramovat funkci podobnou printf - rada: easy...
- Jakub Yaghob dává s oblibou jako zadání zápočtového testu naprogramování virtuálního stroje, který dostane na vstupu soubor s instrukcemi jakéhosi procesoru (instrukce a jejich přesný význam se dozvíte), naprogramovat si musíte registry aj. Pak vám dá soubor s instrukcemi a na konci vám musí vypadnout správný výsledek výpočtu. Pokud si vzpomínám, tak to z 15 lidí udělali jen 2.
- Součítání a odčítání čísel v růyných číselných soustavách #include<stdio.h> naknec tak akorat easy http://wiki.matfyz.cz/wiki/Programov%C3%A1n%C3%AD_v_C/CPP/soucet_cisel_v_ruznych_ciselnych_soustavach
Odkazy[editovat | editovat zdroj]
- Jedna verze písemky z roku 2002: [1] [2] (via Modry)
- Písemky z různých let: [3] (via Matfyz)
- Pokecové příklady k CPP [4] (via Modry)
- Stránka předmětu Programování v C a C++ (PRG029) - slajdy
- Stránka předmětu Objektově orientované programování (PRG032) - slajdy
- Několik řešených zápočtových příkladů
- Několik testových písemek