Programování 1 - Java

Podobné dokumenty
Algoritmizace. Cíle předmětu

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Úvod do programování v jazyce Java

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Algoritmizace a programování

11. Přehled prog. jazyků

Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle

3. Základy programovacího jazyka Java

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Algoritmizace a programování

Algoritmizace a programování

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

Programování a algoritmizace

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

Úvod do programování v jazyce Java

Matematika v programovacích

Algoritmizace a programování

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

2 Postup při programování, úvod do programovacího jazyka Java

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

Úvod do programování - Java. Cvičení č.4

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

3 KTE / ZPE Informační technologie

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Vývojové nástroje jazyka Java

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Řídicí struktury. alg3 1

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Program. Organizace semináře Základní principy OOP Úvod do programovacího jazyka Java Distribuce

Základy programovaní 3 (Java)

Část 1 Organizace předmětu. Základní pojmy. Část 2 Programování a výpočty. Část 3 Programovací jazyk Java

1. Programování proti rozhraní

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Výčtový typ strana 67

KTE / ZPE Informační technologie

Abstraktní datové typy: zásobník

ALGORITMIZACE A PROGRAMOVÁNÍ

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Program a životní cyklus programu

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

DTP Základy programování Úvod do předmětu

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Úvod do programovacích jazyků (Java)

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Úvod. Programovací paradigmata

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu


Překladač a jeho struktura

8 Třídy, objekty, metody, předávání argumentů metod

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Úvod do programovacích jazyků (Java)

Objektově orientované programování

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Paměť počítače. alg2 1

NPRG031 Programování II --- 2/2 Z, Zk

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Maturitní témata Školní rok: 2015/2016

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

IB111 Programování a algoritmizace. Programovací jazyky

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

7. Datové typy v Javě

Úvod do programování - Java

IB111 Úvod do programování skrze Python Přednáška 13

Programovací jazyk Java

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Základní pojmy. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 1 A0B36PR1 Programování 1

Java/QE Akademie - Osnova

Základy algoritmizace a programování

VISUAL BASIC. Přehled témat

Základní pojmy. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 1 A0B36PR1 Programování 1

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Profilová část maturitní zkoušky 2017/2018

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Algoritmizace a programování. Terminálový vstup a výstup

Programování v C++ 1, 1. cvičení

Programování v Javě I. Leden 2008

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

5. přednáška - Rozklad problému na podproblémy

Textové soubory. alg9 1

Programování v Javě I. Únor 2009

Datové struktury. alg12 1

Úvod. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 1 B0B36PJV Programování v JAVA

Informace o předmětu. Úvod. Cíle předmětu. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

Transkript:

Programování 1 - Java A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické A0B36PR1 - ÚVOD 01 1

Vítejte, představme se Přednášející Doc. Ing. Ivan Jelínek, CSc. Studenti 1. ročníku programu KyR a OI Cvičící:. Jste STUDENTI ČVUT FEL! Jste členy akademické obce! Děkan, senát, vědecká rada Zaměstnanci (tituly ), doktorandi Katedry A0B36PR1 - ÚVOD 01 2

Kdo je kdo v Programování 1 1. Vy studenti Různé zkušenosti s různými programovacími jazyky 2. Přednášející: Proč Doc.Ing. Jelínek Ivan CSc. asi 3. Nejdůležitější jší učitelé: cvičící!!?? Ing. Buk Zdeněk Ing. M. Filipský Ing. M. Balík Ing. M. Mudroch Ing. J. Tožička Garant: Doc.Ing. Jelínek Ivan CSc. A0B36PR1 - ÚVOD 01 3

Organizace a hodnocení předmětu A0B36PR1 Programování 1 Rozsah: 2p+2c Zakončení Z,ZK Kredity 6 po prvním semestru je nutné získat alespoň 15 výsledná známka ovlivní možnost tvorby rozvrhu v letním semestru (*)Způsoby zakončení předmětu: - zápočet - klasifikovaný zápočet - zápočet / zkouška A0B36PR1 - ÚVOD 01 4

Cíl předmětu Programování 1 prerekvizita Programováni 2 prerekvizita Algoritmizace reprezentace dat v počítači reprezentace čísel základní datové a řídící struktury jazyka Java cykly jednoduché programy v Javě ladění programů procedurální vs. objektový přístup objekty, třídy soubory a proudy, kolekce, A0B36PR1 - ÚVOD 01 5

Osnova přednášek 1. Základní pojmy výpočetní techniky, operační systém, software, překladač, interpret, programovací jazyky, syntaxe, sémantika 2. Vstup a výstup,řídící konstrukce, větvení, cykly 3. Struktura programu, vývoj programu, ladění programu, vývojová prostředí,proměnné, výrazy, typy, logické a číselné operátory, první program. 4. Koncepce Javy, základní vlastnosti, současná podoba a vývoj, úvod do jazyka, zpracování programu, vnitřní forma, vývojová prostředí, 5. Funkce, procedury, parametry, statické proměnné, lokální proměnné, blok, princip přidělování paměti proměnným, halda, zásobník 6. Pole, referenční proměnná typu pole, pole jako parametr, funkce typu pole. 7. Rozklad problému na podproblémy, princip rekurze a iterace 8. Třídy 1 - Principy objektového přístupu, třídy, třída jako programová jednotka, třída jako zdroj funkcí, třída jako datový typ, statické a instanční metody, 9. Třídy 2 - zapouzdření, setry, getry, metody třídy Object -equals, tostring, hashcode 10. Spojové struktury, zásobník, fronta, stromy, zásobník, fronta. 11. Úvod do ADT, definice ADT, ADT množina, zásobník, fronta, tabulka. Implementace pomocí polí, kolekce 12. Soubory a proudy, soubor jako posloupnost bytů,úvod do zpracování výjimek, ukládání/čtení primitivních typů, primitivních typů a objektů (řetězců), objektů do souboru serializace; 13. Základní principy vyhledávání, řazení 14. Rezerva A0B36PR1 - ÚVOD 01 6

