1 / 38

České vysoké učení technické Fakulta elektrotechnická

A0B36PRI - PROGRAMOVÁN Í. Programování - úvod Jazyk JAVA. České vysoké učení technické Fakulta elektrotechnická. v1.02. 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áší

lydia
Download Presentation

České vysoké učení technické Fakulta elektrotechnická

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A0B36PRI - PROGRAMOVÁNÍ Programování - úvod 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 A0B36PRI ÚVOD 01

  5. Hodnocení a zkouška Minimální počet bodů pro zápočet je 40 bodů Body ze cvičení, maximálně 70. 60 a více bodů → možnost A, B, C podle prémiového testu 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í • SouboryII • Ú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 • http://www.netbeans.org • 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í“ • https://edux.feld.cvut.cz/courses/A0B36PRI/ • Doporučená literatura Pro programovací jazyk JAVA • Herout, P.: Učebnice jazyka Java, Kopp, Č.Budějovice, 2010. ISBN: 978-80-7232-398-2 Pro programovací jazyk „C“ • Herout, P.: Učebnice jazyka C. III. vyd. Kopp, Č.Budějovice, 1998. ISBN: 80-85824-21-9 A0B36PRI ÚVOD 01

  10. Další literatura (výběr) Pro programovací jazyk JAVA • Zakhour, S: Java 6, výukový kurz, CPress, Brno, 2007, ISBN 978-80-251-1575-6 • Virius, M.: JAVA pro zelenáče. Neocortex, Praha, 2001. ISBN: 80-902230-9-5 • Keogh, J.: JAVA bez předchozích znalostí. Computer Press, Brno, 2005. ISBN: 80-251-0839-2 • Herout, P.: JAVA - grafické uživatelské prostředí a čeština, Kopp, Č.Budějovice, 2001. ISBN: 80-7232-150-1 • Eckel, B.: Myslíme v jazyku Java – knihovna programátora, Grada, Praha 2000. ISBN: 80-247-9010-6 • Eckel, B.: Myslíme v jazyku Java – knihovna zkušeného programátora, Grada, Praha 2000. ISBN: 80-247-0027-1  Pro programovací jazyk „C“ • Kernighan, B.W.-Ritchie, D.M.: Programovací jazyk C. Computer Press, Brno, 2006. ISBN: 80-251-0897-X • Herout, P.: Učebnice jazyka C – 2 díl, Kopp, Č.Budějovice, 2002. ISBN: 80-85828-50-2 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; xxxxx; } A0B36PR1 - ÚVOD 01

  17. Procedurální přístup v Javě main{ metoda; metoda; … } Class{..} metoda{ xxxxx; xxxxx; } metoda{ xxxxx; xxxxx; } metoda{ xxxxx; xxxxx; } metoda{ xxxxx; xxxxx; } statické metody 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; }

  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 OS GNU Linux Zdrojový kód v jazyku C Program pro GNU Linux Překlad v GNU Linuxu Překlad v Solarisu OS Solaris Program pro Solaris A0B36PR1 - ÚVOD 01

  24. JRE JRE JRE Interpretační metoda - jazyk Java Zdrojový kód v jazyku Java soubor .java OS MS Windows Překlad (javac) OS GNU Linux Bytecode soubor .class 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 http://www.netbeans.org) • 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 Software Hardware Překlad Interpretace Disk Aplikační prostředí – knihovny interpret prostředí Zdrojový kód, .java Kompilátor Interpret API JVM Byte code, .class Počítač – HW, výpočet hardwarová vrstva Disk Pozn: zjednodušeno 27 A0B36PR1 - 02

  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 http://java.sun.com 28 A0B36PR1 - 02

  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 • interpretacivnitřní formy provede programjava (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 kdispozici 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:http://java.sun.com My používáme vývojové prostředí NetBeans7., fy. http://www.netbeans.org/ V současnosti je aktuálni Netbeans 7.3.1 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 imimo počítačové učebny školy 30 A0B36PR1 - 02

  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í funkcemain(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"); } } Začátek třídy Jméno 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| yx nebo y [x] žádný nebo jeden výskyt x A0B36PR1 - ÚVOD 01 PRO ZÁJEMCE

  35. Vlastní studium  ? 35 A0B36PR1 - ÚVOD 01

  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.21-41.

  37. A0B36PRI - PROGRAMOVÁNÍ Programování - úvod Jazyk JAVA Konec České vysoké učení technické Fakulta elektrotechnická

  38. Vlastní studium  ? A0B36PR1 - ÚVOD 01

More Related