Gyakorló feladatok. Az alaputasítások olyanok, mint C-ben. (Részleteket ld. segedletek/02.pdf vagy bármelyik Java tutorial.)

Hasonló dokumentumok
Gyakorló feladatok az 1. nagy zárthelyire

Bevezetés a programozásba I.

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

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

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Felvételi tematika INFORMATIKA

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

START. Billentyűzár ki. Üss be egy számot. Beütöttem az összes számot. Hívás. Várakozás. felveszik. Beszélek. Befejezem a beszélgetést.

HALMAZOK TULAJDONSÁGAI,

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Bevezetés a programozásba I.

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

BME MOGI Gépészeti informatika 5.

Programozás alapjai 9.Gy: Struktúra 2.

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

Rekurzív algoritmusok

SzA XIII. gyakorlat, december. 3/5.

I. Specifikáció készítés. II. Algoritmus készítés

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

BME MOGI Gépészeti informatika 13.

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

Egyszerű példaprogramok gyakorláshoz

Programozási nyelvek Java

Bevezetés a programozásba I.

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Egyszerű programozási tételek

Algoritmizálás, adatmodellezés tanítása 1. előadás

OOP: Java 8.Gy: Gyakorlás

BME MOGI Gépészeti informatika 1.

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

Programozás I. házi feladat

hatására hátra lép x egységgel a toll

Számelmélet Megoldások

4,5 1,5 cm. Ezek alapján 8 és 1,5 cm lesz.

8. gyakorlat Pointerek, dinamikus memóriakezelés

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

INFORMATIKAI ALAPISMERETEK

Ajánlott elemi feladatok az AAO tárgyhoz 41 feladat

Számelmélet, műveletek, egyenletek, algebrai kifejezések, egyéb

Programozás I. gyakorlat