Osnova cvičení 1. Seznámení s počítačovou učebnou a výpočetním prostředím 2. Seznámení s vývojovým prostředím pro programování, 3. Struktura programu v jazyku Java, zadání semestrální práce 4. Sekvence, vstup, výstup, větvení 5. Cykly, odladění triviálních úloh ve vývojovém prostředí 6. Řešení složitější úlohy, rozklad na podproblémy, procedury a funkc 7. Pole 8. Třída jako datový typ 9. Třídy a dědičnost 10. Rekurze 11. Spojové struktury a ADT 12. Test + spojové struktury 13. Soubory a proudy 14. Zápočet A0B36PR1 - ÚVOD 01 7

Doporučená literatura Základní zdroje: Poznámky z přednášek a cvičení Slidy z přednášek http://eduweb.fel.cvut.cz/courses/a0b36pr1 Základní příručky jazyka Java: Zakhour, S: Java 6, výukový kurz, CPress, Brno, 2007 Herout, P.: Učebnice jazyka Java, Kopp, 2007 Keogh, J.:Java bez předchozích znalostí, Computer Press, 2005 Virius, M.: Java pro zelenáče, Neocortex, 2001 Další zdroje (publikace v češtině): Eckel, B.: Myslíme v jazyku Java, Grada, 2000, I + II Chapman, S., J.: Začínáme programovat v jazyce JAVA, Computer Press, 2001 Pitner,T.: Java, začínáme programovat, Grada, 2002 Hawlitzek, JAVA2, příručka programátora, Grada, 2000 Shildt, H.: Java 2, Příručka programátora, Softpress, 2001 Herout, P.: JAVA, grafické uživatelské prostředí a čeština, Kopp, 2001 A0B36PR1 - ÚVOD 01 8

Klasifikace na základě bodového hodnocení) Hodnocení a zkouška Zdroje bodů max. bodů min. bodů 10 domácích úloh 30 20 semestrální práce 24 12 test na cvičeních 16 8 zkouškový test 20 10 ústní zkouška 20-10b 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ě 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í) A0B36PR1 - ÚVOD 01 9

Začínáme A0B36PR1 - ÚVOD 01 10

Šest zákonů programování 1. V každém programu je alespoň jedna chyba 2. Každý program lze zkrátit alespoň o jeden řádek 3. Nejjednodušší chyby se nejhůře hledají 4. Každou opravou se do programu zanese nová chyba 5. Když už se zdá, že program je v pořádku, určitě jste něco přehlédli 6. Programátor dělá to co umí, počítač si dělá, co chce A0B36PR1 - ÚVOD 01 11

Začínáme doopravdy A0B36PR1 - ÚVOD 01 12

Proces programování SESTAVENÍ ZADÁNÍ POZOR ANALÝZA POZOR ALGORITMIZACE POZOR PODPORA IDE ZÁPIS V PROGRAM. JAZYKU PODPORA IDE SYNTAKT. KONTROLA A PŘEKLAD PODPORA IDE LOGICKÁ KONTROLA (LADĚNÍ) POUŽÍVÁNÍ A ÚDRŽBA A0B36PRI PROGRAMOVÁNÍ 02 13

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 14

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 15

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

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

JAVA procedurální přístup public class Dekrementace { 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; }

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

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 Zjednoušeně! interpretace A0B36PR1 - ÚVOD 01 21

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

Kompilační metoda - jazyk C, C++ Program pro MS Windows OS MS Windows Zdrojový kód v jazyku C Překlad v GNU Linuxu Program pro GNU Linux OS GNU Linux Program pro Solaris OS Solaris A0B36PR1 - ÚVOD 01 23

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 24

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 25

NetBeans A0B36PR1 - ÚVOD 01 26

Java Platforma (JRE) = Java Core API + JVM Překlad Interpretace Aplikační prostředí knihovny Zdrojový kód,.java Disk interpret prostředí API Kompilátor Interpret JVM Byte code,.class Počítač HW, výpočet Software Hardware Disk hardwarová vrstva 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

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 29

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

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) Jméno třídy Začátek třídy Jméno metody Začátek metody public class PrvniProgram { public static void main(string[] args) { System.out.println("Nazdar Svete"); 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 33

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 34 PRO ZÁJEMCE

Vlastní studium? A0B36PR1 - ÚVOD 01 35

Programování 1 Java KONEC A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické A0B36PR1 - ÚVOD 01 36

Java - historie v roce 1990 vznikl Green Team vedený Jamesem Goslingem jazyk Oak (dub) původně navržen pro vestavěné systémy Java představena firmou Sun Microsystems 23. května 1995 navržen pro vývoj aplikací na webu 1996 vydán první Java Developement Kit 1.0 (pro aplety) důležité využití 2008 - JDK 6 Update 13 s JavaFX SDK 2009 JDK, 1.6.0_14; 2011 JDK 7!!! 2012 JDK 7.1!!! Duke, maskot Javy A0B36PR1-02 37 Pro zájemce

Java - edice každá edice je určena pro specifické účely, pro specifická zařízení Java Card - smart (chytrý) karty - platební a kreditní karty J2ME Java 2 Micro Edition midlety, Kilobyte VM, mobilní zařízení, PDA, set-top boxy, vyžaduje 160 kb ROM a 32 kb RAM (CLDC, MIDP) J2SE standard edition stolní počítače J2EE enterprise edition podnikové aplikace A0B36PR1-02 38 Pro zájemce