{{predmet|Programování v C/C++|David Bednárek|PRG029}}

Předmět nahrazen předmětem Programování v CPP (NPRG041)

TOC

Na co si dajte pozor!

Na com vsetkom si zaciatocnik moze vylamat zuby a skuseny harcovnik len gula ocami...

Jeden znak navyse

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íň

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

Interaktivny zarovnavac textu do bloku (justify)

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 '/'

pokus o riešenie

Další oblíbená zadání

  • 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