|
| Az Ada gyakorlatok anyaga
|
tervezett tematika: -
01 -
02 -
03 -
04 -
05 -
06 -
07 -
08 -
09 -
10 -
11 -
A gyakorlatok anyaga hétről hétre válik elérhetővé.
- gyakorlat: változó-deklarációk, vezérlési szerkezetek
Házi feladat:
- program, ami
case
utasítást tartalmaz
- a linker javítgatása (üres string)
- gyakorlat: eljárások, függvények
Házi feladat:
- függvények, amik két, ill. három
szám maximumát számolják ki
- az előző függvények a főprogram
deklarációs részében, azonos
névvel (nevek túlterhelése)
- gyakorlat: diszkrét típusok,
vektor, rekord
Házi feladat:
- a rendezéses feladat megoldása rekurzióval
- gyakorlat: package-ek, átlátszatlan típusok
- Matrix
- mátrix típus (
package, declare,
float
)
- poz_rac
- átlátszatlan típus
- verem_v
- korlátozott átlátszatlan típus
Házi feladat:
- írj olyan programot, mint a
matr_hf (először
csak futtasd le, és nézd meg, mit csinál,
azután nézd meg a főprogramját...)
- valósítsd meg a PozRac típus "+"
műveletét, valamint egy olyan "/"-t, ami
pozitívot oszt PozRac-cal
- írj komplex szám (átlátszatlan)
típust
- írj sor típust konstans hosszú vektorban
ábrázolva
- gyakorlat: generic
- verem_vg
- generic package,
private paraméter
- kiir
- generic eljárás,
limited private paraméter
- szumma
- generic függvény,
egyéb típusparaméterek
Példaprogramok:
- iteral
- generic eljárás, ami egy valamilyen
típusú értéken iterál
egy transzformációt egy feltétel
bekövetkezéséig
- balinverz
- generic eljárás, ami egy valamilyen
diszkét típuson értelmezett
összeadás művelet inverzét
valósítja meg (nem feltétlenül
létezik nullelem!)
Házi feladat:
- a maximumhely-keresés, lineáris keresés,
rendezés, mátrix típus, stb.
átalakítása generic-ké
- az
Iteral
eljárás
példányosítása a
Verem
típussal: tudjuk meg a verem
maximális méretét úgy, hogy
addig rakunk bele egy elemet, amíg meg nem telik
- gyakorlat: szövegfájlok,
mutatók,
rekord diszkriminánsa,
únió típus
- textfajlos
- szövegfájlok I.
- verem_d
- rekord diszkriminánsa,
diszkrimináns kezdőértéke;
átlátszatlan típus paramétere
- verem_l
- lengyel forma kiértékelése:
mutató típus, únió típus
Házi feladat:
- mutatókkal megvalósított bináris fa
típus
- az órai 2. feladat kiegészítése
egyéb műveletekkel (pl. unáris "-")
- lengyel forma előállítása
infix alakból
- infix alak előállítása stringből
- gyakorlat: kivételek
- getdiscr
- futási idejű hibák lekezelése
- készíts olyan tesztprogramot, ami szövegfájlból olvas
getdiscr példánnyal integer-eket fájl végéig, úgy,
hogy a hibás (nem pontosan egy integer-t) tartalmazó
sorokat kihagyja.
- verem_e
- hiba deklarálása és
kiváltása
- fakt_e
- kivételek használata vezérlési
szerkezetként
- szoroz
- futási idejű hibák
kiváltásának elnyomása
Házi feladat:
- gyakorlat: taszkok és egy kis fájlkezelés
Házi feladat:
- seqfajlos.adb
- szekvenciális fájlok
- Készíts olyan interaktív programot,
ami direktfájlt kezel: létrehoz, feltölt,
pozícionál benne és olvas belőle.
- gyakorlat: taszkok
Házi feladat:
- Írj Tanar taszkot a kocsmába. Ha a kocsmában a telítettség 0.8
alatt van, akkor bemegy és megiszik egy pohár bort, különben
elmegy órát tartani.
- Oldd meg a termelő-fogyasztó feladatot úgy, hogy a két taszk
között álló korlátos buffert
protected
objektummal valósítod meg. Ennek az objektumnak az alábbi
műveletei vannak: Hiext, Lopop, Length, Resize. A Hiext
betesz, a Lopop kivesz egy elemet. A Length visszaadja, hány
elem van a bufferben. A Resize megduplázza a buffer
kapacitását.
- gyakorlat: osztályok: öröklődés, dinamikus kötés
Házi feladat:
- Vezess be egy TeglalapAlapuHasab típust a Hasab és a Kocka közé!
- gyakorlat: osztályok.láthatóság, standard könyvtárak az Ada95-ben
Házi feladat:
- Írj privát gyerek könyvtári egységet (pl. eljárást)!
- Mire jó a
WIDE_CHARACTER
és a
WIDE_STRING
?
- Mi az a
BOUNDED_STRING
és az
UNBOUNDED_STRING
?
- ora.adb
- a rendszeridő lekérdezése
- Alakzatok - újabb példa osztályokra
Egyéb:
Kozsik Tamás
(kto)