Úvod do programovacích jazyků (Java)



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

Univerzita Tomáše Bati ve Zlíně

Výrazy lze též zavést v nečíselných oborech, pak konstanty označuji jeden určitý prvek a obor proměnné není množina čísel.

Programování pro deskriptivní geometrii

Lineární algebra. Vektorové prostory

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Definice z = f(x,y) vázané podmínkou g(x,y) = 0 jsou z geometrického hlediska lokálními extrémy prostorové křivky k, Obr Obr. 6.2.

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1. Podpora digitalizace a využití ICT na SPŠ CZ.1.07/1.5.00/34.

Poruchy modul pro rychlé hlášení poruch z provozu.

Matematika 1. ročník. září

Želva se nachází v tzv. grafickém okně (zviditelníme ji klávesou +), v němž jsou vidět i čáry, které nakreslila.

Druhá mocnina. Druhá odmocnina Druhá odmocnina. Předpoklady: V této hodině jsou kalkulačky zakázány.

Datové formáty Obsah. Datové formáty (datové typy) Radim Farana Podklady pro výuku

Matrika otázky a odpovědi Vidimace částečné listiny. Ing. Markéta Hofschneiderová Eva Vepřková

Rostislav Horčík. 13. října 2006

2.1. Pojem funkce a její vlastnosti. Reálná funkce f jedné reálné proměnné x je taková

Gymnázium, Praha 6, Arabská 14. Aliens atack. Dokumentace ročníkového projektu. Předmět: Programování Vyučující: Tomáš Obdržálek

Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY

Algoritmizace a programování

Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem.

AMU1 Monitorování bezpečného života letounu (RYCHLÝ PŘEHLED)

Numerická integrace. 6. listopadu 2012

Škola: Střední škola obchodní, České Budějovice, Husova 9 Projekt MŠMT ČR: EU PENÍZE ŠKOLÁM

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

Ozobot aktivita lov velikonočních vajíček

IRACIONÁLNÍ ROVNICE. x /() 2 (umocnění obou stran rovnice na druhou) 2x 4 9 /(-4) (ekvivalentní úpravy) Motivace: Teorie: Řešené úlohy:

Jan Březina. Technical University of Liberec. 17. března 2015

C. 2. Pořízení a implementace IS

UŽITÍ DERIVACÍ, PRŮBĚH FUNKCE

Matematika pro 9. ročník základní školy

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Algoritmus (nebo dřívějším pravopisem algorithmus)

(k 1)x k + 1. pro k 1 a x = 0 pro k = 1.

2.6.4 Lineární lomené funkce s absolutní hodnotou

Karty externích médií

Změna sazby DPH v HELIOS Red po

MS Word 2007 REVIZE DOKUMENTU A KOMENTÁŘE

Prostory jmen. #include<iostream.h> namespace RadimuvProstor { int secti(int a, int b); class Trida { private: int Atribut; public: void metoda();

titul před titul za rodné číslo datum narození (nebylo-li přiděleno rodné číslo)

Změnu DPH na kartách a v ceníku prací lze provést i v jednotlivých modulech.

Goniometrie trigonometrie

Spojování systémů. Kladná a záporná zpětná vazba.

1 Matematické základy teorie obvodů

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

Asymptoty grafu funkce

Hypertextový odkaz No.1. Word 2010

Univerzita Tomáše Bati ve Zlíně

Příručka pro práci s dataloggerem Labquest 2. Zapínání a domácí obrazovka

DUM 06 téma: Náležitosti výkresu sestavení

Funkce Vypracovala: Mgr. Zuzana Kopečková

Osnova přednášky. Vnitřní reprezentace dat. Údržba počítače. Ergonomie. Práce s počítačem. Číselné soustavy. Výpočetní technika I

( ) Slovní úlohy o společné práci I. Předpoklady: Sepiš postup na řešení příkladů o společné práci.

Řízení SCARA Robota IXP pomocí jazyka SEL

1 Měření kapacity kondenzátorů

( ) ( ) Sčítání vektorů. Předpoklady: 7201

Digitální učební materiál

Pascal. programování pro začátečníky. Miroslav Virius

Fyzikální praktikum 3 - úloha 7

Rychlé vyrovnávací paměti (cache)

