Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Záróvizsga tétel 2022. július 5.

Informatika szak

I. Programozás és programozási nyelvek


Adott egy nxm méretű mátrix (n<m; 1<n<101; 2<m<201), amelynek minden eleme
természetes szám. A mátrix „fő ló-átlójának” tekintjük azt a számsort, amelyet úgy kapunk, hogy
indulunk a bal-felső sarokból, „kettőt jobbra egyet le” lólépésekkel haladunk, és a jobb-alsó
sarokban kötünk ki (félkövér elemek az első példában). Hasonlóképpen, „mellék ló-átlójának”
számít az, ha a jobb-felső sarokból indulunk, „kettőt balra egyet le” lólépésekkel haladunk, és a
bal-alsó sarokban kötünk ki (aláhúzott elemek az első példában).
Írj C/C++ függvényt, amely ellenőrzi, hogy egy mátrixnak vannak-e „ló-átlói”, és ha igen,
akkor 1-et vagy 0-t térít vissza attól függően, hogy van, vagy nincs olyan „ló-átlója”, amely
mentén, a megfelelő számsorozat rendezett (növekvő vagy csökkenő). Ha a mátrixnak nincs
„ló-átlója”, akkor a függvény térítsen vissza (-1)-et. Lásd el kódodat kifejező kommentekkel.

int fuggveny( int t[][200], int n, int m ){


//…
}

1. példa (n=4, m=7):

INPUT OUTPUT
3 2 66 4 3 5 4 1
0 4 14 56 6 52 64
81 33 12 4 41 4 51
13 4 21 2 14 41 4

2. példa (n=3, m=7):

INPUT OUTPUT
3 2 66 4 3 5 4 -1
0 4 14 56 6 52 64
81 33 12 4 41 4 51
II. Adatbázisok
Adott a Vibe fesztivál fizetési rendszerének részleges adatbázisa:

Kártya (KártyaID, CashPointId, RecepciósId, VásárlásDátum, VisszahozDátum, KezdetiÖsszeg)

KártyaFeltöltés (KártyaId, CashPointID, RecepciósId, Időpont, Összeg)

Vásárlások (KártyaID, ÜzletId, EladóId, TermekId, Időpont)

Üzletek (ÜzletId, ÜzletNév, Profil)

Termékek (TermékId, TermékNév,TermékÁr, Mennyiség, Típus)

CashPointok (CashPointId, CashPointNév)

Recepciósok (RecepciósId, RecepciósNév, SzemélyiSzám, Telefon)

Eladók (EladóId, EladóNév, SzemélyiSzám, Telefon)

SQL nyelv segítségével írd meg a következő feladatokat:

1. Írj lekérdezést, amely visszatéríti, hogy mennyi pénzzel töltötték fel kezdetben az Ax43252-es
Id-jú kártyát.
2. Írj lekérdezést, amely visszatéríti, hogy mennyi az egyenlege az Ax43252-es Id-jú kártyának.
Azaz mennyi a rajta levő aktuális pénzösszeg.
3. Írasd ki a leggyorsabb eladót, aki a legtöbb vásárlást bonyolította.
4. Írj lekérdezést, amely visszatéríti hány kártyát nem adtak vissza és mekkora volt az így bent
maradt összeg.
5. Írd ki az első 5 legtöbbet eladott termék nevét.
6. Melyik nap költötték a legtöbb pénzt?
7. Írj lekérdezést, amely visszatéríti összesen mennyi pénzt töltöttek fel a kártyákra, mennyit
költöttek el és a kettő közötti különbséget.
III. Objektumorientált tervezés és programozás
Készítse el az alábbi diagramon látható interfészt és osztályokat Java programozási nyelvben.

Set interfész (1 pont)


Egész számokat tartalmazó matematikai halmaz (nem tartalmaz duplumokat) műveleteit
deklarálja. A get metódus visszatéríti az elemet a megadott pozícióról. Nem létező
pozíció esetében váltódjon ki nem ellenőrzött kivétel (RuntimeException).

ArraySet osztály (3 pont)


● Implementálja a Set interfészt úgy, hogy az elemek tárolására használjon tömböt !
● A capacity a tömb méretét jelenti (helyfoglalás), a size pedig a halmaz elemeinek
számát.
● Az add metódus térítse vissza a művelet sikerességét. Létező elemet még egyszer
nem lehet hozzáadni a halmazhoz!
● A delete metódus, az add metódushoz hasonlóan, visszatéríti a művelet sikerességét.
Nem létező elemet nem lehet törölni. Törlés után a tömb nem tartalmaz ,,lyukakat’’!
● A size metódus a halmaz elemeinek számát téríti vissza.
SetOperations osztály (2 pont)
Ez az osztály két halmazműveletet implementál statikus metódusok segítségével.
Mindkét művelet (egyesítés és keresztmetszet) két bemeneti halmazból előállít egy
eredményhalmazt!

Main osztály (1 pont)


Készítsen két halmazt. Az első halmazba helyezze el az első öt, a másodikba pedig az
első három természetes számot. Írassa ki a két halmaz egyesítését és metszetét!

Példányszám nyilvántartás (1 pont)


Mit kellene módosítani az ArraySet osztályon ahhoz, hogy képes legyen a létrehozott
példányai számának nyilvántartására (az osztálytól lekérdezhető legyen, hogy hány
aktív példánya van)? Magyarázza a módosításokat!

Sorolja fel az objektumorientált tervezési princípiumokat! Minden egyes princípium lényegét


foglalja össze egy-egy mondatban. (1 pont)

Megjelenés OOP: 1 pont

You might also like