Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Hasonló dokumentumok
Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelv Java

Programozási technológia I.

Programozás I. 1. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Szoftvertechnológia alapjai Java előadások

Programozás I. Első ZH segédlet

Java I. A Java programozási nyelv

Informatika terméktervezőknek

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség

Java I. A Java programozási nyelv

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

A Java programozási nyelv

Java II. I A Java programozási nyelv alapelemei

Programozási nyelvek II.: JAVA

Szoftvertervezés és -fejlesztés I.

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

és az instanceof operátor

Programozási nyelvek Java

A C# programozási nyelv alapjai

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

OOP: Java 8.Gy: Abstract osztályok, interfészek

Java II. I A Java programozási nyelv alapelemei

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

JAVA ALKALMAZÁSOK 1. ELŐADÁS 2/22/2017 1

Java programozási nyelv 4. rész Osztályok II.

Programozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani

I. Bevezetés. 1. ábra A Java "logója"

Java programozási nyelv 6. rész Java a gyakorlatban

C#, OOP. Osztályok tervezése C#-ban

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

S z á m í t ó g é p e s a l a p i s m e r e t e k

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

A C# PROGRAMOZÁSI NYELV

Vezérlési szerkezetek

OOP: Java 8.Gy: Gyakorlás

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Magas szintű programozási nyelvek 2 Előadás jegyzet

Osztályok. 4. gyakorlat

Java programozási nyelv 5. rész Osztályok III.

Segédanyag: Java alkalmazások gyakorlat

3. Gyakorlat Ismerkedés a Java nyelvvel

Programozás I. gyakorlat

Adatszerkezetek és algoritmusok

Segédanyag: Java alkalmazások gyakorlat

Java. JIT (Just in Time) fordítók alkalmazása, optimalizálás AOT (Ahead of Time) fordítók alkalmazásának lehetősége

Python tanfolyam Python bevezető I. rész

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Programozási nyelvek Java

Objektumorientált programozás C# nyelven III.

7. K: JAVA alapok Konzultáció

Imperatív és procedurális programozás a Javában

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Mintavételes szabályozás mikrovezérlő segítségével

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

OOP: Java 1.Gy: Java alapok

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

OOP: Java 4.Gy: Java osztályok

Programozási nyelvek II.: JAVA

A Java és a C++ összehasonlítása

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

OOP #14 (referencia-elv)

BME MOGI Gépészeti informatika 8.

Programozási nyelvek Java

Programozási nyelvek II.: JAVA, 4. gyakorlat

OOP: Java 1.Gy: Java alapok

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Objektumorientált programozás C# nyelven

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Objektumorientált Programozás VI.

Abstract osztályok és interface-ek. 7-dik gyakorlat

Java programozási nyelv

Szkriptnyelvek. 1. UNIX shell

A C programozási nyelv II. Utasítások. A függvény.

Java Programozás 1. Gy: Java alapok. Ismétlés ++

JAVA PROGRAMOZÁS 2.ELŐADÁS

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

Programozási nyelvek Java

Apple Swift kurzus 3. gyakorlat

Bevezetés a Java programozási nyelvbe

Programozási nyelvek II.: JAVA, 4. gyakorlat

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Átírás:

Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév

Tartalom 1 Amit tudni kell a félévről 2 A Java alapjai 3 Java program írása 4 Alapvető elemek 5 Vezérlési szerkezetek 6 Gyakorlás

Félév tematikája (1) 1. gyakorlat: program fordítása, vezérlési szerkezetek, alapvető nyelvi elemek, programozási tételek Java-ban 2. gyakorlat: OOP alapelvek a gyakorlatban, ciklusok 3. gyakorlat: osztályok, konstruktor, láthatóság 4. gyakorlat: tömbök, aliasing, szivárogtatás 5. gyakorlat: kivételek alap szinten, fájlkezelés, JavaDoc 6. gyakorlat: felsorolási típus, túlterhelés, statikus adattagok és metódusok, default konstruktor 7. gyakorlat: gyakorlás

