Upload
geordi
View
63
Download
4
Embed Size (px)
DESCRIPTION
Jazyky so syntaxou príbuznou k C++ Programovací jazyk Java. Príbuzné jazyky. Jazyk C++ bol vo svojej dobe natoľko revolučný, že mnohé novšie jazyky prebrali jeho základnú syntax, dokonca aj názvy niektorých funkcií. Príklad 1 – skriptovací jazyk PHP - PowerPoint PPT Presentation
Citation preview
JAZYKY SO SYNTAXOU JAZYKY SO SYNTAXOU PRÍBUZNOU K C++PRÍBUZNOU K C++PROGRAMOVACÍ JAZYK PROGRAMOVACÍ JAZYK JAVAJAVA
Príbuzné jazykyPríbuzné jazykyJazyk C++ bol vo svojej dobe natoľko
revolučný, že mnohé novšie jazyky prebrali jeho základnú syntax, dokonca aj názvy niektorých funkcií.
Príklad 1 – skriptovací jazyk PHP„Personal Home Pages Tools“ je jazyk na
programovanie HTML stánok. Výstupom PHP programov sú HTML stránky.
PHP je vlastne „preprocesor“ (v zmysle C++) – pomocou programu PHP sa vyrába iný „program“ v HTML, ktorý vedia zobrazovať WEB-prehliadače
Príbuzné jazykyPríbuzné jazyky Ukážky z programov v PHP:for($i=1; $i<=$kategoria_pocet; $i++) { if($kategoria[$i]==$item_selected)
$kategoria_selected = $i;}
for($i=0;$i<=$divizia_pocet;$i++) if($i==$divizia_selected)
{ echo('<OPTION selected value="'.
$divizia[$i].'">‚.$divizia_meno[$i].'</OPTION>');}
else{
echo('<OPTION value="'.$divizia[$i].'">‚.$divizia_meno[$i].'</OPTION>');}
Príbuzné jazykyPríbuzné jazyky Ukážky z programov v PHP:for($i=0; $i<$pocet; $i++) { switch(mysql_Result($result, $i, 'divizia')) { case $divizia[1]: echo('<TR
BGCOLOR=LIGHTYELLOW>'); break; case $divizia[2]: echo('<TR B
GCOLOR=PINK>'); break; case $divizia[3]: echo('<TR
BGCOLOR=LIGHTBLUE>'); break; case $divizia[4]: echo('<TR
BGCOLOR=LIGHTGREEN>'); break; default: echo('<TR BGCOLOR=WHITE>'); break; }
JavaJavaJava je v súčasnosti jedným z
najrozšírenejších jazykov používaným v priemysle
Je to moderný jazyk „priemyselného štandardu“ – t.j. skompilovaný kód je natoľko spoľahlivý, že sa môže používať na riadenie priemyselných procesov
V Jave boli naprogramované aj roboty Spirit a Oportunity, ktoré skúmali Mars
JavaJavaSyntax Javy je navrhnutá tak, že priamo bráni
programátorom „byť lenivými“ a ignorovať možné chyby, ktoré môžu počas behu programu nastať.
Napríklad vstup z klávesnice sa MUSÍ ošetriť na možné zadané nezmysly – inak sa program ani neskompiluje.
Z toho vyplýva, že majú problém úplní začiatočníci v programovaní, nie je možné naprogramovať extrémne jednoduché programy, ktoré nie sú „ošetrené proti nezmyslom“
FMFI – v Jave je predmet „Počítačové praktikum 1“
Prečo Java?Prečo Java?Asi najväčšou výhodou (okrem
modernosti a spoľahlivosti) je nezávislosť na operačnom systéme a hardvérovej platforme
Ten istý skompilovaný program beží na PC s MS Windows, na PC s Linuxom, na MacBooku s iOS aj na Sun-workstation s OS Solaris
C++ - program sa musí skompilovať na každom z uvedených systémoch zvlášť – nepríjemnosť pre užívateľa aj vývojárov
Java Virtual Machine (JVM)Java Virtual Machine (JVM)Ako je to možné, že ten istý skompilovaný
program beží na rôznych systémoch?Medzi skompilovaným programom a
hardvérovou platformou je JVM
Java Virtual Machine (JVM)Java Virtual Machine (JVM)JVM sa vyvinie pre každú platformu:
Java Virtual Machine (JVM)Java Virtual Machine (JVM)Má to aj nevýhodu: program bežiaci vo
„virtuálnom stroji“ beží z princípu pomalšie, než program skompilovaný priamo pre danú platformu
Na moderných výkonných počítačoch je však toto zdržanie obvykle nepodstatné
Neplatí celkom pre programy extrémne náročné na výkon počítača
Ako programovať v JaveAko programovať v JaveNainštalovať si na danú platformu
(počítač) nástroje pre vývoj - „Java Development Kit (JDK)“
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Sú 3 verzie:◦ Standard Edition (SE) – bežné použitie◦ Enterprise Edition (EE) – priemyselný štandard◦ Mini Edition (ME) – pre mobily a tablety
Na púšťanie Java-programov stačí mať nainštalované iba „Java Runtime Environment (JRE)“ – býva bežne nainštalované na väčšine počítačov
Ako programovať v JaveAko programovať v JavePodobne ako v C++, aj tu sú možné dve
úrovne komfortu programovania:1. Napísať program v nejakom textovom editore
(napríklad SciTe), program v príkazovom riadku skompilovať a spustiť
2. Nainštalovať si vývojové prostredie, napríklad NetBeans
Pre naše potreby úplne postačí textový editor SciTe
Prvý program v JavePrvý program v JavePrípona súboru s programom má byť .javaJeden súbor .java obsahuje kód (program)
jednej triedy (class)Meno triedy musí byť zhodné s menom súboruPri spustení programu (triedy) sa spustí funkcia
main()Príklad – program Hello.java
public class Hello{ public static void main(String[] args) { System.out.println("Hello World"); }}
Programovanie v JaveProgramovanie v Jave Dátové typy premenných a základné príkazy sú zhodné s C++public class Sucet_radu{ public static void main(String[] args) {
double sucet=0;for(long i=1;i<10000000;i++){
double clen=Math.pow(-1,i+1)/i;sucet +=clen;
}System.out.println(sucet);System.out.print("ln(2) = ");System.out.println(Math.log(2));
}}
Príklad1
Jediná zmena pri úprave C++
programu
Programovanie v JaveProgramovanie v Jave Základné dátové typy premenných a základné príkazy
sú prakticky zhodné s C++ (nie long double), matematické funkcie sú v triede Math:
public class Sucet_radu{ public static void main(String[] args) {
double sucet=0;for(long i=1;i<10000000;i++){
double clen=Math.pow(-1,i+1)/i;sucet +=clen;
}System.out.println(sucet);System.out.print("ln(2) = ");System.out.println(Math.log(2));
}}
Príklad1 (Sucet_radu.java)
Programovanie v JaveProgramovanie v Jave Niektoré funkcie sú už zmodernizované na základe potrieb, napríklad
Math.random() vráti náhodné desatinné číslo (double) z intervalu <0,1>, na rozdiel od celočíselnej varianty rand() v C++.
public class Pi{ public static void main(String[] args) { long n=100000; //celkovy pocet pokusov long zasahy=0; //pocet zasahov long pokusy=0; //pocet pokusov
for(long i=0; i<n;i++) { double x,y; x = Math.random(); y = Math.random(); pokusy++; if( (x*x + y*y) < 1) zasahy++; double pi = 4*(double)zasahy/(double)pokusy; System.out.print(pi); System.out.print("\r"); } }}Príklad2 (Pi.java)
Oveľa jednoduchšie, než v C++
Java nedovolí ukladať výsledok funkcie
Math.random() do typu float – nekontrolovateľná strata
presnosti
Programovanie v JaveProgramovanie v Jave Volanie funkcií – podobné ako v C++. Rozdiel – ak je to „štandardná“
funkcia (nie je to metóda triedy na manipuláciu s objektami) – označuje sa ako static.
public class Funkcia{ public static void main(String[] args) {
double f;int n=100;
f=Faktorial(n);
System.out.println("Faktorial cisla " + n + " je: " +f);
} private static double Faktorial(int n) {
int i; double vysledok = 1;for(i=1;i<=n;i++) vysledok *= i;return vysledok;
}}Príklad3 (Funkcia.java)
Môže byť až za main(), nepotrebuje deklaráciu
Programovanie v JaveProgramovanie v Jave Volanie funkcií – podobné ako v C++. Rozdiel – ak je to „štandardná“
funkcia (nie je to metóda triedy na manipuláciu s objektami) – označuje sa ako static.
public class Funkcia{ public static void main(String[] args) {
double f;int n=100;
f=Faktorial(n);
System.out.println("Faktorial cisla " + n + " je: " +f);
} private static double Faktorial(int n) {
int i; double vysledok = 1;for(i=1;i<=n;i++) vysledok *= i;return vysledok;
}}Príklad3 (Funkcia.java)
Môže byť až za main(), nepotrebuje deklaráciu
Programovanie v JaveProgramovanie v JaveSú však aj podstatné odlišnosti medzi
Java a C++Jeden z najväčších rozdielov – v Jave do
funkcie vchádzajú iba hodnoty parametrov, nie referencie
Java pozná referencie na objekty (nie ale na obyčajné premenné), do funkcie možno poslať referenciu na objekt ale nikdy nie tak ako v C++, kde do funkcie posielame „hodnotu“ premennej, ale funkcia ju prijme ako referenciu
Java má teda úplne inú filozofiu referencií – je to problém pre začiatočníkov v Jave prechádzajúcich z C++
Programovanie v JaveProgramovanie v JaveNie je možné toto:int main(){float x0=0,y0=0,r0=2,fi0=1.2;Polar2cart(x0,y0,r0,fi0);...}
void Polar2cart(float &x, float &y, float r, float fi)
{ x=r*cos(fi); y=r*sin(fi);}