Pokusy s kolem na hřídeli (experimenty s výpočty)

Úvod Petr Kropík viz:

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Výukový materiál zpracován v rámci projektu EU peníze školám. Registrační číslo projektu: CZ.1.07/1.5.00/34.

Uživatelský manuál k instalaci a aktivaci systému BUILDpower S

M-10. AU = astronomická jednotka = vzdálenost Země-Slunce = přibližně 150 mil. km. V následující tabulce je závislost doby

7. Silně zakřivený prut

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice,Benešovo náměstí 1, příspěvková organizace

Sbírka úloh pro elektronickou stavebnici. Stručný popis programovacího jazyka Bascom AVR

MEZINÁRODNÍ ORGANIZACE

František Hudek. červen ročník. Nastavení myši, místní a jazykové nastavení.

Rovnice s neznámou pod odmocninou I

Výzva pro předkládání ţádostí v rámci ROP SV oblast podpory 5.1

1) Vypočítej A) 32 B) 44 C) 48 D) 56. 2) Urči číslo, které se skrývá za A ve výpočtu: 8 5 A) 12 B) 13 C) 14 D) 15

Vítězslav Bártl. prosinec 2013

Logické řízení výšky hladiny v nádržích

Hra a hry. Václav Vopravil. Teorie kombinatorických her se zabývá abstraktními hrami dvou hráčů. Hra je definována R },

VY_62_INOVACE_VK53. Datum (období), ve kterém byl VM vytvořen Květen 2012 Ročník, pro který je VM určen

Předmět: Využití tabulkového procesoru jako

Algoritmizace a programování

Inovace výuky prostřednictvím šablon pro SŠ

2.8.8 Kvadratické nerovnice s parametrem

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Cyklus while, do-while, dělitelnost, Euklidův algoritmus

Závislost hladiny intenzity zvuku na počtu zdrojů zvuku, na vzdálenosti od zdroje zvuku

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné

NÁVOD NA PŘIHLÁŠENÍ DO INTERNETOVÉHO BANKOVNICTVÍ PRO SPRÁVU KREDITNÍ KARTY

Mikroprocesor Intel 8051

VIRTUALBOX VYTVOŘENÍ VIRT. STROJE

Číslo projektu CZ.1.07/1.4.00/ Název sady materiálů Technické práce 8. ročník Název materiálu VY_32_INOVACE_07_Povrchová úprava Autor

Návod na sestavení naháněcí ohrady

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Návrhové vzory. Každý návrhový vzor má následující strukturu: Většina publikací návrhové vzory člení do následujících kategorií:

ECB-PUBLIC ROZHODNUTÍ EVROPSKÉ CENTRÁLNÍ BANKY (EU) 2015/[XX*] ze dne 10. dubna 2015 (ECB/2015/17)

Karty externích médií Uživatelská příručka

KALOVÉ KOŠE KOŠE DO ULIČNÍCH VPUSTÍ KOŠE DO DVORNÍCH VPUSTÍ LAPAČE NEČISTOT

účetních informací státu při přenosu účetního záznamu,

Inovace výuky prostřednictvím šablon pro SŠ

Matematický model kamery v afinním prostoru

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Zvyšování kvality výuky technických oborů

Vzdělávací obor: Prvouka

Transkript:

Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 1/33

Michal Krátký tel.: +420 596 993 239 místnost: A1004 mail: michal.kratky@vsb.cz web: http://www.cs.vsb.cz/kratky/ http://www.cs.vsb.cz/kratky/courses/ 2007-08/upr/ c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 2/33

Projekty a zápočet Předmět bude ukončen klasifikovaným zápočtem. Maximálně 100b. Z 1. projektu je nutné získat minimálně 10b (ze 20b), z 2. semestrálního projektu pak 21b (ze 40b). Projekty budou kontrolovány samostatným úkolem, jehož trvání bude časově omezeno (1.5h). Předmět bude ukončen písemným testem. Minimálně 20b ze 40b možných. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 3/33