5. Gyakorlat. struct diak {

Az egyszerűsítés utáni alak:

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

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

INFORMATIKA javítókulcs 2016

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Próbaérettségi feladatsor_b NÉV: osztály Elért pont:

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

Információs Technológia

Programozás alapjai 3.Gy: C elágazások, ciklusok P R O

2018, Funkcionális programozás

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

1. Jelölje meg az összes igaz állítást a következők közül!

Adatbázis rendszerek Gy: Algoritmusok C-ben

Waldhauser Tamás december 1.

PROGRAMOZÁS ALAPFELADATOK

7/8. gyakorlat Karaktertömbök és sztringkezelés

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Gyakorló feladatok Gyakorló feladatok

1. beadandó feladat: Programozási tételek alkalmazása. Közös követelmények:

Megoldott programozási feladatok standard C-ben

Tájékoztató. Használható segédeszköz: -

BME MOGI Gépészeti informatika 6.

1. Halmazok, számhalmazok, alapműveletek

Adatszerkezetek II. 10. előadás

INFORMATIKAI ALAPISMERETEK

Programozási segédlet

GEOMATECH TANULMÁNYI VERSENYEK ÁPRILIS

5. gyakorlat. Konstansok Tömbök Stringek

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

OOP: Java 1.Gy: Java alapok

C programozási nyelv Pointerek, tömbök, pointer aritmetika

NÉGYOSZTÁLYOS FELVÉTELI Részletes megoldás és pontozás a Gyakorló feladatsor I-hez

Tudnivalók az otthon kidolgozandó feladatokról

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

X. PANGEA Matematika Verseny II. forduló 10. évfolyam. 1. Az b matematikai műveletet a következőképpen értelmezzük:

Egyszerű programok készítése Kifejezések Bitszintű műveletek Relációs műveletek... 58

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

4. Előadás Programvezérlő utasítások. (begyakorló feladatok)

Minden egész szám osztója önmagának, azaz a a minden egész a-ra.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Számelmélet

Algoritmusok - pszeudókód... 1

Példatár a bevezetés a Matlab programozásába tárgyhoz

Számrendszerek. Bináris, hexadecimális

Átírás:

Gyakorló feladatok Az alaputasítások olyanok, mint C-ben. (Részleteket ld. segedletek/02.pdf vagy bármelyik Java tutorial.) 1. Adott egy pozitív egész számokból álló tömb. Hozzunk létre egy másik tömböt, amely az előzőben lévő számok faktoriálisát tartalmazza. A megoldáshoz használjunk metódusokat. 2. A megadott tömb elemei közül írassa ki a/ a páratlan számokat b/ a k-val osztható számokat (k-t most megadhatja a program elején konstansként) c/ a prímszámokat Egy szám prím, ha 1-en és önmagán kívül nincs más osztója A ciklusváltozót 2-ről indítva meg kell nézni, hogy a ciklusváltozó osztója-e a vizsgált számnak. Ha igen, akkor az illető szám nem prím. Ha a szám gyökéig nincs osztója, akkor utána sincs - vagyis elég csak a gyökig vizsgálni az osztókat. (Gyök: double Math.sqrt(double x)) Úgy kellene megoldani, hogy ha egyáltalán nem talál prímszámot, akkor írja ki, hogy a beolvasott számok között nincs prím. 3. Írja meg a faktoriális-számítást rekurzív módon! A faktoriális rekurzív definíciója: 1!=1; n!=n*(n-1)! (További ötlet: fakt(n) = n*fakt(n-1). ) 4. Most kiindulásként 1 és n közötti véletlen pozitív egész számokból álló tömböt vegyen. (n-t megadhatja konstansként a program elején). A double értékű 0 <= Math.random() <1 metódus egy [0,1) közötti véletlen értéket állít elő. Gondolja végig, hogy ebből hogyan lehet 0 és n közötti egész értéket képezni. 5. Módosítsa valamelyik előző feladatot úgy, hogy olvassa be a szükséges adatokat. A feladat megoldása során figyeljen arra is, hogy a megadott számok csak pozitív egész értékek lehetnek. (Nem biztos, hogy még mindenre tud figyelni, de negatív egész esetén adjon hibaüzenetet.)

Adatok beolvasásának több módja is lehet, ezek közül egy szerepel a gyak1.pdf fájlban. 6. a/ Készítsen kódtáblázatot! Írassa ki 1-től 255-ig a kódot, és mellé a kódnak megfelelő karaktert. b/ Gyűjtse egy tömbbe az angol ábécé betűit. A kód maga a szám, ha ezt a számot karakterként (típuskényszerítés) íratjuk ki, akkor a képernyőn a kódnak megfelelő karakter jelenik meg. A 255-t NE DRÓTOZZA BE FIXEN a ciklus fejébe, hanem deklarálja konstansként. Konstans megadásakor a változódeklaráció elé a final kulcsszó kerül. Az angol ábécé betűinek kódja 65-től 90-ig és 97-től 122-ig terjed, de ezeket se drótozza be fixen, hanem itt is használja a final módosítót. 7. a/ Készítsen Java programot a féléves jegy kiszámítására. Beolvasandó adatok: a két gyakorlati zh eredménye (százalékban). Ha ezek átlaga eléri a kívánt határt, akkor már csak az elméleti zh eredményét kell beolvasni, ha nem, akkor a javító zh-ét is. Figyelje azt is, hogy egyáltalán eljuthat-e az illető az elméleti zh-ig. A jegyszámításhoz szükséges határokat NE FIXEN adja meg, viszont megadhatja őket konstansként a program elején. b/ Készítsen féléves-jegy kalkulátort. Vagyis, ha eddig nem tette volna, akkor most alakítsa át az előző feladatot, és írjon egy metódust egyetlen ember jegyének meghatározására, és ezt a metódust felhasználva osztályozza az embereket, amíg van érdeklődő ember (nem tudjuk előre az emberek számát). Az illetőtől kérje be a nevét, majd a metódus lefutása után írja mellé az osztályzatát, majd kérje be a következő ember nevét, ha van még következő ember (ezt egy kérdésre adott válasszal tudja eldönteni). 8. a/ Adott egy évszám, döntse el, hogy szökőév-e. A szökőév eldöntéséhez írjon egy boolean metódust. b/ Írassa ki adott (beolvasott) két évszám közötti szökőéveket, és gyűjtse is őket egy tömbbe! Szökőévek a következők: minden néggyel osztható év, kivéve a százzal is oszthatókat. Szökőévek viszont a 400-zal osztható évek. Vagyis a százasra végződő évek közül csak azok szökőévek, amelyek 400-zal is oszthatók. Ez alapján tehát szökőév volt 1988, 1992, 1996. Nem szökőév 1700, 1800, 1900, 2100, és 2200. Viszont szökőévek az alábbi esztendők: 1600, 2000 és 2400. 9. a/ Generálja az n és m közötti háromjegyű palindromokat! n, m konstansként megadható a program elején (100 n m 999). Palindrom az olyan háromjegyű szám, amelynek első és utolsó számjegye azonos. Ha átnézte a beolvasást, akkor olvassa be n és m értékét, és természetesen végezze el a szükséges feltételvizsgálatokat.

b/ Állapítsa meg egy billentyűzetről beolvasott 100 és 999 közé eső háromjegyű számról, hogy palindróma-e! Azt is ellenőrizze, hogy tényleg háromjegyű számról van-e szó. c/ Adjon rá lehetőséget, hogy ne csak egy számról lehessen eldönteni a fenti kérdést, vagyis az első szám vizsgálata után kérdezze meg, hogy a felhasználó akar-e még másik számot is vizsgáltatni, és a választól függően vagy kérje be az újabb számot, vagy köszönjön el a felhasználótól. 10. A következő feladatot metódusok használatával oldja meg! A metódusok a következők: a) Véletlenszerűen töltsön fel egy legföljebb 100 elemű tömböt a és z közötti betűkkel. (Ugye eszébe sem jut fixen bedrótozni a 100-at? A metódust tetszőleges elemszámú tömbre írja!) b) Keresse meg a tömb legnagyobb elemét (az ABC-ben legkésőbb szereplő betű) (a main metódus írja ki a betűt, vagyis ez a metódus egy karaktert ad vissza). c) Írja ki, hogy egy billentyűzetről bekért betű hányszor szerepel a tömbben (a main metódus végzi a betű bekérését és a darabszám kiírását, ez a metódus a darabszámot adja vissza a beolvasott betű függvényében). d) Írja ki, hogy hány darab magánhangzó szerepel a tömbben. e) Készítsen egy mátrixot, amely [betű]-[betű előfordulásának száma] kettőst tartalmaz. (a main metódus írja ki a mátrixot). 11. Egy börtönben 1000 cella van, mindegyikben egy rab ül. Kezdetben minden cella zárva van. A börtönőrnek játszani támad kedve: végigmegy az összes cella előtt, és mindegyik ajtó zárján fordít egyet. Fordításkor a nyitott cellát bezárja, illetve a zártat kinyitja. Ha végigment, elkezdi elölről, és minden második cella zárján fordít egyet. Aztán minden harmadikon fordít, és így tovább. Legvégül fordít egyet az ezrediken, és kész. Ezután amelyik cella ajtaja nincs bezárva, abból a rab elmehet. Kik a szerencsés rabok? 12. a/ Töltsön fel oszlopfolytonosan 1-12-ig terjedő számokkal egy 3x4-es mátrixot. A kívánt végeredmény: 1 4 7 10 2 5 8 11 3 6 9 12 b/ Oldja meg az előző feladatot n m -es mátrixra! (És szokja meg, hogy SOHA NE dolgozzon fix adatokkal az előbbi feladatban csak azért kértük, hogy könnyebben átlássa a mátrix indexelését.) Számolja ki a mátrix főátlójában lévő elemeinek összegét, feltéve, ha van főátló! Ha nincs, jelezze! (Főátló: bal fölső sarokból a jobb alsó sarokba vezető átló.)

