Syntax highlighting of Archiv/Programování v C/CPP

{{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...
 <pre>
if (podmienka); /* bodkociarka navyse */
{
    akcia();
}
</pre>

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

[http://atrey.karlin.mff.cuni.cz/~miero/mysrc/200302%20C/ed.c.txt 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 ==
* Jedna verze písemky z roku 2002: [http://mff.modry.cz/cecko/obr/ccpp1.png] [http://mff.modry.cz/cecko/obr/ccpp2.png] (via Modry)
* Písemky z různých let: [http://c.matfyz.info/] (via Matfyz)
* Pokecové příklady k CPP [http://mff.modry.cz/cecko/priklady/cpp.txt] (via Modry)
* [http://ulita.ms.mff.cuni.cz/mff/sylaby/prg029.html Stránka předmětu Programování v C a C++ (PRG029)] - slajdy
* [http://ulita.ms.mff.cuni.cz/mp/vyuka/PRG032/html/prg032.html Stránka předmětu Objektově orientované programování (PRG032)] - slajdy
* [http://download.matfyz.info/special/c_zap/ Několik řešených zápočtových příkladů]
* [http://download.matfyz.info/special/c/ Několik testových písemek]