Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
PPA 1
Počítače a programovánízákladní pojmy, algoritmus,
úvod do programovacího
jazyka Java
1
Základy počítačů
Výpočetní systém: hardware + software
Hardware: technické vybavení
(komponenty) počítače
Software: programové vybavení
(instrukce které určují co má hardware
dělat)
2
Základní části počítače
Architektura číslicového
počítače
» Centrální jednotka počítače
» Interpretuje a provádí
instrukce
» Řadič + Aritmeticko-logická
jednotka
(John von Neumann)
Paměť
(main & auxiliary)
Vstupní
zařízení
(klávesnice, myš,
scanner atd.)
Procesor
(CPU)
Výstupní
zařízení
Processor (CPU)
Paměť
» operační & vnější
» uchovává data and instrukce
Vstupní zařízení
» myš, klávesnice, atd.
(display, tiskárna
atd.)
Výstupní zařízení
» display, tiskárna, atd.
3
Paměť
Operační (RWM)
» pracovní oblast
» uchovává běžící a programy jejich data
Vnější
» energeticky nezávislá
» uchovává programy a jejich výsledky
» diskety, pevné disky, CDROM, DVDROM, pásky
atd.
4
Organizace dat v operační paměti
Bit = jedna dvojková číslice
» Dvojková číslice může nabývat dvou
hodnot 0 nebo 1(pravda/nepravda)
Byte = 8 bitů
3021
1111 0000
3022
1100 1100
3023
1010 1010
3024
1100 1110
3025
0011 0001
Operační paměť je obvykle “Byte
Addressable” - obsahuje jeden byte dat v
každé adresovatelné pozici
3026
1110 0001
3027
0110 0011
Počet bytů se pro libovolné datové
položky (datové typy) může měnit
3028
1010 0010
3029
…
Kapacita paměti v násobcích bytů
»
»
»
Address Data Byte
1KB (kilobyte) – 210 =
1024 bitů
20
1MB (megabyte) – 2 =
1048576
bitů
1GB (gigabyte) – 230 = 1073741824 bitů
Item 1: 2 bytes
stored
Item 2: 1 byte
stored
Item 3: 3 bytes
stored
Item 4: 2 bytes
stored
Next Item, etc.
5
Organizace dat ve vnější paměti
Hlavní (kořenový) Adresář
Podadresář
Soubory
Podadresář
Soubory
Podadresář
Soubory
Podadresář
Podadresář
Soubory
Soubory
Podadresář
Soubory
6
Systémové programové vybavení
Řešení úloh na „holém“ počítači je obtížné, programátor
se musí zabývat obsluhou základních prostředků
systémové programové vybavení
Systémové programové vybavení transformuje „holý
počítač“ na tzv. virtuální počítač, který je z hlediska
ovládání výhodnější.
7
Systémové programové vybavení
Uživatel
Aplikační programy
Systémové programy
Operační systém
Hardware
8
Systémové programové vybavení
Operační systém – základní programové vybavení, které má
uživatel k dispozici. Je to soubor programů, které zajišťují
základní komunikaci mezi jednotlivými komponentami počítače.
Systémové programy : prostředky pro údržbu systému,
prostředky pro vytváření aplikačních programů
» ladící prostředky
» editory
» překladače
» assembler
» zaváděč
» programy pro údržbu
9
Systémové programové vybavení
Aplikační programy :
» vlastní
» firemní
– textové procesory
– tabulkové kalkulátory
– CAD systémy
– databázové programy atd.
10
Řešení úloh na počítači
Etapy:
»
»
»
»
»
»
definice problému
nástin řešení
sestavení algoritmu
kódování programu
ladění programu
zpracování dokumentace a údržba programu
11
Řešení úloh na počítači
1.
Definice problému
»
jaká budou vstupní data
»
jaká budou výstupní data
»
jak bude program reagovat na nesprávné,
popř. neúplné vstupy
12
Řešení úloh na počítači
Nástin řešení
2.
»
rozmyšlení a návrh celkové strategie řešení problému
(např. výběr vhodných numerických metod atd.)
»
částečný rozklad na podproblémy, které mohou být
řešeny samostatně jednotlivými členy týmu
»
definice rozhraní mezi jednotlivými podproblémy
13
Řešení úloh na počítači
Sestavení algoritmu - algoritmizace
Algoritmus = návod, jak provést určitou činnost, který
splňuje následující vlastnosti :
1. je elementární, tj. skládá se z konečného počtu jednoduchých,
snadno realizovatelných činností (kroků)
2. je determinovaný, tj. po každém kroku lze určit, zda proces
skončil, popř. jakým krokem se bude pokračovat.
3. je konečný, tj. počet opakování jednotlivých kroků algoritmu
je vždy konečný.
4. je rezultativní, tj. vede ke správnému výsledku.
5. je hromadný, tj. lze jej použít k řešení velké skupiny
podobných úloh
14
Metody návrhu algoritmu:
» shora dolů = opakovaný rozklad složitějších problémů na
jednodušší
» zdola nahoru = z elementárních prostředků postupně
vytváříme celek
Základní složky algoritmu:
» posloupnost (sekvence) - je tvořena jedním nebo několika
kroky, které se provedou právě jednou v daném pořadí
» cyklus (iterace) - část algoritmu, která se opakuje na základě
splnění určité podmínky. Skládá se z podmínky opakování a z
těla cyklu.
» podmíněná operace (selekce) - představuje větvení algoritmu.
Je tvořena podmínkou a jednou, dvěma, nebo více výběrovými
složkami
15
Popis algoritmů
»
Vývojové diagramy - znázorňují "tok řízení" v algoritmu. Značky jsou upravené
normou.
Posloupnost
Podprogram
¨
»
Selekce
Začátek/konec
Vstup/výstup
Spojka
Zápis algoritmu přímo v programovacím jazyku (Java, Pascal, C) nebo
v pseudojazyku ( obvykle podmnožina příkazů programovacího jazyka ).
16
Hierarchie programovacích
jazyků
High Level Language
Assembly Language
Machine Language
Hardware
17
Programovací jazyky
Vyšší programovací jazyk (HLL)
» nejblíž k přirozenému jazyku
» slova, čísla, matematické
symboly symbols
» nesrozumitelný pro
hardware počítače
» “přenositelný” zdrojový kód
(hardware independent)
» Java, C, C++, COBOL,
FORTRAN, BASIC, Lisp,
Ada, etc.
Strojový jazyk (lowest level)
» jazyk srozumitelný hardwaru
počítače, nepřehledný pro
člověka
» používá pouze 0 a 1
» lze provádět jakékoliv
operace s hw výpočetního
systému
» nepřenosný na úrovni
hardware (hardware
dependent)
18
Překladače programovacích jazyků
provádí překlad z jednoho programovacího
jazyka do strojového kódu, popř. do jiného
jazyka
2 základní typy překladačů
» kompilační překladače
» Interpretační překladače
19
Kompilační překladač
Zdrojový kód
Kompilační překladač
cílový program
knihovny
Sestavovací program
program ve strojovém
jazyce
Vstupní data
výpočet
Výstupní data
20
Interpretační překladač
Zdrojový kód
Výstupní data
vstupní data
Interpretační překladač
21
Zpracování dokumentace a
udržování programu
Dokumentace:
» Uživatelská = návod k použití. Obsahuje stručný
popis funkce programu, popis tvaru vstupních a
výstupních dat, způsob spouštění a popis významu
signalizovaných chyb.
» technická (programátorská) je podkladem pro
opravy, popř. úpravy programu, a to i jinými
osobami, než je autor programu. Hlavní částí musí
být detailní a srozumitelný popis algoritmu.
22
Programovací jazyk Java – základní pojmy,
realizace prvního programu
1991 – Sun – jazyk Oak – Java – na principech C, C++ - pro
ovládání „vestavěných systémů“ – běžná zařízení ovládaná
mikroprocesorem
Zpracování programu v Javě – 5 fází :
1.
2.
3.
4.
5.
editace
překlad (ne do .Obj, ale do pseudojazyka zvaného byte-code
– tento pseudojazyk je pak interpretován JVM – java virtual
machine)
zavedení
ověřování (typické pro Javu) – vyšší bezpečnost spuštěného
programu
provádění
23
Java Program Translation
Both Compilation and
Interpretation
Intermediate Code:
“Byte Code”
» portable low-level code
» similar to assembly
code,
but hardware
independent
» invisible to Java
programmer
Interpreter translates from
generic byte code to
hardware-specific machine
code
Data for Java Program
Java Program
Java Compiler
Byte-Code
Program
Java
Virtual
Machine
Byte-Code Interpreter
Machine-Language
Instructions
Computer Execution
of Machine-Language Instructions
Output of Java Program
24
Java Program Translation Including Linker
Previously Compiled Helper Programs
Java Program
Java Compiler
Java
Virtual
Machine
Byte-Code
Program
Byte-Code Interpreter
Machine-Language
Instructions
Linker
Computer Execution
of Machine-Language Instructions
Output of Java Program
Data for Java Program
Programovací jazyk Java
Dva typy programů :
» aplikace
» applety –používané na WWW stránkách – liší se
od aplikací ve fázi zavádění - jsou do paměti
počítače zaváděny internetovým prohlížečem
(Netscape, MSIE) a ve fázi ověřování – přísnější
pravidla při kontrole byte-code
26
Vývojové nástroje Java
Lze získat zdarma na www.javasoft.com
JDK (Java Development Kit)
J2SDK (Standard development kit)
Java Core API (Application Programming
interface) – aplikační programové rozhranní –
knihovní třídy které jsou považovány za standardní a
musí se vyskytovat v každém prostředí kde se Java
používá
C:\Program Files\jdk1.2.2\docs\api\index.html –
dokumentace ke Core API
27
Přenositelnost :
» Java platforma – JVM (Java Virtual
Machine)
» JIT kompilátor (Just in time) – v době
zavádění se programpřeloží on-line do
strojového kódu – rychlejší běh aplikace
» Java Core APi
28
Přeložení a spuštění programu v Javě
• v textovém editoru (notepad) vytvořit program
Příklad jednoduchého programu:
public class První {
public static void main(String[] args) {
System.out.println(” Ahoj ”);
}
}
• program uložit do souboru První.java
• spustit překladač javac.exe :
javac První.java
29
Přeložení a spuštění programu v Javě
Po úspěšném překladu vznikne soubor První.class
Spustit První.class pomocí interpreteru java.exe
java První
Po úspěšném spuštění se na obrazovce objeví nápis
Ahoj
Možné problémy :
» Nejde spustit javac.exe nebo java.exe : zkontrolovat cestu
do adresáře, kde javac.exe a java.exe leží : např.
c:\Program Files\ j2sdk\bin
» jméno třídy (identifikátor za class) musí souhlasit se jménem
souboru. !!!! Pozor na velká a malá písmena - Java je
rozlišuje !!!! – jinak program nejde přeložit
30
Struktura programu v Javě
Hlavní program (metoda) se musí jmenovat main a
musí být v programu vždy uvedena (včetně
magických slovíček před a za – budou vysvětlena
později ) a musí být uvnitř nějaké třídy (class). Na
jméně třídy nezáleží, ale třída se musí jmenovat jako
soubor ve kterém je uložena (včetně dodržení
velkých a malých písmen )
public class jmeno {
public static void main (String[ ] args) {
…… tělo programu
}
}
31
Základní dovednosti v Javě
Komentáře
» jednořádkový komentář // komentář do konce řádky
» Komentářový blok
/*
*/
» dokumnetační komentář /**
*/ používá se pro automatické generování dokumentace
programem javadoc.exe – dokumentace ve formátu HTML
-> dokumentační komentář může obsahovat většinu značek
formátu HTML
» Nelze používat vnořené komentáře např.
/* začátek komentáře /* vnoření */ konec komentaáře */
32
Základní dovednosti v Javě
Identifikátory – slouží k označení proměnných, metod,
tříd, objektů.
» délka identifikátorů není omezena,
» !!! musí !!! začínat písmenem nebo podtržítkem, jako další znaky
se mohou vyskytnout i číslice,
» nesmí to být rezervovaná slova,
» jsou case-sensitive tj. Jmeno, jmeno, JMENO jsou rozdílné ident.
» Je nutné dodržovat určité konvence – jsou použity v Java Core API
– třídy a rozhranní : identifikátor začíná vždy velkým písmenem
ostatní písmena jsou malá, u víceslovných – každé slovo
začíná velkým písmenem
– Metody a proměnné : začátek malým písmenem, u
víceslovných – každé další slovo začíná velkým písmenem
– balíky : pouze malá písmena (složeniny s tečkou)
– konstanty : pouze velká písmena, u víceslovných oddělena
podtržítkem
33