Algoritmus J. Dvorský, E. Ochodková, D. Ďuráková. Algoritmy. Skripta, VŠB-Technická univerzita Ostrava, http://www.cs.vsb.cz/dvorsky/opora.html, 2007. Název algoritmus pochází ze začátku devátého století z Arábie. V letech 800 až 825 napsal perský matematik Muhammad ibn Músá al Chwárizmí dvě knihy, z nichž jedna se v latinském překladu jmenovala Algoritmi dicit, česky Tak praví al Chwárizmí. Byla to kniha postupů pro počítání s čísly. Pojem algoritmus tedy vznikl z latinizovaného Al-Gorizmí. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 4/33

Algoritmus Algoritmu můžeme rozumět jako předpisu pro řešení nějakého problému. Jako příklad lze uvést předpis pro výpočet obsahu obdélníku. Pokud rozebereme řešení takovéto úlohy, musí obsahovat tři věci: 1 hodnoty vstupních dat (délky stran a, b), 2 předpis pro řešení, vzorec S = a b. 3 požadovaný výsledek, tj. výstupní data (obsah obdélníku S). c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 5/33

Algoritmus Algoritmus se skládá z kroků, poskytuje na základě vstupních data požadovaná data výstupní. Algoritmus musí se stejnými vstupními daty dospět ke stejnému výsledku. Každý předpis je složen z kroků, které na sebe navazují. Postup kroků je jednoznačný. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 6/33

Zápis programu Algoritmus se zapisuje v programovacím jazyce, zápisem programu. Program je postup řešení čitelný pro počítač. Program musí být natolik čitelný, aby se v něm orientovali i ostatní programátoři. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 7/33

Programování Programováním rozumíme: 1 Správné pochopení zadání úlohy, které vyústí v přesný popis možných situací a návrh vstupních a výstupních dat. 2 Sestavení algoritmu řešení. 3 Detekování úseků, které budou řešeny samostatně. 4 Zápis zdrojového textu úlohy v programovacím jazyce, odladění. 5 Přemýšlení nad hotovým dílem, vylepšování (ovšem bez změn v návrhu vstupu a výstupu). c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 8/33

Vyšší programovací jazyky Vyšší programovací jazyky poskytují čtyři nástroje pro zápis algoritmu: 1 Primitivní výrazy, tj. data (čísla, znaky, apod.) a procedury (sčítání, násobení, logické operátory apod.). 2 Mechanismus pro sestavování složitějších výrazů z jednodušších. 3 Mechanismus pro pojmenování složitějších výrazů a tím zprostředkování možnosti pracovat s nimi stejně jako s primitivními výrazy (definování proměnných a nových procedur). 4 Konstrukce jazyka cykly apod. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 9/33

Pojmenování hodnot Podstatnou vlastností programovacího jazyka je asociování jmen a hodnot. Například: int a = 486. Jméno a je svázáno s hodnotou čísla 486 v desítkové soustavě. int b = a + 37. Jméno + je svázáno s procedurou pro sčítání (hodnotou jména + je procedura). Uživatel při psaní zdrojového textu pracuje ve výrazech se jmény, interpret (překladač) jazyka text zpracuje a počítá s hodnotami. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 10/33

- motivace Např. µ-procesor AMD Opteron obsahuje 16 základních 64b registrů, do kterých se zapisuje/čte pomocí instrukcí strojového kódu. Ve vyšších programovacích jazycích jsme sice odstíněni od programování ve strojovém kódu, nicméně je vhodné mít povědomí o tom, co se v počítači během provádění programu děje. Do 32b registru počítače můžeme uložit číslo, které ve dvojkové soustavě obsahuje 32 cifer. Primitivní datové typy a operace jsou často mapovány na registry a strojové instrukce µ-procesorů. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 11/33

Přirozené číslo v počítači a z = a n z n + a n 1 z n 1 +... + a 2 z 2 + a 1 z 1 + a 0 z 0 kde a je číslo vyjádřené v číselné soustavě o základu z. z je základ číselné soustavy, z je celé kladné číslo větší než jedna. Číslo z i, kde i = 0, 1,..., n se nazývá jednotka řádu i, nebo také jednotka i-tého řádu. a i jsou číselné koeficienty pro něž platí 0 a i z 1. Nazýváme je číslice neboli cifry ; o číslici a i říkáme, že je číslicí i-tého řádu, neboli číslicí řádu i. n je počet řádových míst. Číslo a z je n + 1 ciferné v soustavě o základu z. Tento zápis nazýváme rozvojem čísla a v soustavě o základu z. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 12/33

