M1160 – Úvod do programování I

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Programování v C jazyku - SEMINÁŘ
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
VÝVOJ PROGRAMOVACÍCH JAZYKŮ PERSPEKTIVY ELEKTRONIKY 3. Celostátní seminář, 18. března 2003 Ing. Pavel Pokorný UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ Fakulta technologická.
Programování funkcí v Excelu
Základní pojmy v jazyce C
A1PRG - Programování - seminář Ing. Michal Organizační informace 0 Verze
HYPERTEXT PREPROCESSOR. JAZYK PHP. Jazyk PHP (Hypertext PreProcessor) je intepretovaný jazyk určený pro web. Je celkem jednoduchý, snadno přenositelný.
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
C# pro začátečníky Mgr. Jaromír Osčádal
Programování v C++ Cvičení.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Programování PA - 2.
Generování mezikódu Jakub Yaghob
Algoritmizace a programování
Algoritmizace a programování Podmíněné a cyklické příkazy- 08
Informatika I 3. přednáška
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Základy algoritmizace a programování
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
+ZPE Ing.Jan MAYER (Základy programování pro elektrotechniku)
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
Počítače a programování 1
Proměnné v PHP Každý programovací jazyk pracuje s nějakými hodnotami. To, do čeho se tyto hodnoty ukládají, se nazývá proměnné. Každý programovací jazyk.
Cvičení.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Úvod do programování.
Algoritmy – jejich tvorba Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je ing. Jaroslav.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
IB001 – Úvod do programování skrze C
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
doc. RNDr. Zdeněk Botek, CSc.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Visual Basic - programování
HYPERTEXT PREPROCESSOR. JAZYK PHP. VYUŽITÍ JAZYKA Programování dynamických internetových stránek a webových aplikací vytvoření šablony webu kniha návštěv.
Programování v jazyce C++
Úvod do programování Vyučující: Mgr. Vítězslav Jersák
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 4: Programovací jazyk C Bc. Radek Libovický.
Základy programování mikropočítačů První program v jazyce symbolických adres.
CZ.1.07/1.5.00/ Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/ Střední odborná škola elektrotechnická, Centrum odborné přípravy.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Překladače 1. Překladače a programovací jazyky © Milan Keršlágerhttp:// Obsah:
M2160 – Úvod do programování II RNDr. Jaroslav PELIKÁN, Ph.D. katedra počítačových systémů a komunikací Fakulta informatiky Masarykovy univerzity Botanická.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
Programování ÚVOD, PROMĚNNÉ, OPERÁTORY A PODMÍNĚNÝ PŘÍKAZ ERIK KRÁL.
Počítače a programování 2
Typ struktura (1) Datový typ struktura (struct) je agrego-vaný heterogenní datový typ Jedná se o skupinu několika proměnných, které mohou mít různé datové.
M2160 – Úvod do programování II
Výukový materiál zpracován v rámci projektu
Algoritmizace – základní pojmy
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
ZAL – 3. cvičení 2016.
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Řetězce (24) Funkce strchr: deklarována v: string.h
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Databázové systémy a SQL
Oblast platnosti identifikátoru (1)
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
IB999 Vstupní test z programování
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

M1160 – Úvod do programování I RNDr. Jaroslav PELIKÁN, Ph.D. katedra počítačových systémů a komunikací Fakulta informatiky Masarykovy univerzity Botanická 68a, 602 00 BRNO kanc.: A209,  : +420 – 549 495 751 E-mail: pelikan@fi.muni.cz http://www.fi.muni.cz/usr/pelikan

Cíl předmětu Seznámit studenty se základními principy používanými při řešení problémů na počítači Předmět je vyučován s pomocí programova-cího jazyka C Na konci tohoto předmětu bude student scho-pen: navrhnout algoritmus řešící zadaný problém zapsat algoritmus v programovacím jazyce C provést odladění programu 19/11/2017

Organizace předmětu 1 přednáška: 3 cvičební skupiny: 2 hodiny týdně 3 cvičební skupiny: Zakončení předmětu: kolokvium Předmět pokračuje v jarním semestru před-náškou M2160 Úvod do programování II 19/11/2017

Požadavky ke kolokviu Zápočet: „úspěšné“ napsání průběžných písemek splnění všech domácích úkolů (v termínu) maximálně dvě neomluvené neúčasti na cvičení Zápočet musí být zapsán na ISu nejpozději 12 hodin před začátkem kolokvia Kolokvium probíhá ve dvou částech: vypracování programu (na počítači): 90 minut diskuse nad řešeným problémem + další otázky 19/11/2017

