20
JAZYKY SO SYNTAXOU JAZYKY SO SYNTAXOU PRÍBUZNOU K C++ PRÍBUZNOU K C++ PROGRAMOVACÍ JAZYK JAVA PROGRAMOVACÍ JAZYK JAVA

Jazyky so syntaxou príbuznou k C++ Programovací jazyk Java

  • 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

Page 1: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

JAZYKY SO SYNTAXOU JAZYKY SO SYNTAXOU PRÍBUZNOU K C++PRÍBUZNOU K C++PROGRAMOVACÍ JAZYK PROGRAMOVACÍ JAZYK JAVAJAVA

Page 2: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 3: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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>');}

Page 4: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 5: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 6: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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“

Page 7: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 8: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 9: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

Java Virtual Machine (JVM)Java Virtual Machine (JVM)JVM sa vyvinie pre každú platformu:

Page 10: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 11: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 12: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 13: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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"); }}

Page 14: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 15: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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)

Page 16: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  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

Page 17: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 18: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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

Page 19: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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++

Page 20: Jazyky so syntaxou príbuznou k C++ Programovací jazyk  Java

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);}