Félév tematikája (2) 8. gyakorlat: interface, collection, immutable design, csomagoló osztályok, boxing, generikusság 9. gyakorlat: öröklődés, felüldefiniálás, protected, super metódus és super konstruktor hívás 10. gyakorlat: absztrakt osztály, saját kivétel osztályok, throws, kivétel hierarhia 11. gyakorlat: equals, hashcode, comparable, clone 12. gyakorlat: lambda-kifejezések, Comparator 13. gyakorlat: gyakorlás

Követelmények (1) a gyakorlat kötelező; maximum 3 (indokolt esetben 4) gyakorlatról lehet hiányozni minden gyakorlat (kivéve 1., 7. és 13.) elején 5-10 perces csoport-zh az előző heti előadás anyagából (ezekre 1 vagy 0 pontot lehet kapni, ami az elméleti jebgye számít bele) 2 beadandó előfeltétele a ZH-knak határidők: 2017. október 31. és 2017. december 10.

Követelmények (2) 2 Zárthelyi dolgozat Félévközi zh (2 lehetőség) 2017. november 10. 14:00-20:00 2017. november 17. 14:00-20:00 (pót) Félévvégi zh (2 lehetőség) 2017. december 22. 14:00-20:00 (csak első lehetőségként) 2018. január 12. 14:00-20:00 (csak első lehetőségként) 2018. január 29. 14:00-20:00 (csak második lehetőségként) mindkét ZH-n elméleti kérdések és programozási feladatok lesznek az elméleti kérdésekre 14, illetve 15 pontot lehet kapni, ami az elméleti jegybe számít bele a programozási feladatra jegyet adunk

Követelmények (3) Elméleti jegy pont: a gyakorlat elején lévő csoport-zh pontjaiból, továbbá az 1. és a 2. ZH elméleti rézéből áll össze maximum 39 pont ponthatárok: 20, 25, 30, 35 Végső jegy a két gyakorlati jegy és az elméleti jegy átlaga amennyiben mindhárom legalább elégséges

Követelmények (4) akinek az első zárhelyi dolgozata nem sikerült (a pót sem), vagy valamelyik beadandóját nem adta be, az már nem végezheti el a tárgyat a beadott szoftverek plágium-ellenőrzésen mennek keresztül, akit másoláson kapunk (és az is, akiről másolta) nem végezheti el a tantárgyat mind a ZH-kon, mind a beadandókban be kell tartani az előírt kódolási konvenciókat (részletek később)

Segédanyagok Az előadás honlapja: http://kto.web.elte.hu/hu/oktatas/java/ Java tutorial: https://docs.oracle.com/javase/tutorial/ Java API dokumentáció: http://docs.oracle.com/javase/8/docs/api/

Történet, jellemzők James Gosling kezdte fejleszteni a Sun Microsystemsnél a 90-es évek elején Első kiadás 1995-ös, azóta sok minden változott, bővült a nyelv A Java 2 Platform, Sandard Edition (SE) 5.0 2004-es Objektumorientált nyelv (primitív típusokon kívül minden az Object ősosztály leszármazottja) C++ szerű szintaxis a fordító bájtkódra fordít, a futtatásért a Java Virtual Machine (JVM) felel a bájtkód hordozható platformok között (Windows, Unix, Linux, Macintosh), ami nagyon nagy előny

Java program HelloWorld: public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); } } Egy java fájl tartalmaz egy azonos nevű osztályt (a HelloWorld.java fájlban van egy HelloWorld osztály) Fordítás javac HelloWorld.java, melynek eredményeképpen elkészül a HelloWorld.class fájl Ha az osztálynak van main metódusa (belépési pontja), akkor végrehajtható (a java paranccsal: java HelloWorld)

Telepítés letöltés: java jdk (Java Development Kit) az Oracle oldaláról Ha nem ismertek a parancsok, akkor be kell állítani Windows: set PATH=%PATH%;c:\Program Files\Java\jdk1.8.0_144\bin\ Linux: gedit /etc/profile export PATH=$PATH:/usr/java/jdk1.8.0_144/bin/