Literatura Pelikán, Jaroslav: Prezentace k přednáškám z předmětu M1160 Úvod do programování I – http://www.fi.muni.cz/usr/pelikan Herout, Pavel: Učebnice jazyka C, KOPP, České Budějovice 1994 Kernighan, Brian W. – Ritchie, Dennis M.: Programovací jazyk C, Computer Press, Brno 2006 Harbison, Samuel P. – Steele, Guy L. Jr.: Referenční příručka jazyka C, SCIENCE 1996 19/11/2017

Programovací jazyk Prostředek (soubor pravidel) pro zápis algo-ritmů, které mohou být provedeny na počítači Komunikační nástroj mezi programátorem a počítačem Zápis algoritmu ve zvoleném programovacím jazyce se nazývá program Příklady programovacích jazyků: C, C++, C#, Pascal, BASIC, Java, Prolog, Lisp 19/11/2017

Programovací jazyky – historie Strojový kód Jazyk symbolických instrukcí – Assembler vědeckotechnické výpočty FORTRAN, COBOL, ALGOL hromadné zpracování dat SIMULA, SIMSCRIPT, LISP PL/1, ADA, Prolog, C/C++, C#, Pascal, Java 19/11/2017

Programovací jazyk C (1) Univerzální programovací jazyk Není specializován pro žádnou konkrétní oblast Nejedná se o „jazyk vysoké úrovně“: pracuje přímo pouze se základními datovými typy (např. znaky, celá čísla, reálná čísla) neumožňuje přímo práci s řetězci a poli neobsahuje přímo nástroje pro vstupy a výstupy zmíněné akce (práce s řetězci, poli, vstupy a výstu-py) je nutné provádět pomocí volání funkcí 19/11/2017

Programovací jazyk C (2) Jeho obecnost jej dělají vhodnějším a efektiv-nějším pro většinu úloh, než jiné jazyky Jazyk C se vyznačuje: úspornými výrazy standardizací řídících struktur, které vedou k vy-tváření dobře strukturovaných a čitelných progra-mů moderními datovými strukturami bohatou množinou operátorů Není vázán na konkrétní typ počítače ani na určitý operační systém 19/11/2017

Historie jazyka C (1) 1969 – 1973: 1973: 1978: Dennis M. Ritchie, AT&T Bell Labs počáteční vývoj jazyka C předchůdci jazyka C: ALGOL, CPL, BCPL, B 1973: většina zdrojového kódu operačního systému UNIX byla přepsána do jazyka C 1978: Dennis M. Ritchie a Brian W. Kernighan vydáva-jí knihu The C Programming Language (K&R) 19/11/2017

Historie jazyka C (2) tato kniha sloužila jako první standard jazyka C popsaná verze jazyka C bývá označována jako K&R C 1983: American National Standards Institute (ANSI) sestavuje komisi X3J11 s úkolem vytvořit stan-dardní specifikaci jazyka C 1989: standard dokončen a schválen pod označením ANSI X3.159-1989 „Programming Language C“ zmíněný standard bývá označován jako ANSI C, Standard C nebo C89 19/11/2017

Historie jazyka C (3) 1990: 1999: 2011: standard ANSI C (s drobnými změnami) byl při-jat institucí International Organization for Stan-dardization (ISO) jako ISO/IEC 9899:1990 zmíněný standard se rovněž označuje jako C90 1999: vydán dokument ISO 9899:1999 (nazývaný také C99), který byl v roce 2000 přijat i jako ANSI standard 2011: vydán dokument ISO 9899:2011 (nazývaný také C11) 19/11/2017

„Životopis“ programu Systémové knihovny *.so, *.a, *.lib Editor Objektové soubory *.o, *.obj Hlavičkové soubory *.h Zdrojový kód Sestavovací program linker *.c *.h Preprocesor Spustitelný program *.exe Překladač compiler Spuštění, ladění ladící program – debugger 19/11/2017

Preprocesor (1) Program, který zpracovává (upravuje) vstupní data tak, aby výstup mohl být dále zpracovaný jiným programem Často používán pro předzpracování zdrojové-ho kódu před vlastním překladem (kompilací) Preprocesor jazyka C: pracuje na základě svých direktiv (příkazů) zapsa-ných ve zdrojovém kódu za direktivu preprocesoru je považován každý řá-dek začínající znakem # 19/11/2017