Desítková soustava a 10 = a n 10 n + a n 1 10 n 1 +... + a 2 10 2 + a 1 10 1 + a 0 10 0 3725 10 = 3 10 3 + 7 10 2 + 2 10 1 + 5 100 = 3 1000 + 7 100 + 2 10 + 5 1 Nejrozšířenější číselná soustava. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 13/33

Dvojková, osmičková a šestnáctková soustava Dvojková (binární), osmičková (oktantová), šestnáctková (hexadecimální) soustava. a 2 = a n 2 n + a n 1 2 n 1 +... + a 2 2 2 + a 1 2 1 + a 0 2 0 a 8 = a n 8 n + a n 1 8 n 1 +... + a 2 8 2 + a 1 8 1 + a 0 8 0 a 16 = a n 16 n + a n 1 16 n 1 +... + a 2 16 2 + a 1 16 1 + a 0 16 0 0010 0110 0001 1101 2 = 23035 8 = 261D 16 Maximální hodnota v registru velikosti n je 2 n 1. Např. pro 8b registry je maximální hodnota 255. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 14/33

Převody do desítkové soustavy 2012 3 = 2 3 3 +0 3 2 +1 3 1 +2 3 0 = 2 27+0+3+2 = 59 10 110110 2 = 1 2 5 + 1 2 4 + 0 2 3 + 1 2 2 + 1 2 1 + 0 2 0 = 32 + 16 + 4 + 2 = 54 10 D4 16 = 13 16 1 + 4 16 0 = 208 + 4 = 212 10 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 15/33

Převody ze dvojkové do 16 a 8 soustav 9757 10 Čtveřice bitů (od nejníže platného bitu) tvoří cifry v hexadecimální soustavě. 0010 0110 0001 1101 = 261D 16 Např. 1101 = 8 + 4 + 0 + 1 = 13 10 = D 16 Trojice bitů (od nejníže platného bitu) tvoří cifry v oktantové soustavě. 0 010 011 000 011 101 = 023035 8 = 23035 8 Např. 101 = 4 + 0 + 1 = 5 10 = 5 8 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 16/33

Sčítání binárních čísel 1101 1100 1010 1110 = 56494 10 + 0010 0110 1011 0011 = 9907 10 1 0000 0011 0110 0001 = 66401 10 0 + 0 = 0 0 + 1 = 1 1 + 1 = 0, přenos do dalšího řádu 1 + 1 + 1 = 1, přenos do dalšího řádu c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 17/33

Bitové posuny Pravý a levý bitový posun. Pozor nejedná se o rotaci! 1010 1110 >> 1 = 0101 0111 0010 1110 << 1 = 0101 1100 1000 0000 >> 7 = 0000 0001 0000 0001 << 7 = 1000 0000 Aplikace: Zjištění počtu bitů registru. Rychlé celočíselné dělení/násobení číslem 2 n, kde n je počet bitů posunu. Např. 1010 1110 >> 1 = 0101 0111, 174 10 / 2 = 87 10. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 18/33

Bitový OR Úvod do programovacích jazyků (Java), 1/12 1101 1100 1010 1110 OR 0010 0110 1011 0011 1111 1110 1011 1111 Pravdivostní tabulka: 0 OR 0 = 0 0 OR 1 = 1 1 OR 0 = 1 1 OR 1 = 1 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 19/33

Bitový AND 1101 1100 1010 1110 AND 0010 0110 1011 0011 0010 0100 1010 0010 Pravdivostní tabulka: 0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 20/33

NOT - bitová negace NOT 1101 1100 1010 1110 = 0010 0011 0201 0011 Pravdivostní tabulka: NOT 0 = 1 NOT 1 = 0 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 21/33

Přetečení/podtečení rozsahu Pokud máme ve 4b registru uloženo číslo 1111 2, po přičtení čísla 1 dojde k přetečení rozsahu. Pokud máme ve 4b registru uloženo číslo 0001 2 a odečteme hodnotu 2, pak je ve speciálním registru µ-procesoru detekováno podtečení rozsahu. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 22/33

