Z přednášky Cvičení IB001 Úvod do programování skrze C Cvičení 2 Petr Velan velan@mail.muni.cz Fakulta informatiky Masarykova univerzita 24.9.2012 Petr Velan (Fl MUNI) IB001 24.9.2012 1/14 Z přednášky Cvičení Co bylo na přednášce • Organizace • Co je program, programovací jazyk • Životopis programu: zdrojový kód, preprocesor, překladač, linker • Debugger • Základní pojmy • Identifikátor • Klíčové slovo Řetězcová konstanta • Komentář Petr Velan (Fl MUNI) IB001 24.9.2012 2/ 14 Z přednášky Cvičení Co bylo na přednášce • Preprocessor • Direktiva preprocesoru • #define, #include, #if, #else, #endif, #elif, #ifdef, #ifndef • Překladač (kompilátor) • Linker • *.a, ".lib, *.so, *.dll Petr Velan (Fl MUNI) IB00I 24.9.2012 3/ 14 Z přednášky Co bylo na přednášce • Debugger • Krokování • Sledování hodnot • Breakpointy • Struktura programu • Direktivy preprocesoru • Globální deklarace a definice • Funkce (main) Petr Velan (Fl MUNI) IB001 Z přednášky Cvičení Co bylo na přednášce • Funkce • Hlavička • Tělo funkce • Návratová hodnota (main) • Prototyp funkce • Posloupnost vykonávání příkazů • Lineární, ovlivněna řídícími srukturami • Příkazy odděleny středníkem • puts(3), printf(3) • Formátování kódu Petr Velan (Fl MUNI) IB001 24.9.2012 5/ 14 Z přednášky Rychlý přehled Cvičení • Cheatsheet • http://www.cheat-sheets.org/saved-copy/C. Reference.Card.ANSI.2.2.pdf • http://faculty.olin.edu/~ jcrisman/Teaching/ SigSysWeb/Embedded/c_cheat_sheet.htm Petr Velan (Fl MUNI) IB001 24.9.2012 6/ 14 Z přednášky Cvičení Základní datové typy • Datové typy • char - nemenší adresovatelná jednotka (byte) • int - základní celočíselný typ velikosti alespoň 16 bitů • float - typ pro desetinná čísla, typicky 32 bitů • double - typ pro desetinná čísla s větší přesností, typicky 64 bitů • Velikost float a double je závislá na implementaci. • Typ voidslouží pro vyjádření skutečnosti, že funkce nevrací žádnou návratovou hodnotu, nebo že nemá žádné argumenty void p ri n t H e 11 o (void) { pri n tf (" Hello\n") ; } Petr Velan (Fl MUNI) IB001 24.9.2012 7/ 14 Z přednášky Cvičení Základní datové typy • Volitelné specifikátory • signed - zaručuje, že daný typ bude se znaménkem (celá čísla) • unsigned - zaručuje, že daný typ bude bez znaménka (nezáporná) • short - short int\e veliký alespoň 16 bitů, int není kratší než short int • long - long int není kratší než int, typicky 32 bitů. long long int není kratší než long int, typicky velikosti 64 bitů, od verze C99. • 16b <= short int <= int <= 32b <= long int <= 64b <= long long int • Unární operátor sizeof • http://en.wikipedia.org/wiki/C_data_types Petr Velan (Fl MUNI) IB001 24.9.2012 8/ 14 Z přednášky Cvičení Proměnné, čísla a výpočty • Každá proměnná má svůj typ. Podle velikosti daného typu je pro ni alokováno místo v paměti • Při volání funkcí se předává kopie hodnoty • Čísla je možno zapisovat celočíselně, s desetinnou tečkou, hexadecimálně nebo v osmičkové soustavě • C podporuje základní aritmetické operátory +, -, *, /, včetně závorek () • Navíc má širokou podporu pro bitové operace • Vyhodnocení probíhá podle priority operátorů (http://www.swansontec.com/sopc.html) • Typová konverze (http : //physics .u jep . cz/~mmaly/ výuka/oporaPrgB/018.html) Petr Velan (Fl MUNI) IB001 24.9.2012 9/ 14 Z přednášky Cvičení Proměnné, čísla a výpočty - Příklad #include #include < s t d I i b . h> i n t main(void) { int i = 3, j = 4, k; double pi = 3.14159; k = (i + j ) * pi ; printf " , k) ; return 0; } Petr Velan (Fl MUNI) IB001 24.9.2012 10/14 Z přednášky Cvičení Procvičení - typy • Vytvořte program, který vytiskne velikosti následujících datových typů: • char • short int • int • long int • long long int • float • double • long double Petr Velan (Fl MUNI) IB001 24.9.2012 11 / 14 Z přednášky Cvičení Datové typy s pevnou délkou • Někdy je potřeba předem znát velikost datových typů, kvůli kompatibilitě • V hlavičkovém souboru stdint.h jsou definice následujících typů int8_t, uint8_t • int16_t, uint16_t • int32_t, uint32_t • int64_t, uint64_t Petr Velan (Fl MUNI) IB001 24.9.2012 12/ 14 Z přednášky Cvičení Procvičení - výstup • Vytvořte program pro výpočet objemu kvádru • Pomocí #define vytvořte konstanty A, B, C • Uložte hodnoty konstant do proměnných typu double • Do nové proměnné uložte objem kvádru o hranách délek A,B,C • Výslednou proměnnou vytiskněte pomocí funkce printf(3) • Dbejte na logické pojmenování proměnných a formátování kódu. Petr Velan (Fl MUNI) IB001 24.9.2012 13/ 14 Z přednášky Procvičení - výstup II. Cvičení Upravte předchozí program tak, aby výpočet objemu probíhal v samostatné funkci Petr Velan (Fl MUNI)