Preprocesor (2) za znakem # musí následovat název direktivy mezi operace prováděné preprocesorem jazyka C patří např.: vložení hlavičkových souborů (#include) rozvoj maker (#define) odstranění částí zdrojového kódu, které (v závislosti na vyhodnocených podmínkách) nemají být aktuálně pře-kládány – podmíněný překlad (#if, #else, #endif, #elif, #ifdef, #ifndef) případné odstranění komentářů výsledkem práce preprocesoru jazyka C je opět textový soubor 19/11/2017

Překladač – compiler Program realizující překlad zdrojového sou-boru (zpracovaného již preprocesorem) do objektového (relativního) kódu počítače Vzniká soubor *.o nebo *.obj V objektovém kódu ještě nejsou známy adresy proměnných a funkcí, které se nacházejí v knihovních modulech 19/11/2017

Sestavovací program – linker Program provádějící propojení objektových kódů s knihovními moduly V průběhu sestavování jsou nalezeny dosud neznámé adresy proměnných a funkcí a odpo-vídající knihovní moduly jsou připojeny k vý-slednému programu Výsledkem činnosti sestavovacího programu je spustitelný soubor ve strojovém kódu (*.exe), popř. knihovna, která bude později využívána jiným programem 19/11/2017

Ladící program – debugger Program sloužící pro ladění (nalézání) chyb, které nastávají při běhu programu Umožňuje např.: postupné provádění programu po jednotlivých řádcích, tzv. krokování sledování hodnot, kterých nabývají použité pro-měnné přerušení běhu programu na předem definovaném řádku (vložení breakpointu) a následné zahájení krokování 19/11/2017

Programovací jazyk C v M1160 (1) Vývojové prostředí Code::Blocks: zaměřené na jazyky C a C++ existují verze pro operační systémy MS Windows, Linux a Mac OS X podporuje využití různých překladačů, např.: GCC/MinGW, MS Visual C++, Watcom, … dovoluje spolupráci s debuggerem GDB textový editor umožňuje např.: zvýrazňování syntaxe dokončování kódu skrývání částí kódu 19/11/2017

Programovací jazyk C v M1160 (2) možnosti Code::Blocks lze dále rozšířit pomocí zásuvných modulů – plug-ins http://www.codeblocks.org/ http://www.codeblocks.org/downloads/26 codeblocks-16.01mingw-setup.exe (cca 80 MB) obsahuje i překladač GCC a debugger GDB z MingGW MinGW – Minimalist GNU for Windows: distribuce poskytující sadu nástrojů vhodnou pro vývoj aplikací pro MS Windows 19/11/2017

Základní pojmy (1) Identifikátor: konečná posloupnost písmen (anglické abecedy), číslic a znaku podtržítko nesmí: začínat číslicí obsahovat mezeru být shodný s klíčovým (rezervovaným) slovem název volíme mnemonicky např.: teplota, tlak, x1, x2, … 19/11/2017

Základní pojmy (2) Klíčová (rezervovaná) slova: slova mající v programovacím jazyce svůj speciální význam identifikátor nesmí být pojmenovaný stejně jako klíčové slovo neobsahují mezeru např: while, if, else, do, switch, … 19/11/2017

Základní pojmy (3) Řetězcový literál (řetězcová konstanta): posloupnost znaků uzavřená do uvozovek (”) může obsahovat mezery a znaky národních abeced může obsahovat řídící posloupnosti, které jsou uvozené znakem \, např.: \n přechod na nový řádek \t horizontální tabulátor \\ zpětné lomítko \” uvozovky \xhh kde hh označuje číslo v šestnáctkové soustavě požadovaného znaku \ooo kde ooo označuje číslo v osmičkové soustavě požadovaného znaku 19/11/2017

Poznámka Dva sousedící identifikátory, klíčová slova nebo čísla musí být od sebe oddělena ales-poň jednou: mezerou tabulátorem znakem konce řádku komentářem (překladač jej nahrazuje mezerou) Přebytečné mezery, tabulátory a znaky kon-ce řádků jsou překladačem ignorovány Jazyk C rozlišuje velká a malá písmena (case sensitive) 19/11/2017

Komentáře Poznámky, které jsou překladačem ignoro-vány Nemají žádný vliv na funkci programu Slouží k lepší čitelnosti (lepšímu pochope-ní) programu Zapisují se: mezi znaky /*, */ za znaky // až ve standardu C99 nebo C++ za poznámku jsou považovány všechny znaky až do konce řádku 19/11/2017

