1 / 20

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

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

geordi
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 • „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

  3. Prí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 selectedvalue="'.$divizia[$i].'">‚ .$divizia_meno[$i].'</OPTION>'); } else { echo('<OPTION value="'.$divizia[$i].'">‚ .$divizia_meno[$i].'</OPTION>'); }

  4. Prí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; }

  5. Java • Java 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

  6. Java • Syntax 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“

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

  8. JavaVirtualMachine (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

  9. JavaVirtualMachine (JVM) • JVM sa vyvinie pre každú platformu:

  10. JavaVirtualMachine (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

  11. Ako programovať v Jave • Nainš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

  12. Ako programovať v Jave • Podobne ako v C++, aj tu sú možné dve úrovne komfortu programovania: • Napísať program v nejakom textovom editore (napríklad SciTe), program v príkazovom riadku skompilovať a spustiť • Nainštalovať si vývojové prostredie, napríklad NetBeans • Pre naše potreby úplne postačí textový editor SciTe

  13. Prvý program v Jave • Prípona súboru s programom má byť .java • Jeden súbor .java obsahuje kód (program) jednej triedy (class) • Meno triedy musí byť zhodné s menom súboru • Pri spustení programu (triedy) sa spustí funkcia main() • Príklad – program Hello.java publicclassHello { publicstaticvoidmain(String[] args) { System.out.println("HelloWorld"); } }

  14. Programovanie v Jave • Dátové typy premenných a základné príkazy sú zhodné s C++ publicclassSucet_radu { publicstaticvoidmain(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

  15. Programovanie v Jave • Základné dátové typy premenných a základné príkazy sú prakticky zhodné s C++ (nie longdouble), matematické funkcie sú v triede Math: publicclassSucet_radu { publicstaticvoidmain(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)

  16. Programovanie 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++. publicclass Pi { publicstaticvoidmain(String[] args) { long n=100000; //celkovypocet pokusov long zasahy=0; //pocetzasahov long pokusy=0; //pocet pokusov for(long i=0; i<n;i++) { doublex,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) Java nedovolí ukladať výsledok funkcie Math.random() do typu float – nekontrolovateľná strata presnosti Oveľa jednoduchšie, než v C++

  17. Programovanie 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. publicclass Funkcia { publicstaticvoidmain(String[] args) { double f; int n=100; f=Faktorial(n); System.out.println("Faktorialcisla " + n + " je: " +f); } privatestaticdoubleFaktorial(int n) { int i; doublevysledok = 1; for(i=1;i<=n;i++) vysledok *= i; returnvysledok; } } Príklad3 (Funkcia.java) Môže byť až za main(), nepotrebuje deklaráciu

  18. Programovanie 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. publicclass Funkcia { publicstaticvoidmain(String[] args) { double f; int n=100; f=Faktorial(n); System.out.println("Faktorialcisla " + n + " je: " +f); } privatestaticdoubleFaktorial(int n) { int i; doublevysledok = 1; for(i=1;i<=n;i++) vysledok *= i; returnvysledok; } } Príklad3 (Funkcia.java) Môže byť až za main(), nepotrebuje deklaráciu

  19. Programovanie v Jave • Sú však aj podstatné odlišnosti medzi Java a C++ • Jeden z najväčších rozdielov – v Jave do funkcie vchádzajú ibahodnoty 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++

  20. Programovanie v Jave • Nie je možné toto: intmain() { floatx0=0,y0=0,r0=2,fi0=1.2; Polar2cart(x0,y0,r0,fi0); ... } void Polar2cart(float &x, float&y, float r, floatfi) { x=r*cos(fi); y=r*sin(fi); }

More Related