Lekce 6 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Podobné dokumenty
VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

IUJCE 07/08 Přednáška č. 1

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

8 Třídy, objekty, metody, předávání argumentů metod

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Základy jazyka C. Základy programování 1 Tomáš Kühr

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Základy programování (IZP)

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Programovací jazyk C++ Hodina 1

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Objektově orientované programování

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Úvod do programování. Lekce 1

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Operační systémy. Cvičení 3: Programování v C pod Unixem

Programování v C++ 1, 1. cvičení

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Proměnná a její uložení v paměti

Lekce 7 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Algoritmizace a programování

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Šablona 10 VY_32_INOVACE_0106_0110 Rovnice s absolutní hodnotou

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Formátové specifikace formátovací řetězce

Úvod do programovacích jazyků (Java)

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

- jak udělat konstantu long int: L long velka = 78L;

- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:

Opakování programování

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Odvozené a strukturované typy dat

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Algoritmizace a programování

Lekce 19 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Lekce 23 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Zápis programu v jazyce C#

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Př. další použití pointerů

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

Výrazy, operace, příkazy

7: #include <stdio.h> //standardni knihovna

2 Datové typy v jazyce C

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Výrazy, operace, příkazy

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Sada 1 - PHP. 03. Proměnné, konstanty

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr

DUM 06 téma: Tvorba makra pomocí VBA

Základy programování (IZP)

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

- tzv. standardní vstupní a výstupní proud (input / output stream)

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;

Paměť počítače. alg2 1

Výčtový typ strana 67

Programování v C++ 1, 14. cvičení

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

Operační systémy. Cvičení 4: Programování v C pod Unixem

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Lekce 3 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Jazyk C# a platforma.net

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Programovací jazyk Pascal

PROGRAMOVÁNÍ V C++ CVIČENÍ

Zjednodušené základy jazyku C. Josef Podstata

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Data, výrazy, příkazy

V dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011).

Datové typy pro reálná čísla

Racionální čísla, operátory, výrazy, knihovní funkce

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr

Racionální čísla, operátory, výrazy, knihovní funkce

5 Přehled operátorů, příkazy, přetypování

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Transkript:

Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 CZ.1.07/1.5.00/34.1076 Pro vzdělanější Šluknovsko 32 - Inovace a zkvalitnění výuky prostřednictvím ICT 0202 Ing. Vladimír Ďurči LINUX VY_32_INOVACE_0202_0306 Jazyk C/C++, typy proměnných [3/6] JAZYK C - OS LINUX Vytvořeno 4. 6. 2013 Určeno pro Operační systémy 4. ročník, maturitní obor Přílohy Přiložené textové soubory, a zpracované programy IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C 1 Lekce 6

J a z y k C / C + +, t y p y p r o m ě n n ý c h Obsah lekce: Úvod - Cíle... 1 První program... 2 Základní typy... 3 Otázky k opakování 4 Lab 5 2

Ú v o d - C í l e Úvod Úvodní lekce seriálu o programování v C a C++. Podíváme se na historii a základní vlastnosti jazyka C. Cíle Cílem není formální popis jazyka, ale praktický návod se spoustou příkladů. Projdeme syntaxi jazyka, standardní knihovny i běžné postupy při programování v C/C++. Specifikům programování pod Unixem a navazujícímu software se budeme věnovat pouze v nezbytné míře. Začneme jazykem C, neboť C++ z něj vychází, vzniklo především přidáním nových konstrukcí do C a jen několika jinými drobnými změnami, takže slušně napsaný program v C je zároveň i v C++. P r v n í p r o g r a m Napíšeme jednoduchý program, přeložíme ho a spustíme. První program Učebnice programovacího jazyka většinou začínají jednoduchým příkladem, programem, který vypíše řetězec na standardní výstup. V Céčku vypadá takhle: #include <stdio.h> int main (void) { puts("ahoj světe!"); return 0; } Kód uložíme do souboru priklad.c, přeložíme příkazem $ cc priklad.c -o priklad a můžeme spustit $./priklad Ahoj světe! $ Pokud používáte nějaké IDE, obvykle musíte založit projekt a v něm vytvořit nový soubor s naším příkladem. Překlad a spuštění už budou záležitostí jednoho příkazu v menu. Nyní přiklad alespoň zběžně vysvětlím. Jazyk C je založený na funkcích. Funkce je souvislý kus kódu, může mít nějaké parametry a případně návratovou hodnotu, obojí je popsáno v hlavičce. Druhou částí funkce je její implementace. Funkce můžeme psát sami nebo můžeme použít ty z knihoven. Prvním řádkem #include <stdio.h> si zpřístupníme některé funkce ze standardní knihovny, ale využijeme jen jednu a sice puts. Zbytek programu je tvořen funkcí main, kterou musíme napsat sami. Je to zvláštní funkce, která se zavolá 3