Típusok Típusok primitívek: byte, short, int, long, float, double, char, boolean objektumok tömbök Változó definiálás boolean b = true; Az operátorok más nyelvből megszokottak (Hivatalos operátor lista)

Elágazások Kétirányú elágazás if ( i % 5 == 0 ) { System.out.println( i+" 5-tel osztható" ); } else { System.out.println( i+" 5-tel nem osztható" ); } Többirányú elágazás (primitív, felsorolási és String típusra) switch ( i % 3 ){ case 1: System.out.println("3-mal osztva a maradék 1"); break; case 2: System.out.println("3-mal osztva a maradék 2"); break; default: System.out.println(i+" 3-mal osztható"); break; }

Ciklusok Elöl tesztelő ciklus int i = 0; while ( i < 3 ){ System.out.println( i ); i++; } Hátul tesztelő ciklus int i = 0; do { i++; System.out.println( i ); } while ( i < 5 ); Léptető ciklus for ( int i = 0; i < 5; i++){ System.out.println( i ); } Iteráló ciklus for (String arg : args){ System.out.println( arg ); }

Ugró utasítások continue Továbblép a ciklus következő iterációjára break Kilép a ciklusból és a ciklus utáni első vezérlési szerkezetet hajtja végre return Visszatérés egy függvényből vagy eljárásból

Üdvözlő program (Greeting.java, Greeting2.java) Készítsünk programot, amely a billentyűzetről kéri be a felhasználó nevét, majd üdvözli! beolvasás billentyűzetről: String name = System.console().readLine(); Készítsünk programot, amely a felhasználónevet parancssori argumentumként kapja, majd üdvözli a felhasználót! a parancssori argumentumok az args tömbben vannak (vagy ahogy a main paraméterét elneveztük) paraméterek darabszáma: args.length i. paraméter: args[i] (a számozás 0-tól kezdődik)

Paraméterek kezelése (Params.java) Írd ki a parancssori paramétereket... a). sorban! b). sorszámozva! c). fordított sorrendben! d). csak a hosszaikat! s String hossza: s.length()

Hibajavítás (Print.java) Az alábbi LINKen lévő program feladata, hogy kiírja az 1-től 4-ig lévő számok felét Az elvárt kimenet: 0.5 1.0 1.5 2.0 Kiirtam 4 szamot Javítsd ki a programot!

Számológép (Calculator.java) Készítsünk egy programot, amely kiszámolja két egész szám összegét, különbségét, szorzatát, hányadosát és az osztási maradékot is megadja! Figyeljünk a nullával való osztásra! (ez esetben ne végezze el az osztást) A két számot parancssori paraméterként kell megadni Stringként megadott parancssori paraméter egész számmá alakítása: int a = Integer.parseInt(args[0]); Vizsgáljuk meg azt is, hogy megfelelő számú parancssori paramétert adtunk e át! Valósítsuk meg a hatványozás műveletét is! A hatványozás működjön negatív számokra is!

Házi feladat (Factorial.java, Fibonacci.java) Írjuk meg az n faktoriálisát kiszámoló programot. Írjuk meg az n. fibonacci számot kiszámoló programot. fibonaci számok: 1 1 2 3 5 8...

Szorgalmi (PerfectNumber.java, PerfectRange.java) Készítsünk programot, amely a parancssori argumentumában megadott számról eldönti, hogy tökéletes e! (A számelméletben tökéletes számnak nevezzük azokat a természetes számokat, amelyek megegyeznek az önmaguknál kisebb osztóik összegével (vagyis az összes osztóik összege a szám kétszerese). Az első négy ilyen szám: 6, 28, 496 és 8128.) Módosítsuk az előző megoldásunkat úgy, hogy 1 től a paraméterként megadott határig minden egész számra vizsgálja a tökéletességet és megadja, hogy abban az intervallumban mennyi ilyet talált! Ha nem talált egyetlen ilyen számot sem, akkor írja ki, hogy egyetlen tökéletes szám sincs a megadott intervallumban.