C program = jeden alebo viac funkcii --------- () - parametre funkcie {} - telo funkcie main() - funkcia, ktorou program zahajuje cinnost - nema parametre, zatvorky su povinne aj bez parametrov prikazovy riadok - konci sa s ; ---------------- komentar: /* ... */ --------- printf ------ - kniznicna funkcia zobrazujuca vystup na terminal - nie je castou jazyka C - castou standardnej kniznice funkcii jazyka C - jazyk C nema definovane operacie vstupu/vystupu priklady: 1/ printf("hello, world\n"); 2/ printf ("%4.0f %6.1f\n" , fahr, celsius); "..." - znakovy retazec (retazcova konstanta) \n - znak noveho riadku v znakovom retazci \t - tabelator \b - spatny posun \" - uvodzovky \\ - obratene lomitko prvy argument v printf je retazec znakov % urcuje, kde maju byt umiestnene dalsie argumenty a akym sposobom %4.0f - typ float, 4 znaky, ziadna desatinna cast %6.1f - typ float, 6 znakov, jedna desatinna cislica %6f - typ float, cislo ma byt aspon 6 znakov dlhe %.2f - typ float, celkovy pocet znakov nie je obmedzeny, dve desatinne miesta %f - tlac cisla typu float %d - desatinne cele cislo %o - oktalove cislo %x - hexadecimalne cislo %c - znak %s - retazec znakov %% - % scanf - formatovany vstup, analog funkcie printf ----- deklaracia premennej musi byt prevedena pred prvym pouzitim -------------------- int - celociselna premenna float - premenna s pohyblivou desatinnou ciarkou char - znak - jeden byte short - kratke cele cislo long - dlhe cele cislo double - cislo s pohyblivou ciarkou a dvojitou presnostou priklad: int lower, upper, step; float fahr, celsius; priradovaci prikaz: ------------------- lower = 0; upper = 300 ; step = 20 ; fahr = lower ; podmienka: funkcia while ------------------------ while (fahr <= upper) { ... } - argument funkcie: podmienka - ak je podmienka splnena, vykona sa telo funkcie - znova nastane vyhodnotenie podmienky - cyklus sa ukonci, ked podmienka nebude splnena - ak je v tele len jeden prikaz, nemusi byt v zlozenych zatvorkach priklady: 1/ while (i < j) i = 2 * i; 2/ while(fahr <= upper) { celsius = (5.0/9.0) * (fahr - 32.0); printf ("%4.0f %6.1f\n",fahr,celsius); fahr = fahr + step; } - desatinna bodka v 5.0/9.0 indikuje, ze ide o cislo s pohyblivou desatinnou ciarkou - v 5/9 je desatinna cast obrezana, t.j. 5/9=0 !!! prikaz for: ----------- for(iniciacia; podmienka; reiniciacia){telo cyklu} iniciacia -> podmienka -ano-> telocyklu -> reiniciacia | | | nie | | | o-------------<--------------o V priklady: 1/ for (fahr = 0; fahr <= 300; fahr = fahr + 20) printf("%4d %6.1f\n", fahr, (5.0/9.0) * (fahr - 32)); symbolicke konstanty: --------------------- #define - na zaciatku programu - definuje retazec znakov ako symbolicke mena alebo symb. konstanty - nahradou mozu byt cisla alebo text - symbolicke konstanty sa neobjavuju v deklaraciach - symb. konstanty sa zvyknu pisat s velkymi pismenami, premenne s malymi - na konci #define nie je bodkociarka priklad: 1/ #define LOWER 0 /*dolni mez tabulky*/ #define UPPER 300 /*horni mez*/ #define STEP 20 /*hodnota kroku*/ main () /*tabulka prevodu Fahrenheit - Celsius/ { int fahr for (fahr=LOWER; fahr <= UPPER; fahr=fahr + STEP) printf("%4d %6.1f\n", fahr, (5.0/9.0) * (fahr-32)); } getchar() - funkcia, ktora nacita dalsi znak, ked je zavolana --------- - ako hodnotu vracia tento znak - sucast standardnej kniznice putchar(var) - vytlaci obsah premennej (zvycajne na obrazovku) ------------ priklad: 1/ main () /*kopirovani vstupu na vystup: 1.verze*/ { int c; c = getchar(); while (c != EOF) { putchar (c); c = getchar(); } } 2/ main /* kopirovani vstupu ve vystup 2.verze */ { int c; while((c = getchar()) != EOF) putchar (c); } ++,-- - zvacsenie,zmensenie premennej o jednicku ----- - moze sa objavit pred aj za premennou, rozny vyznam vo vyrazoch priklad: 1/ main() /*pocitani znaku na vstupu*/ { long nc; nc = 0; while (getchar()! = EOF) ++nc; printf("%1d\n",nc); } 2/ main() /*pocitani znaku na vstupu*/ { double nc; for(nc = 0; getchar() != EOF; ++nc) ; printf("%.0f\n", nc); }