po spuštění programu a odpovídá tak hlavnímu programu v některých jiných jazycích, například Pascalu. Začíná hlavičkou, kde je popsán typ návratové hodnoty, jméno funkce a parametry. int main(void) Naše funkce vrací int, celé číslo, které se použije jako návratová hodnota celého programu. Nula se obvykle vrací, pokud program skončil bez chyby. Na Unixu si to můžete ověřit v shellu třeba takhle: $ if./priklad; then echo "v pořádku"; else echo "chyba"; fi Za jménem main následují v kulatých závorkách parametry. Já jsem použil jednodušší a méně obvyklý způsob deklarace main, při němž je funkce bez parametrů, což jsem zdůraznil klíčovým slovem void. Druhou, běžnější syntaxi, která zpřístupní parametry programu si ukážeme v dalších dílech seriálu. Vstupním bodem nativních programů ve Windows API není main, ale WinMain nebo DllMain, což se standardním Céčkem moc nesouvisí. Naštěstí i ve Windows lze vytvářet konzolové aplikace, kde program začíná v main. Tělo funkce je ve složených závorkách, tvoří ho dva příkazy. Prvním se volá funkce puts - výpis řetězce a následuje ukončení main a tím i celého programu příkazem return s návratovou hodnotou nula. Shrnutí Z á k l a d n í t y p y Základní typy V Céčku jsou základními typy pouze čísla. Mají různou velikost a mohou být celočíselná nebo reálná a znaménková nebo bez znaménka. celá znaménková celá bez znaménka Reálná signed char unsigned char float short unsigned short double int unsigned long double long unsigned long - Tabulka vypadá na první pohled složitě, ale pojmenování má svojí logiku. Celočíselné typy se jmenují char, short, int a long. Místo short a long lze napsat také short int a long int. Až na char (kde to norma C nespecifikuje) jsou všechny implicitně znaménkové, explicitně to dá určit klíčovými slovy signed a unsigned. Například místo long tak můžete napsat signed long nebo i signed long int. Velikost typu v bytech lze zjistit operátorem sizeof. Vždy platí, že odpovídající znaménkové a bezznaménkové typy jsou stejně velké, dále C zaručuje, že sizeof(char) je jedna. Spolehnout se také můžeme, že sizeof(short) <= sizeof(int) <= sizeof(long) 4