Java-ban nincs kétdimenziós tömb (mátrix), csak tömbök tömbje. Pl.: int sor = 3; int oszlop = 5; float matrix [ ][ ] = new float[sor][oszlop]; (utolsó elem: matrix[2][4] ) 13. Készítsen titkosíráshoz használható sifrét. (Aki olvasta, Jules Verne Sándor Mátyás c. könyvében leveleztek ilyesmivel.) Ehhez a következőre van szükség. Egy n m -es, karakterekkel feltöltött mátrix. (A karakterek közé van elrejtve maga az üzenet is.) Egy szintén n m -es mátrix, ez lesz a sifre, vagyis 1-es, ahol azt szeretnénk, hogy látszódjon a karakter, 0, ahol nem. mátrix: a titkosítás eredménye: kimaszkolni az eredeti mátrixot úgy, hogy csak az 1-esek helyén lévő betű látszódjon - ekkor kiolvasható a titkos szöveg. (aki esetleg nem jött rá, a szöveg: holnap támadunk

14. Írjon programot a Hanoi torony problémájának megoldására! A probléma: Adott három rúd: A, B és C. A rúdon induláskor N darab különböző átmérőjű lyukas korong helyezkedik el egymás fölött csökkenő sorrendben. Feladat: a korongok áthelyezése az alábbi szabályok alapján: a B rúd közbenső tárolásra használható minden lépésben csak egy korong mozgatható minden korong csak nála nagyobb átmérőjű korongra helyezhető. Természetesen nem feladat még a grafikus felület, most csak az alábbi formában kérjük az eredményt: célszerű rekurziót alkalmazni.