Programování - úvod A0B36PRI - PROGRAMOVÁNÍ Jazyk JAVA

Slides:



Advertisements
Podobné prezentace
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ý.
Advertisements

Základy informatiky Ing. Roman Danel, Ph.D.
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.
Algoritmizace Cíl předmětu - naučit se sestavovat algorimy řešení základních problémů a zapisovat je v jazyku Java. Jádrem předmětu jsou data, typy, výrazy.
Materiály k přednášce Úvod do programování Ondřej Čepek.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
Algoritmizace a programování
Hana Kotinová Struktura a cíl práce Metody předzpracování dat Systémy předzpracování dat Historie vývoje DPT Jak program pracuje Budoucnost.
25. ALGORITMIZACE A PROGRAMOVÁNÍ
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í
Sémantická analýza Jakub Yaghob
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Software – úvod.
Ant Připravil: Ing. Jan Kolomazník. strana 2 Proč vznikl Potřeba sestavovat komplexní Nezávisle na platformě Popis založený na xml Spouštění různých úloh.
C# - Úvod Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
6. cvičení Polymorfismus
Počítače a programování 1
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
Algoritmizace a programování Binární soubory - 14 Mgr. Josef Nožička IKT Algoritmizace a programování
IB111 Programování a algoritmizace
Dokumentace informačního systému
Algoritmizace a programování Vývojové diagramy - 03
Digitální učební materiál
Algoritmizace a programování Úvod do Delphi - 04 Mgr. Josef Nožička IKT Algoritmizace a programování
Vytváření a realizace algoritmů Algoritmy a datové struktury
doc. RNDr. Zdeněk Botek, CSc.
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Vzdálené počítačové sítě a programování v prostředí Windows – kombinované studium Osnovy předmětu a koncepce výuky Ing. Zdeněk Votruba LVALVA.
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í.
1 Programování a p. jazyky Postup při tvorbě programu (systému) –strategie –analýza ( konceptuální modely) Datová Procesní –návrh (i/o, výjimky, algoritmus)
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.
doc. RNDr. Zdeněk Botek, CSc.
OPERAČNÍ SYSTÉMY.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
doc. RNDr. Zdeněk Botek, CSc.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorIng. Ivana Brhelová Název šablonyIII/2.
doc. RNDr. Zdeněk Botek, CSc.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část I.
České vysoké učení technické Fakulta elektrotechnická Datové typy, výrazy vstup, výstup Jazyk JAVA A0B36PRI - PROGRAMOVÁN Í v1.02.
Visual Basic - programování
XSLT překladač Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Řízení běhu programu, řídící struktury A0B36PRI - PROGRAMOVÁNÍ
Informatika (1) Počítač - základní pojmy HW a SW4 OS MS-DOS, Windows 95, 982 Org. souborů na disku, operační paměť2 Aplikace Malování, Word8 Základy programování.
Programování v MATLABu © Leonard Walletzký, ESF MU, 2000.
Procedurální programování,
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 4: Programovací jazyk C Bc. Radek Libovický.
Překladače 1. Překladače a programovací jazyky © Milan Keršlágerhttp:// Obsah:
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
Číslo projektuCZ.1.07/1.5.00/ Kódování materiáluvy_32_INOVACE_inf3_prg10 Označení materiáluprg10_vyvoj_diagram.pptx Název školyGymnázium Kladno.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
Předmět: INFORMATIKA Ročník: VII. Tématický celek: SOFTWARE A HARDAWARE Autor prezentace : Mgr.Jana Hložková EU do škol – šablona III/2 Inovace.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 1: Úvod Bc. Radek Libovický.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Počítače a programování 2
SW počítače - operační systém
Výukový materiál zpracován v rámci projektu
Připravil: Ing. Jan Kolomazník, Ph.D.
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.
TNPW1 JavaScript Ing. Jiří Štěpánek.
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.
C# přehled vlastností.
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Programování - úvod A0B36PRI - PROGRAMOVÁNÍ 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áší 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

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

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

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 90 - 100 1 výborně B 80 - 89 1,5 velmi dobře C 70 - 79 2 dobře D 60 – 69 2,5 uspokojivě E 50 - 59 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

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

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

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

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

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

Právě začínáme!!  A0B36PRI ÚVOD 01

Š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

Proces programování A0B36PRI „PROGRAMOVÁNÍ“ 02

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

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

Naivní přístup v Javě Class{..} main{ xxxxx; } A0B36PR1 - ÚVOD 01

Procedurální přístup v Javě statické metody main{ metoda; … } Class{..} metoda{ xxxxx; } metoda{ xxxxx; } metoda{ xxxxx; } metoda{ xxxxx; } A0B36PR1 - ÚVOD 01

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

Objektový přístup v Javě instanční metody A0B36PR1 - ÚVOD 01

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{ }

Implementace programovacích jazyků Interpretační metoda: překlad interpretace Zjednoušeně! A0B36PR1 - ÚVOD 01

Implementace programovacích jazyků Kompilační metoda: překlad Cílový kód spuštění Zjednoušeně! A0B36PR1 - ÚVOD 01

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

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

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

NetBeans A0B36PR1 - ÚVOD 01

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

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 A0B36PR1 - 02 28 28

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

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í NetBeans 7., 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 i mimo počítačové učebny školy A0B36PR1 - 02 30 30

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

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

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

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

Vlastní studium  ? A0B36PR1 - ÚVOD 01 35

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.

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

Vlastní studium  ? A0B36PR1 - ÚVOD 01