Warning: Declaration of action_plugin_subjectindex_indexer::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php on line 15

Warning: Declaration of action_plugin_mathjax_enable::register(Doku_Event_Handler &$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/mathjax/action/enable.php on line 62

Warning: Declaration of action_plugin_googleanalytics::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/googleanalytics/action.php on line 40

Warning: Declaration of action_plugin_folded::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/folded/action.php on line 40

Warning: Declaration of action_plugin_hidden::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/hidden/action.php on line 28

Warning: Declaration of action_plugin_include::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/include/action.php on line 354

Warning: Declaration of action_plugin_tag::register(&$contr) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/tag/action.php on line 175

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php:15) in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/auth.php on line 532

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/auth.php on line 818

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/parser/handler.php on line 1376

Warning: Declaration of SI_EntryDefault::match($text) should be compatible with SI_Entry::match() in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/plugins/EntryDefault.php on line 68

Warning: Declaration of SI_EntryTag::match($text) should be compatible with SI_Entry::match() in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/plugins/EntryTag.php on line 42

Warning: Declaration of SI_EntryVerse::match($text) should be compatible with SI_Entry::match() in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/plugins/EntryVerse.php on line 1280

Warning: preg_match(): Compilation failed: invalid range in character class at offset 4360 in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/parser/lexer.php on line 118
A PCRE internal error occured. This might be caused by a faulty plugin

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php:15) in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/actions.php on line 215
jazykc:zaklady-jazyka-c:index [Bo.bule]