Program v jazyce C (1) Na nejvyšší úrovni se skládá z: direktiv preprocesoru: řádek začínající znakem # globálních deklarací a definic funkcí Jedna z funkcí se vždy jmenuje main: musí být v programu vždy uvedena volána jako první po spuštění programu 19/11/2017

Program v jazyce C (2) Funkce je tvořena: hlavičkou, která specifikuje: viditelnost funkce vně souboru, ve kterém je defino-vána návratový typ – typ hodnoty, kterou funkce vrací jméno funkce seznam (typ a počet) formálních parametrů, pomocí nichž funkce může komunikovat se svým okolím tělem funkce, které obsahuje: lokální deklarace a definice posloupnost příkazů, která bude po vyvolání funkce provedena 19/11/2017

Program v jazyce C (3) Poznámky: příkazy jsou prováděny postupně ve stejném pořadí, v jakém jsou zapsány všechny příkazy v jazyce C jsou ukončeny středníkem – středník je nedílnou součástí příkazu výjimku tvoří složený příkaz, který se střední-kem neukončuje 19/11/2017

Struktura programu v jazyce C (1) /* Vložení hlavičkových souborů */ #include <soubor.h> /* Globální deklarace a definice */ návratový_typ jmFunkce(seznam formálních parametrů) { /* Tělo funkce jmFunkce */ } int main(seznam formálních parametrů) /* Tělo funkce main */ Hlavička funkce 19/11/2017

Struktura programu v jazyce C (2) #include <soubor.h>: direktiva preprocesoru zabezpečí vložení hlavičkového souboru soubor.h do zdrojového kódu hlavičkové soubory mimo jiné popisují tzv. prototypy (deklarace) funkcí prototyp funkce: deklaruje funkci před jejím použitím a před tím, než je definována tvořen hlavičkou funkce, za níž následuje středník pro správné vyvolání funkce je zapotřebí, aby překla-dač znal informace uvedené v její hlavičce 19/11/2017

Struktura programu v jazyce C (3) návratový_typ: udává typ hodnoty, kterou funkce vrací jestliže funkce nevrací žádnou hodnotu, pak by návratovým typem měl být typ void void: představuje prázdný datový typ používá se pro: označení funkcí, které nevracejí žádnou hodnotu označení prázdného seznamu formálních parametrů vytváření obecného ukazatele 19/11/2017

Struktura programu v jazyce C (4) jmFunkce: identifikátor specifikující jednoznačné jméno funkce následně se používá pro její vyvolání seznam formálních parametrů: slouží k předání vstupních hodnot funkci je-li prázdný, měl by být použitý typ void 19/11/2017

Struktura programu v jazyce C (5) Funkce main: každý spustitelný program musí obsahovat právě jednu funkci main volána jako první po spuštění programu návratový typ by měl být vždy int (celé číslo) konvence: jestliže program skončí bezchybně, pak by funkce main měla vracet hodnotu 0 v případě chybového stavu by měla vracet celočísel-nou hodnotu v rozmezí 1 až 255 19/11/2017

Struktura programu v jazyce C (6) seznam formálních parametrů může být využitý pro předání vstupních hodnot z příkazové řádky operačního systému 19/11/2017

Příkaz return (1) Používán k ukončení právě probíhající funkce Pomocí příkazu return je možné, aby fun-kce vrátila svou hodnotu Obecný tvar: return výraz; Funkce: způsobí ukončení právě prováděné funkce řízení se předá na místo bezprostředně následující za voláním funkce výraz se vyhodnotí a výsledná hodnota je funkcí vrácena není-li uveden výraz, pak funkce nevrací žádnou hodnotu 19/11/2017

Příkaz return (2) Poznámka: jestliže program dosáhne konce těla funkce, aniž by byl proveden příkaz return, pak je výsledek stejný, jako by se provedl return neobsahující žádný výraz 19/11/2017

Funkce výstupu (1) Funkce puts: deklarována v: stdio.h prototyp: int puts(const char *s); funkce: vypíše řetězec s na standardní výstup (obrazovka monitoru) a provede odřádkování vrácená hodnota: při úspěšném výpisu vrací nezápornou hodnotu při neúspěšném výpisu vrací hodnotu EOF (-1) 19/11/2017