Konkrétní velikosti norma C nespecifikuje. Typ int by měl být nejchutnější pro danou architekturu, od dob MS DOSu, kde byl int dvoubytový, vesměs platí, že sizeof(int) == 4, ale je dobré vědět, že to Céčko nezaručuje. V N bitech lze uchovat 2 N různých hodnot, tím je dán i rozsah jednotlivých typů. Znaménkové reprezentují celá čísla od - 2 8 * sizeof(typ) - 1 do 2 8 * sizeof(typ) - 1-1 a bezznaménková od 0 do 2 8 * sizeof(typ) - 1-1 včetně. V případě reálných typů můžeme použít float, double a long double, rozsah a přesnost závisí na implementaci. Úsporný, ale málo přesný a s malým rozsahem je float, naopak long double je velký, ale zato přesnější a s velkým rozsahem. Typ double je někde uprostřed. Vypadá to celé dost složitě, ale v praxi se obvykle používá int a double, s nimi nejčastěji pracují i knihovní funkce. Céčko nemá specifický typ pro boolovské hodnoty Ano/Ne, zde se používá int, nula znamená Ne a jakákoli jiná hodnota (nejčastěji 1) Ano. Jako znak (písmeno) se používá char, aniž bychom specifikovali, zda je signed nebo unsigned. Jelikož char je zároveň číselný typ, můžeme se znaky počítat i bez explicitní konverze na ASCII hodnotu. Shrnutí V jazyku ANSI C jsou definovány následující standardní typy: char int - obvykle jedna slabika (byte) pro uchování jednoho znaku. - celé číslo, (obvykle dvě slabiky) float - racionální číslo (obvykle čtyři slabiky) double - racionální číslo dvojnásobné přesnosti Slovo obvykle" v uvedených příkladech se vztahuje na větąinu implementací. Konkrétní rozsahy pro jednotlivé datové typy jsou uvedeny v hlavičkových souborech limits.h a float.h, které jsou součástí každé implementace. Kromě toho existují v jazyce C modifikátory short tj. "krátký", long tj. "dlouhý", signed tj. se znaménkem a unsigned tj. bez znaménka, kterými lze standardní typy modifikovat. Ne vąechny kombinace jsou ovšem povoleny. Pokud je nějaká kombinace povolená, potom lze zapisovat klíčová slova v libovolném pořadí. K modifikátorům patří i klíčové slovo const. Identifikátoru označenému v definici tímto modifikátorem se zároveň přiřadí hodnota; identifikátor se stává tzv. symbolickou konstantou. Příklady: const float PI=3.141593; /* definice symbolicke konstanty */ const L=3; /* definice celociselne symbolicke konstanty */ const int K=235; /* definice celociselne symbolicke konstanty */ short i=0; /* definice zkracene celociselne promenne */ short int j=1; /* definice zkracene celociselne promenne */ long int m=12345678; /* definice dlouhe celociselne promenne */ unsigned int n; /* definice nezaporné celociselne promenne */ unsigned nm; /* definice nezaporne celociselne promenne */ V následující tabulce jsou uvedeny povolené kombinace klíčových slov pro základní datové typy s typovými modifikátory a jejich zkrácené ekvivalentní vyjádření: signed char (většinou totéž co char, závisí na implementaci!) unsigned char int = signed = signed int short = short int = signed short = signed short int 5

unsigned short = unsigned short int long = long int = signed long = signed long int unsigned long = unsigned long int float double long double Z uvedené tabulky je patrné, ľe některá klíčová slova se pokládají za implicitní ( int, signed). Konkrétní rozsahy pro jednotlivé datové typy jsou rovněž uvedeny v hlavičkových souborech limits.h a float.h. Uveďme proto pouze, ľe typ short nemůže být deląí a typ long nemůže být kratší než typ int. 6

O t á z k y k o p a k o v á n í 1. Uveďte aspoň tři nejpoužívanější textové editory v OS Linux! 7

L a b Štábní kultura a velký projekt co to je? Odpověď: Abychom ve svých souborech (velké programy jsou složeny až z desítek zdrojových souborů) snadno orientovali, je dobré dodržovat následující zásady: Jméno zdrojového souboru by mělo být jednoznačné Sestává-li program z více souborů, pak prvních několik písmen jména označuje projekt (velký program), další pak modul tohoto projektu, např. edi_klavesnice.c, edi_obrazovka.c, edi_tiskarna.c označují soubory s projektu editoru, a jejich účel je zřejmý z druhé části jména souboru. Vlastní program začíná vždy hlavičkou podobnou této: /* * asci.c v 1.0 jméno souboru a verze * * Výpis ASCII tabulky stručný popis programu * * P. Herout 19. 8. 07 autor a datum vytvoření *. 8