380 likes | 533 Views
Verze 2009.03. Organizační informace. 0. A1PRG - Programování - seminář Ing. Michal Heczko heczko@fai.utb.cz. Kontaktní informace. Ing. Michal Heczko E-mail: heczko@fai.utb.cz Telefon: +420 576 033 008 Kancelář: 218/U3 Konzultační hodiny: Pondělí 10:30 – 12:30.
E N D
Verze 2009.03 Organizační informace 0 A1PRG - Programování - seminář Ing. Michal Heczko heczko@fai.utb.cz
Kontaktní informace • Ing. Michal Heczko • E-mail: heczko@fai.utb.cz • Telefon: +420 576 033 008 • Kancelář: 218/U3 • Konzultační hodiny: • Pondělí 10:30 – 12:30
Organizační informace • Seminář: 1 hodina týdně • Laboratoř: 3 hodiny týdně • Způsob zakončení předmětu: • Klasifikovaný zápočet
Požadavky k zápočtu • Účast na seminářích a v laboratořích je POVINNÁ! • Povolená neúčast: 2 neúčasti • Další požadavky k zápočtu budou sděleny vyučujícími v laboratořích
Studijní materiály • http://vyuka.fai.utb.cz • Nutná registrace • Předmět Programování (Michal Heczko) v sekci Bakalářské studium • Najdete zde: • Podmínky pro získání zápočtu (všichni studenti) • Prezentace a studijní materiály (všichni studenti) • Rozhraní pro odevzdání úkolů (týká se pouze studentů, které vyučuji i na laboratořích!)
Studijní materiály • KERNIGHAN Brian W., RITCHIE Dennis M. Programovací jazyk C. Brno: ComputerPress, a.s. 2006. 286 s. ISBN 80-0897-X • HEROUT Pavel. Učebnice jazyka C – 1. Díl. České Budějovice: Kopp. 2004. 280 s. ISBN 80-7232-220-6 • HEROUT Pavel. Učebnice jazyka C – 2. Díl. České Budějovice: Kopp. 2004. 180 s. ISBN 80-7232-221-4 • KADLEC Václav. Učíme se programovat v jazyce C. Brno: ComputerPress, a.s. 2002. 280 s. ISBN 80-7226-715-9
Studijní materiály • Přehled jazyka C a knihoven [online]. FIT VUT Brno. • http://www.fit.vutbr.cz/~martinek/clang/summary.html.cs • Učíme se jazyk C [online]. Builder. • http://www.builder.cz/serial3.html • C/C++ [online]. Linuxsoft. • http://www.linuxsoft.cz/article.php?id_article=370 • C++ Reference [online]. Cplusplus.com. • http://www.cplusplus.com/reference
Verze 2009.03 Úvod do jazyka C 1 A1PRG - Programování - seminář Ing. Michal Heczko heczko@fai.utb.cz
Agenda • Úvod do programování – základní pojmy • Historický úvod • Základní charakteristika jazyka • Způsob zpracování programu • Základní struktura programu • Ukázka jednoduchého programu
Základní pojmy • Algoritmus • Postup vedoucí k řešení určitého úkolu • Program • Soustava příkazů vložených do počítače za účelem provedení určitého algoritmu • Podprogram • Dílčí program
Základní pojmy • Funkce • Podprogram s návratovou hodnotou • Procedura • Podprogram bez návratové hodnoty • Jazyk C dle původních norem procedury nepodporuje • Programovací jazyk • Forma zápisu jednotlivých příkazů • Způsob komunikace programátora s počítačem
Základní pojmy • Syntaxe • Způsob zápisu • Sémantika • Význam jednotlivých konstrukcí
C × C++ × C# • Jazyk C – označení jazyka C, který odpovídá zmíněným normám • Jazyk C++ - rozšíření jazyka C o objektový model • Jazyk C# - nejmladší jazyk, uvedla jej na trh společnost Microsoft, která jej využívá v technologii .NET Framework
Historický úvod • 1969 – 73 – vývoj v laboratořích AT&T • Vychází z jazyků BCPL a B • 1978 – Brian W. Kernighan & Dennis M. Ritchie • 1. standard jazyky C • The C Programming Language • K&R C • 1988 – ANSI C • rozšíření popisu o řadu knihovních funkci • ve stejné době začíná vývoj jazyka C++
Historický úvod • 1999 - rozšiřující standard ISO/IEC 9899:1999 (označován jako C99) • Přebírá některé vlastnosti C++ • Možnost kdekoliv deklarovat proměnné • Nové datové typy • 2007 – první návrh jazyka C1X • Oprava bezpečnostních chyb, zvýšení kompatibility s jazykem C++
Základní charakteristika jazyka C • Univerzální programovací jazyk nízké úrovně • Není specializován na jednu oblast používání • Není vázán na konkrétní počítač či operační systém • C byl navržen a implementován pod operačními systémy UNIX a téměř celý UNIX je v C napsán • Často efektivnější a rychlejší než jiné jazyky
Základní charakteristika jazyka C • Velmi úsporné vyjadřování • Strukturovaný • Velký soubor operátorů • Hlavní výhody: • Snadné vytvoření překladače pro konkrétní počítač a konkrétní operační systém (velké rozšíření jazyka C) • Velká efektivita kódu (téměř se vyrovná assembleru)
Způsob zpracování programu • Zpracování programu lze shrnout do několika fází • Cyklus zpracování programu probíhá u všech překladačů. U moderních vývojových prostředí je zautomatizován.
Způsob zpracování programu • Editor: • Vytváření a editace zdrojového souboru (*.c, *.cpp)
Způsob zpracování programu • Preprocesor • Součást překladače • Předzpracovává (upravuje) zdrojový kód tak, aby měl překladač snadnější práci
Způsob zpracování programu • Compiler (překladač) • Přeloží zdrojový kód (upravený preprocesorem) do relativního (objektového) kódu počítače • Výsledkem 2 soubory: • Objektový kód (*.obj) a protokol se zprávou o chybách (*.lis)
Způsob zpracování programu • Linker (sestavovací program) • Přiřadí relativním adresám v objektovém kódu adresy absolutní • Provede všechny odkazy na knihovní funkce (*.lib) • Výsledkem spustitelný soubor (*.exe)
Způsob zpracování programu • Debugger • Ladící program • Slouží pro ladění programu a odhalení chyb
IDE • IDE (Integrated development environment) • Integrované vývojové prostředí • Zahrnuje celý cyklus vývoje aplikace • Např. • MS Visual Studio • Dev C++
Ukázka programu #include <stdio.h> intmain() { printf("Ahoj svete!"); return 0; }
Ukázka programu #include <stdio.h> intmain() { printf("Ahoj svete!"); return 0; }
Ukázka programu #include <stdio.h> intmain() { printf("Ahoj svete!"); return 0; }
Ukázka programu #include <stdio.h> intmain() { printf("Ahoj svete!"); return 0; }
Ukázka programu #include <stdio.h> intmain() { int x = 5; int y = 6; printf(”Výsledek: %d”,x*y); return 0; }
Ukázka programu #include <stdio.h> intmain() { int x = 5; int y = 6; printf(”Výsledek: %d”,x*y); return 0; }
Ukázka programu #include <stdio.h> intmain() { int x = 5; int y = 6; printf(”Výsledek: %d”,x*y); return 0; }
Ukázka programu #include <stdio.h> intmain() { int x = 5; int y = 6; printf(”Výsledek: %d”,x*y); return 0; }
Chyby • Chyba syntaxe • Chybný zápis • Překladač na chybu upozorní • Chyba sémantiky • Chybný význam programu • Překladač na chybu neupozorní
Ukázka: chyba syntaxe #include <stdio.h> intmain() { int x = 5; int y = 6; // v tomto případě nás překladač upozorní na chybu, použili jsme totiž neexistující funkci a nedefinovanou proměnnou printx(”Výsledek: %d”,z*y); return 0; }
Ukázka: chyba sémantiky #include <stdio.h> intmain() { int x = 5; int y = 6; // záměrem bylo, stejně jako v předchozím případě vypočítat x*y, avšak díky překlepu se to nestane. X je definované, takže překladač na chybu neupozorní. printf(”Výsledek: %d”,x*x); return 0; }
A1PCJ-s 01. Úvod Děkuji za pozornost Ing. Michal Heczko heczko@fai.utb.cz 218/U3 Prezentace k dispozici na http://vyuka.fai.utb.cz