Záporná celá čísla Nejvýznamnější bit je bitem znaménkovým. Pokud je velikost registru 32b, pak je hodnota uložena ve spodních 31b a ve 32. bitu je uloženo znaménko (0 - kladné číslo, 1 - záporné číslo). Pro uložení záporných čísel se využívá tzn. doplňkový kód. 9907 10, NOT 0010 0110 1011 0011 + 1 = 1101 1001 0100 1101 Pokud dojde při odčítání čísla v doplňkovém kódu k přetečení rozsahu, přetečený bit je ignorován. 1101 1100 1010 1110 = 56494 10 + 1101 1001 0100 1101 = 9907 10 1011 0101 1111 1011 = 46587 10, došlo k přetečení c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 23/33

Reálná čísla zm 2 e : z - znaménko, m - mantisa, e - exponent. Např. 64b číslo: mantisa 52b, exponent 11b. Např. 80b číslo: mantisa 64b, exponent 15b. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 24/33

James Gosling, Sun Microsystems, 1990. Původní název Oak, v roce 1993 přejmenován na Java. V roce 1996 vyšla první implementace (JDK 1.0). Rysy jazyka Java: Objektově-orientovaný jazyk. Silně typovaný jazyk. Obsahuje garbage collector. Podporuje paralelní běh vláken. Podporuje výjimky. Bezpečný programovací jazyk. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 25/33

JDK a vývojová prostředí http://java.sun.com/ JDK Java Platforma, aktuální verze 1.6. http://java.sun.com/ NetBeans, vývojové prostředí. http://www.eclipse.org/ Eclipse, vývojové prostředí. http://jikes.sourceforge.net/ rychlý překladač. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 26/33

Literatura Úvod do programovacích jazyků (Java), 1/12 R. Szturc: Introduction to Programming (Java). Department of Computer Science, VŠB Technical University of Ostrava, 2004, http://www.cs.vsb.cz/java/index.html B. Eckel: Thinking in Java. 2002, http://www.mindview.net/books/tij/ Sun MicroSystems: Sun Developer Network. 2007, http://java.sun.com/ Mnoho knih v každém knihkupectví. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 27/33

Překlad vs interpretace kódu Překladač zdrojový kód je přeložen do spustitelného souboru. Interpret vykonává jednotlivé příkazy ze zdrojového kódu. Java kombinuje oba způsoby. Kód (*.java) je přeložen do bytekódu (*.class) a ten je interpretován v java virtuálním stroji (javavm). Virutální stroj je reprezentován spustitelným souborem java. Veškeré využívané knihovny (jar archívy) musí být uvedeny v proměnné CLASSPATH. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 28/33

Java platforma Platforma hardwarové a softwarové prostředí ve kterém program běží. Java platforma softwarová platforma nad daným hardwarem. Java API Java virtuální stroj Operační systém Hardware Java platforma Java API kolekce tříd vstupy/výstupy, práce se sítí, databázemi apod. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 29/33

Příklad 1.1 public class Example0101 { public s t a t i c void main ( S t r i n g [ ] args ) { System. out. p r i n t l n ( " Hello World! \ n " ) ; } } c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 30/33

Překlad a spuštění Překlad: javac Example0101.java Spuštění: java Example0101 Spuštění s přesměrováním standardního výstupu do souboru file.txt: java Example0101 > file.txt c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 31/33

Překlad a spuštění ve vývojovém prostředí Ve vývojovém prostředí je často nutné založit projekt a do něj vkládat příslušné třídy. Jedna třída je tzv. spouštěcí, tj. její metoda main() spouští program. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 32/33

Ladění (debugging) - efektivní hledání chyb Ladění je jediný rozumný prostředek hledaní chyb v kódu. Můžeme použít řádkový debugger nebo ladění ve vývojových prostředích. Na významné řádky vkládáme breakpointy, chod programu se na těchto řádcích zastaví. Funkce: Step Into - zanoření do metody, Step Over - přechod na další řádek bez možného zanoření, Run - rozběhnutí programu až do nalezení dalšího breakpointu, Step Out - opuštění aktuální funkce. Můžeme sledovat: Stack Trace - zásobník volání metod, hodnoty lokálních proměnných i proměnných instancí a tříd. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 33/33