****** Sbírka_úloh_z_jazyka_C ****** [UP Logo] Katedra informatiky Univerzity Palackého v_Olomouci ****** Základy jazyka C ****** * Hello_World * Práce_s_proměnnými * Osmičkový_a_šestnáctkový_výstup ***** Doplňující informace ***** Obecné vlastnosti programu v jazyce C * Rozlišuje se velikost písmen (jazyk C je case-sensitive), přičemž většina slov tvořících program (klíčová slova jazyka, datové typy, názvy standardních funkcí a maker) jsou psány malými písmeny. * Ignorují se tzv. bílé znaky (odřádkování, tabulátor, mezery). Doporučuje se využívat těchto znaků pro zvýšení přehlednosti zdrojového kódu programu. * Program se skládá z příkazů - výrazů ukončených středníkem. Pro větší přehlednost programu bývá zvykem psát jednotlivé příkazy na samostatné řádky. int cislo, x, y; z = x * y / 2 / PI; printf(&quot;Výsledek je: %d&quot;, cislo); Kostra programu Jednoduché programy, které budete v několika prvních cvičeních psát, se budou vždy skládat pouze z tzv. hlavní funkce programu. Veškeré příkazy budete psát do této funkce. #include <stdio.h> int main() { /* Tady bude vlastni posloupnost prikazu. */ return 0; } Datové typy Základní datové typy jazyka C můžeme rozdělit na celočíselné datové typy a reálné datové typy. U celočíselných datových typů pak navíc rozlišujeme, zda se jedná o typ znaménkový (pro kladná i záporná čísla) nebo neznaménkový (pouze pro nezáporná čísla). Jazyk C nemá datový typ odpovídající logické hodnotě (pravda nebo nepravda), místo něj je možné použít některý z celočíselných datových typů, přičemž hodnota 0 je brána jako nepravda a jakákoli jiná hodnota jako pravda. Celočíselné typy Seřazeny vzestupně podle rozsahu reprezentovaných čísel: char (vhodný především pro znaky) short int (v pragramu lze zkrátit na short) int long int (v programu lze zkrátit na long) Všechny výše uvedené typy mohou být specifikovány jako signed nebo unsigned (např. signed short int, unsigned char), přičemž signed je implicitní a tudíž se většinou vynechává. Reální typy Seřazeny vzestupně podle rozsahu a přesnosti reprezentovaných čísel: float double long double Celočíselné konstanty V jazyku C jsou celočíselné konstanty vnitřně reprezenttovány implicitně typem int, uvedením znaku "L" (resp. "l") za konstantu lze tento typ změnit na long int. Uvedením znaku "U" (resp. "u") za konstantu lze změnit vnitřní reprezentaci na unsigned. Základní číselnou soustavou pro zápis konstant v jazyku C je soustava desítková. Dále je možné využít osmičkový zápis (uvedením znaku "0" na začátku konstanty) a šestnáctkový zápis (uvedením dvojice znaků "0x" nebo "0X" na začátku konstanty). V šestnáctkové soustavě pak kromě číslic "0" až "9" používáme číslice "A" až "F" (resp. "a" až "f"). Znakové konstanty jsou tvořeny libovolným znakem uzavřeným do apostrofů. Příklady: * desítkový zápis: 10, 1234589, 15u, 1366L, -56, 42LU * osmičkový zápis: 07, 0124, 073 * šestnáctkový zápis: 0xA1B, 0x0, 0X1d3, 0xac * znakové konstanty: 'a', '*', '3', '\'' (pro znak apostrof) Reálné konstanty V jazyku C jsou reálné konstanty vnitřně reprezentovány implicitně typem double, uvedením znaku "L" (resp. "l") za konstantu lze tento typ změnit na long double a uvedením znaku "F" (resp. "f") za konstantu na typ float. Reálné konstanty je možné psát také v semilogaritmickém tvaru, kde mantisa a exponent jsou odděleny znakem "E" (resp. "e"). Příklady: * standardní zápis: 123.56, 15. , .86, -13.2f, 1.23F, 23.128L * semilogaritmický tvar: 2.1425e-3, 2.1e+4L, 2E-10 Proměnné Definice proměnné v jazyku C povinně obsahuje specifikaci datového typu a identifikátoru proměnné, který je tvořen libovolnou posloupností písmen, číslic a znaku podtržítko. Volitelně je možné uvést také inicializační hodnotu proměnné. Přestože pro větší přehlednost zdrojového kódu obvykle definujeme každou proměnnou novým příkazem, je syntakticky možné zapsat definici více proměnných stejného typu do jediného příkazu. Příklady: int moje_cislo; unsigned short int male_kladne_cislo; char muj_znak = '*'; /* definice s inicializací */ int c1, c2 = 3, c3; /* definice více proměnných */ Základní vstup a výstup Vstup a výstup na obrazovku je v jazyku C řešen standardními funkcemi scanf a printf. Prvním parametrem obou funkcí je tzv. řídící textový řetězec, který určuje co se má vypisovat či načítat, a za ním následují hodnoty, které se budou vypisovat, nebo proměnné, do nichž se budou uživatelem zadávané hodnoty vkládat. Použití funkcí obecně: printf(&quot;řídící řetězec&quot;, hodnota1, ...); scanf(&quot;řídící řetězec&quot;, &amp;promenna1, ...); Konkrétní příklady: printf(&quot;Součet je %d&quot;, suma); printf(&quot;Součet je %d&quot;, x + y); printf(&quot;Součet je %d\t Součin je %d\n&quot;, x + y, x * y); printf(&quot;Plán jsme splnili na 100%%.&quot;); printf(&quot;Dekadicky %d je oktalově %o a hexadecimálně %x.\n&quot;, cislo, cislo, cislo); scanf(&quot;%d&quot;, &amp;cislo); scanf(&quot;%d %o %x&quot;, &amp;cislo1, &amp;cislo2, &amp;cislo3); Základní možnosti řídícího řetězce: * %c pro výpis nebo načtení znaku * %d (resp. %i) pro celé číslo desítkově znaménkově * %u pro celé číslo desítkově neznaménkově * %o pro celé číslo osmičkově * %x (resp. %X) pro celé číslo šestnáctkově * %f pro desetinné číslo * %e (resp. %E) pro desetinné číslo semilogaritmicky * %g (resp. %G) pro výpis desetinného čísla standardně nebo semilogaritmicky na základě jeho hodnoty =============================================================================== [Creative_Commons_License] Sbírka_úloh_z_jazyka_C. © Katedra_informatiky Univerzity_Palackého_v_Olomouci, 2009. Projekt byl vytvořen za podpory grantu FRVŠ 2061/2009/G1.


Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/auth.php on line 818
jazykc/zaklady-jazyka-c/index.txt · Last modified: 2013/10/29 19:16 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0