Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Programování - úvod A0B36PRI - PROGRAMOVÁNÍ Jazyk JAVA
České vysoké učení technické Fakulta elektrotechnická v1.02
2
Vítejte, představme se …
Jste STUDENTI ČVUT FEL! Jste členy akademické obce! Děkan, senát, vědecká rada Zaměstnanci (tituly …), doktorandi Katedry Přednáší Ing. Jiří Zdeněk, CSc. Doc. Ing. Ivan Jelínek, CSc. Studenti 1. ročníku programu KME a EEM Cvičící:…. A0B36PRI ÚVOD 01
3
Kdo je kdo v Programování I
Vy – studenti Různé zkušenosti s různými programovacími jazyky Přednášející: Ing. Jiří Zdeněk, CSc., Doc.Ing. Jelínek Ivan CSc. Nejdůležitější učitelé: cvičící!! Ing. R. Havlíček, PhD., ved. Cvičení Ing. M. Chomát, CSc. Ing. S. Flígl, PhD. Ing. I. Beshajová-Pelikánová Ing. J. Kučerák Ing. K. Dušek Ing. M. Mudroch Ing. M. Filipský 4. Garant: Doc.Ing. Jelínek Ivan CSc. Proč asi ?? A0B36PRI ÚVOD 01
4
Cíl předmětu Cíl předmětu: Cílem předmětu je naučit studenty sestavovat základní programy v jazyku Java. Jádrem jsou datové typy, výrazy, funkce, pole, základní programovací techniky v jazyce Java Součástí výkladu jsou základy algoritmizace, netriviálních datových struktur a úvod do objektového přístupu V závěru je seznámení s principy jazyka C. Poznámkt: Znalosti studentů z oblasti programování na začátku předmětu jsou nevyrovnané - nudící se vs. nestíhající studenti Výsledky předmětu, statistika!!!!!!!!!! Organizace předmětu: Přednášky (účast nepovinná, ale velmi (!) doporučená) Cvičení: …. Samostatná práce: studium, domácí úkoly, semestrální práce Sem přidat nějaké úvodní představení A0B36PRI ÚVOD 01
5
Hodnocení a zkouška Minimální počet bodů pro zápočet je 40 bodů
Zdroje bodů max. bodů min. bodů 4 domácí úlohy 30 20 semestrální práce 25 15 test na cvičeních 5 zkouškový test 10 ústní zkouška -10b Body ze cvičení, maximálně 70. 60 a více bodů → možnost A, B, C podle prémiového testu Klasifikace na základě bodového hodnocení) klasifikace počet bodů číselně slovně A 1 výborně B 1,5 velmi dobře C 2 dobře D 60 – 69 2,5 uspokojivě E 3 dostatečně F < 50 4 nedostatečně Možnost nechat si zapsat známku nebo jít k ústní zkoušce – odečte se 10 bodů Zakončení předmětu: zápočet, zkouška (na základě bodového hodnocení) A0B36PRI ÚVOD 01
6
Témata přednášek Algoritmy, programy, programovací jazyky, jazyk Java
Řízení běhu programu - řídicí struktury Proměnné, operátory, výrazy, representace čísel v počítači Funkce a procedury, role proměnných Předávání parametrů, soubory I (jednoduché typy) Rozklad problému na podproblémy – procedurální programování, rekurze Strukturované datové typy – pole, referenční proměnná Vícerozměrná pole, string, pole jako parametr Algoritmy vyhledávání a řazení, složitost algoritmů I Složitost algoritmů II Principy objektově orientovaného programování Soubory II Úvod do jazyka C Rezerva A0B36PRI ÚVOD 01
7
Témata cvičení Seznámení s počítačovou učebnou a službami fakultní počítačové sítě Seznámení s vývojovým prostředím (IDE) NetBeans, první program v Javě Proměnné, operátory, výrazy, přiřazení, vstup a výstup Větvení, podmíněný příkaz, programový přepínač (switch) Cykly Procedury a funkce I+ zadání semestrální práce Procedury a funkce II, předávání parametrů funkcím, rozklad problému na podproblémy, procedurální programování Strukturované datové typy I – pole, string Strukturované datové typy II – vícerozměrná pole, matice pole jako parametr Algoritmy řazení a třídění I Algoritmy řazení a třídění II OOP Obhajoba semestrální práce, test, zápočet Rezerva A0B36PRI ÚVOD 01
8
Struktura cvičení Systém dvoutýdenních bloků: 1. týden bloku
diskuse nad domácí úlohou z minulého bloku, vyvolávání, hodnocení, oznámení bodů zadání domácího úkolu nad tématem 1a a 2a, krátký výklad obou témat procvičování obou témat na vzorových příkladech 2. týden bloku konzultace nad domácí úlohou z 1. týdne bloku konzultace nad oběma tématy z minulého bloku, případně vysvětlující příklady A0B36PRI ÚVOD 01
9
Zdroje informací a nástroje pro studium
Vývojové prostředky: IDE – NetBeans Stáhnout zdarma a nainstalovat, viz cvičení Podklady k přednáškám a cvičením: Presentace předmětu A0B36PRI „Programování“ Doporučená literatura Pro programovací jazyk JAVA Herout, P.: Učebnice jazyka Java, Kopp, Č.Budějovice, 2010. ISBN: Pro programovací jazyk „C“ Herout, P.: Učebnice jazyka C. III. vyd. Kopp, Č.Budějovice, 1998. ISBN: A0B36PRI ÚVOD 01
10
Další literatura (výběr)
Pro programovací jazyk JAVA Zakhour, S: Java 6, výukový kurz, CPress, Brno, 2007, ISBN Virius, M.: JAVA pro zelenáče. Neocortex, Praha, ISBN: Keogh, J.: JAVA bez předchozích znalostí. Computer Press, Brno, ISBN: Herout, P.: JAVA - grafické uživatelské prostředí a čeština, Kopp, Č.Budějovice, ISBN: Eckel, B.: Myslíme v jazyku Java – knihovna programátora, Grada, Praha ISBN: Eckel, B.: Myslíme v jazyku Java – knihovna zkušeného programátora, Grada, Praha ISBN: Pro programovací jazyk „C“ Kernighan, B.W.-Ritchie, D.M.: Programovací jazyk C. Computer Press, Brno, ISBN: X Herout, P.: Učebnice jazyka C – 2 díl, Kopp, Č.Budějovice, 2002. ISBN: A0B36PRI ÚVOD 01
11
Právě začínáme!! A0B36PRI ÚVOD 01
12
Šest zákonů programování
V každém programu je alespoň jedna chyba Každý program lze zkrátit alespoň o jeden řádek Nejjednodušší chyby se nejhůře hledají Každou opravou se do programu zanese nová chyba Když už se zdá, že program je v pořádku, určitě jste něco přehlédli Programátor dělá to co umí, počítač si dělá, co chce A0B36PRI ÚVOD 01
13
Proces programování A0B36PRI „PROGRAMOVÁNÍ“ 02
14
Programy a programovací jazyky
Program je předpis (zápis algoritmu) pro provedení určitých akcí počítačem zapsaný v programovacím jazyku Programovací jazyky strojově orientované strojový jazyk = jazyk fyzického procesoru asembler (jazyk symbolických adres) vyšší jazyky imperativní (příkazové, procedurální) neimperativní (např. funkcionální) Hlavní rysy imperativních jazyků (např. C, C++, Java, Pascal, Basic, ...) zpracovávané údaje mají formu datových objektů různých typů, které jsou v programu reprezentovány pomocí proměnných resp. konstant program obsahuje deklarace a příkazy deklarace definují význam jmen (identifikátorů) příkazy předepisují akce s datovými objekty nebo způsob řízení výpočtu A0B36PR1 - ÚVOD 01
15
Základní přístupy k programování
Strojový, naivní přístup Strojový kód, asembler, skripty,C Procedurální přístup C, Java, … Objektový přístup Java, C++, C#,… A0B36PR1 - ÚVOD 01
16
Naivní přístup v Javě Class{..} main{ xxxxx; } A0B36PR1 - ÚVOD 01
17
Procedurální přístup v Javě
statické metody main{ metoda; … } Class{..} metoda{ xxxxx; } metoda{ xxxxx; } metoda{ xxxxx; } metoda{ xxxxx; } A0B36PR1 - ÚVOD 01
18
JAVA – procedurální přístup
public class Dekrementace { }// doc public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n; System.out.println("Zadej počet "); n = sc.nextInt(); while (n > 0) { System.out.println("Vypis " + n); n = zmensi(n); } static int zmensi(int n) { n=n-1; return n; } Typicky.java 18
19
Objektový přístup v Javě
instanční metody A0B36PR1 - ÚVOD 01
20
JAVA – objektový přístup
public class CitacTest{ public static void main(String[] args) { Citac citac = new Citac(0); Menu menu = new Menu(); do { citac.zobraz("Hodnota = "+citac.hodnota()); switch (menu.vyber()) { case 1: citac.zvetsit(); break; case 2: citac.zmensit(); break; case 3: citac.nastavit(); break; } } while (menu.volba()!=0); citac.exit("Konec"); class Citac{ } class Menu{ }
21
Implementace programovacích jazyků
Interpretační metoda: překlad interpretace Zjednoušeně! A0B36PR1 - ÚVOD 01
22
Implementace programovacích jazyků
Kompilační metoda: překlad Cílový kód spuštění Zjednoušeně! A0B36PR1 - ÚVOD 01
23
Kompilační metoda - jazyk C, C++
Program pro MS Windows OS MS Windows Překlad v MS Windows Zdrojový kód v jazyku C Program pro GNU Linux OS GNU Linux Překlad v GNU Linuxu Překlad v Solarisu OS Solaris Program pro Solaris A0B36PR1 - ÚVOD 01
24
Interpretační metoda - jazyk Java
Zdrojový kód v jazyku Java soubor .java JRE OS MS Windows Překlad (javac) JRE OS GNU Linux Bytecode soubor .class JRE OS Solaris A0B36PR1 - ÚVOD 01
25
IDE – vývojový nástroj - NetBeans
Pro vývoj programů se používá vývojový nástroj nazývaný IDE (Integrated Development Environment) IDE je v dnešní době k dispozici pro všechny běžné používané programovací jazyky, často od různých výrobců software V předmětu A0B36PR1 + 2 budeme pro vývoj programů v Javě používat IDE NetBeans IDE NetBeans je možné zdarma stáhnout na webu a nainstalovat na platformě Windows nebo Unix (viz NetBeans obsahují (nebo využívají) všechny nezbytné části pro vývoj programu v Javě (textový editor, kompilátor, ladící prostředky a další části) S používáním NetBeans se seznámíte na cvičeních Jiná prostředí Eclipse - opensource - zdarma, fa IBM IDEA - komerční (30tidenní zkušební verze zdarma) JBuilder - základní verze zdarma pro nekomerční využití, fa Borland JDeveloper - vývojové prostředí firmy Oracle, freeware BlueJ – bylo volně šiřitelné multiplatformní vývojové prostředí A0B36PR1 - ÚVOD 01
26
NetBeans A0B36PR1 - ÚVOD 01
27
Java Platforma (JRE) = Java Core API + JVM
Překlad Interpretace Aplikační prostředí – knihovny Disk interpret prostředí Zdrojový kód, .java API Kompilátor Interpret JVM Byte code, .class Počítač – HW, výpočet Software Hardware hardwarová vrstva Disk Pozn: zjednodušeno A0B36PR1 - 02 27
28
Vývoj programů v Javě JRE - běhové prostředí, JRE = JVM +API
pro běh programů JVM – Java Virtual Machine – virtuální stroj API – Application Programming Interface - knihovny JDK - Software Development Kit pro Javu sada základních nástrojů pro vývoj programů v Javě JRE, překladač javac, debugger, javadoc, nástroje pro vytváření jar archivů, mnohé další ke stažení na A0B36PR1 - 02 28 28
29
Jazyk JAVA - interpretace
Jazyk Java je implementován interpretačním způsobem program je tvořen jedním nebo několika zdrojovými soubory s příponou .java: Program.java zdrojové soubory se přeloží překladačem(*) javac do vnitřní formy (byte code, bajt-kód) s příponou .class: Program.java > javac > Program.class interpretaci vnitřní formy provede program java (JVM – Java Virtual Machine v balíčku JRE Java Runtime Environment) a provede výpočet: Program.class > java > „výpočet” Poznámky: (*) v terminologii firmy Sun to je kompilátor program obvykle využívá řadu knihoven (Java Core API), které je třeba mít k dispozici jak při překladu, tak při interpretaci!!! A0B36PR1 - ÚVOD 01
30
Proč jazyk Java? jde o vyšší, obecně použitelný programovací jazyk s vysokým stupněm zabezpečení je objektově orientovaný, umožňuje však i klasické procedurální programování vytvořené programy jsou zcela portabilní (program vytvořený pod MS Windows bez problémů funguje pod Unixem a naopak) syntaxe výrazů a příkazů vychází z jazyka C; přechod z Javy na C nebo C++ je tedy jednodušší, než odjinud základní implementaci (JDK – Java Development Kit) firmy Sun lze pro prostředí Windows i Unix stáhnout ze stránek firmy Sun: My používáme vývojové prostředí NetBeans 7., fy. V současnosti je aktuálni Netbeans s Javou 7.0 u25 Studenti si tedy mohou snadno vývojový nástroj instalovat na svých domácích počítačích a mohou se učit programovat i mimo počítačové učebny školy A0B36PR1 - 02 30 30
31
JAVA – první program Příklad: program vypíše daný text na obrazovku:
public class PrvniProgram { public static void main(String[] args) { System.out.println("Nazdar Svete"); } Po překladu a spuštění se na obrazovku vypíše Nazdar Svete Nejjednodušší zdrojový program – je uložen v jediném souboru. Jméno souboru musí být shodné se jménem třídy (zde PrvniProgram) a přípona (rozšíření) jména souboru je povinná .java (náš program bude tedy uložen v souboru „PrvniProgram.java“) deklarace veřejné třídy (public class), hlavní funkce main (veřejná statická metoda, public static method) Hlavička funkce funkce main (): klíčová slova public static void (void - procedura) (String[] args) specifikace vstupních parametrů Konvence: jména tříd se píší s prvním velkým písmenem A0B36PRI ÚVOD 01 31
32
JAVA – bloková struktura
Program má blokový charakter (blok třídy, blok(y) metod(y)) Nejtriviálnější program je tvořen metodou main ve třídě (třída = program) public class PrvniProgram { public static void main(String[] args) { System.out.println("Nazdar Svete"); } Jméno třídy Začátek třídy Jméno metody Začátek metody Hlavička metody Tělo metody Konec metody Konec třídy A0B36PRI ÚVOD 01 32
33
Vlastnosti programovacích jazyků
Syntaxe souhrn pravidel udávajících přípustné tvary dílčích konstrukcí a celého programu syntaktické diagramy Sémantika udává význam jednotlivých konstrukcí A0B36PR1 - ÚVOD 01
34
Rozšířená BNF Rozšířená Backus-Naurova forma – EBNF
Příklad: identifikátor identifikátor = písmeno {písmeno | číslice} písmeno = 'A' | 'B' | 'C' | 'D' | ... | 'X' | 'Y' | 'Z' číslice = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '9' Neterminály: identifikátor, písmeno, číslice Terminály: ‘A’, ‘B’, ... Význam metasymbolů: {x} žádný nebo několik výskytů x x | y x nebo y [x] žádný nebo jeden výskyt x A0B36PR1 - ÚVOD 01 PRO ZÁJEMCE
35
Vlastní studium ? A0B36PR1 - ÚVOD 01 35
36
Kde lze studovat Další informace k této přednášce hledejte např. v:
Herout, P.: Učebnice jazyka Java, Kopp, Č.Budějovice, 2010, str
37
Programování - úvod Konec A0B36PRI - PROGRAMOVÁNÍ Jazyk JAVA
České vysoké učení technické Fakulta elektrotechnická
38
Vlastní studium ? A0B36PR1 - ÚVOD 01
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.