Programozási nyelvek I. gyakorlatok


A gyakorlat időpontja és helye: Csütörtök 12:00-13:30, Déli tömb 00-803 (Programozási Nyelvi laboratórium)

Ajánlott irodalom:

Nyékyné Gaizler Judit (szerk.) et al.: Az Ada95 programozási nyelv
ELTE Eötvös Kiadó, Budapest, 1998
ISBN: 963 463 238 6

Előadás: Kozsik Tamás, Szerda 8:00-10:00, Északi tömb Konferenciaterem

A gyakorlatok listája

A gyakorlatok anyaga


2004. szeptember 16.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. SKIP: Üres program.
  2. Hello Világ alkalmazás: Szöveg megjelenítése a képernyőn.
  3. 10! kiszámítása: Számlálós ciklus használata. Változók használata, értékadás, aritmetikai műveletek. Természetes számok típusa, Image attribútuma.
  4. Lineáris keresés: Elöltesztelt feltételvezérelt ciklus és elágazás használata. Szöveg és karakter típusok, logikai típus, relációs és logikai műveletek. Szöveg típus First és Last attribútuma.

Házi feladatok:

  1. Logaritmikus keresés: többágú elágazás.
  2. Lineáris keresés javítása, hogy üres karaktersorozatra is működjön.

Órai feladatok megoldásai:

  1. semmi.adb
  2. hello.adb
  3. faktor.adb
  4. lin_ker.adb

Házi feladatok megoldásai:

  1. log_ker.adb
  2. lin_ker2.adb

A gyakorlat fóliái PS és PDF formátumban


2004. szeptember 23.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. Naptár: Case utasítás használata. Szöveg beolvasása a billentyűzetről.
  2. Lineáris keresés: A házi feladatban javított program módosítása úgy, hogy a találatot jelző logikai változó az értékét egy külön föggvénytől kapja.
  3. Lineáris keresés: Az előző program továbbfejlesztése: a találatot jelző függvény legyen a főprogram alblokkja.
  4. Lineáris keresés: Még egy változtatás: a függvény ne kapjon paramétereket, hanem a kiszámításához szükséges változók legyenek a láthatósági körében.
  5. 10! kiszámítása: Rekurzív függvény.
  6. Legnagyobb közös osztó és legkisebb közös többszörös: Egy eljárással számoljuk ki mindkettőt! Bemenő és kimenő paraméterek használata.
  7. Növelés: Eljárás használata, ami egy egész típusú változót eggyel növel. Egyszerre ki- és bemenő paraméterek.
  8. Növelés: Az előző program módosítása úgy, hogy meg lehessen adni, hogy mennyivel növelje a változót. Ha nem adjuk meg, akkor továbbra is eggyel növelje: paraméterek alapértelmezett értéke.

Házi feladatok:

  1. Függvény használata, amely két szám maximumát számokja ki.
  2. Függvény használata, amely három szám maximumát számokja ki.
  3. Az előbbi két függvény beágyazása egy főprogramba alblokként, azonos néven (nevek átlapolása).
  4. Parancssori szorzás: Program, ami a parancssorban adott két paraméterét összeszorozza, és kiírja a képernyőre. Ada.Command_Line csomag használata.

Órai feladatok megoldásai:

  1. naptar.adb
  2. lin_ker3.adb, talalt.adb
  3. lin_ker4.adb
  4. lin_ker5.adb
  5. faktor2.adb, fakt.adb
  6. lnko_lkkt.adb, kozos.adb
  7. noveles.adb, novel.adb
  8. noveles2.adb, novel2.adb

Házi feladatok megoldásai:

  1. maximum2.adb, max2.adb
  2. maximum3.adb, max3.adb
  3. maximum.adb
  4. szoroz.adb

A gyakorlat fóliái PS és PDF formátumban

2004. szeptember 30.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. Naptár: A múlt órai program módosítása, hogy a napok típusa a Positive egy korlátozott altípusa legyen, amely az 1 és 7 közötti számokat tartalmazza.
  2. Naptár: Az előző program módosítása, hogy altípus helyett származtatott típust használjon.
  3. Naptár: Az előző program módosítása, hogy egészek helyett felsorolási típust használjon, mely a napok nevét tartalmazza.
  4. Maximumkeresés: A 2, 6, 5, - 9, 1, 56, 86, 23, - 71, 4 számok maximumának megkeresése egy függvénnyel. A számokat egy rögzített hosszú egész indexű tömbben tároljuk, és pozícionálisan adjuk meg.
  5. Maximumkeresés: Az előző feladat módosítása úgy, hogy a tömb index típusa külön típus legyen. A tömb elemei most a 2, 2, 0, 9, 9, 9, 4, 13, 4, 2 számok legyenek, amelyeket indexszel jelölt formában adjunk meg.
  6. Maximumkeresés: Az előző feladat módosítása úgy, hogy a tömb hosszát csak változó deklarációjakor kelljen rögzíteni. A tömb elemei most a 2, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 számok legyenek, amelyeket indexszel jelölt formában adjunk meg.
  7. Maximumkeresés: Az előző feladat módosítása, hogy a tömb hosszát a változó deklarációjakor se rögzítsük explicit, hanem csak a kezdőérték hossza határozza meg. Az elemek legyenek ugyanazok, mint az első változat esetén, pozícionális formában megadva.

Házi feladatok:

  1. Rendezés: Rendezés megvalósítása maximumkiválasztás segítségével.
  2. Rendezés: Az előző feladat módosítása, hogy rekurziót használjon.

Órai feladatok megoldásai:

  1. naptar2.adb
  2. naptar3.adb
  3. naptar4.adb
  4. max_ker.adb
  5. max_ker2.adb
  6. max_ker3.adb
  7. max_ker4.adb

Házi feladatok megoldásai:

  1. rendezes.adb
  2. rendezes2.adb

A gyakorlat fóliái PS és PDF formátumban

2004. október 7.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. Mátrix típus megvalósítása csomagban, összeadás és szorzás műveletekkel.
  2. Pozitív racionális típus megvalósítása csomagban rekord segítségével, létrehozás (pozitívak osztása), egymással való osztás, pozitívval való osztás, valamint számláló- és nevezőlekérdezés műveletekkel.
  3. Verem típus megvalósítása.
  4. Verem típus megvalósítása diszkriminánsos rekorddal, ahol diszkrimáns a méretet jelöli.

Házi feladatok:

  1. Pozitív racionális típus kiegészítése összeadás, kivonás, egymással és pozitívval balról és jobbról szorzás és pozitív osztása pozitív racionálissal műveletekkel.
  2. Sor típus megvalósítása diszkriminánsos rekorddal, ahol diszkrimáns a méretet jelöli.

Órai feladatok megoldásai:

  1. matrixok.ads, matrixok.adb, matrixok_proba.adb
  2. poz_rac.ads, poz_rac.adb, poz_rac_proba.adb
  3. verem_v.ads, verem_v.adb, verem_v_proba.adb
  4. verem_d.ads, verem_d.adb, verem_d_proba.adb

Házi feladatok megoldásai:

  1. poz_rac2.ads, poz_rac2.adb, poz_rac2_proba.adb
  2. sor_d.ads, sor_d.adb, sor_d_proba.adb

A gyakorlat fóliái PS és PDF formátumban

2004. október 14.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. Diszkriminánsos verem típus megvalósítása sablonként: típus és konstans paraméterek
  2. Sablon kiíró eljárás: alprogram paraméter
  3. Sablon összegző függvény: diszkrét és összetett típus paraméterek, alprogram paraméterek alpértelmezett értéke

Házi feladatok:

  1. Diszkriminánsos sor típus megvalósítása sablonként
  2. Sablon iterátor eljárás
  3. Sablon balinverzet számító eljárás

Órai feladatok megoldásai:

  1. verem_dg.ads, verem_dg.adb, verem_dg_proba.adb
  2. kiir.ads, kiir.adb, kiir_proba.adb
  3. szumma.ads, szumma.adb, szumma_proba.adb

Házi feladatok megoldásai:

  1. sor_dg.ads, sor_dg.adb, sor_dg_proba.adb
  2. iteral.ads, iteral.adb, iteral_proba.adb
  3. balinverz.ads, balinverz.adb, balinverz_proba.adb

A gyakorlat fóliái PS és PDF formátumban

2004. október 21.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. Utasításblokk: verem méretét a felhasználó adja meg billentyűzetről
  2. Kivételek kezelése: legutóbbi verem csomag kipróbáló programjában kezeljük az üres- illetve a tele verem okozta kivételeket!
  3. Kivételek deklarálása, kiváltása: új verem csomag, amelyben saját kivételeket váltunk ki hibák esetén
  4. Kivételek felhasználása vezérlési célra: faktoriális rekurzív kiszámítása elágazás nélkül, kivételkezeléssel

Házi feladatok:

  1. Új sor csomag, amelyben saját kivételeket váltunk ki hibák esetén, és a kipróbáló programban kezeljük azokat
  2. Futásidejű ellenőrzések (és hibák kiváltásának) elnyomása: írjuk ki az 1, 10, 100, ... mértani sorozatot az 1 .. 1000 intervallumra megszorított altípuson határellenőrzés nélkül!

Órai feladatok megoldásai:

  1. verem_dg_proba2.adb
  2. verem_dg_proba3.adb
  3. verem_dge.ads, verem_dge.adb, verem_dge_proba.adb
  4. faktor3.adb, fakt_e.adb

Házi feladatok megoldásai:

  1. sor_dge.ads, sor_dge.adb, sor_dge_proba.adb
  2. szorzas.ads

A gyakorlat fóliái PS és PDF formátumban

2004. november 11.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. Mutatók: sablon verem csomag egy másik megvalósítása: tömb helyett láncolt lista
  2. Szöveges állományok kezelése
  3. Bináris állományok kezelése

Házi feladatok:

  1. Új sor csomag láncolt listákkal
  2. Nem soros állománykezelés

Órai feladatok megoldásai:

  1. verem_lge.ads, verem_lge.adb, verem_lge_proba.adb
  2. ir.adb, olvas.adb
  3. ir2.adb, olvas2.adb

Házi feladatok megoldásai:

  1. Egyéni
  2. sor_lge.ads, sor_lge.adb, sor_lge_proba.adb

A gyakorlat fóliái PS és PDF formátumban

2004. november 18.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. Taszkok: Semmit nem csináló taszk
  2. Taszk objektum: Számokat párhuzamosan kiíró taszkok
  3. Taszk típus és belépési pontok: A taszk nevét és számokat párhuzamosan kiíró közös típusú taszkok
  4. Taszk típus diszkriminánssal: Hasonló program, név átvételével a diszkriminánsban

Órai feladatok megoldásai:

  1. semmi_t.adb
  2. jancsi_julcsa.adb
  3. jancsi_julcsa2.adb
  4. jancsi_julcsa3.adb

A gyakorlat fóliái PS és PDF formátumban

2004. november 25.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. Kölcsönös kizárás: probléma: ha két karakterláncot karakterenként írunk ki, a két szöveg összekeveredhet
  2. Kölcsönös kizárás megoldása szemafor taszkkal
  3. Kölcsönös kizárás megoldása védett egységgel

Órai feladatok megoldásai:

  1. jancsi_julcsa4.adb
  2. jancsi_julcsa5.adb
  3. jancsi_julcsa6.adb

A gyakorlat fóliái PS és PDF formátumban

2004. december 2.

A gyakorlat előzetes fóliái PS és PDF formátumban

Órai feladatok:

  1. Kocsma szimulátor 1. változat: szelektív várakoztatás feltételekkel és azok nélkül, terminate alternatívával, valamint szelektív hívás else ággal
  2. Kocsma szimulátor 2. változat: delay ág
  3. Kocsma szimulátor 3. változat: dinamikusan létrehozott taszkok mutató diszkriminánssal
  4. Kocsma szimulátor 4. változat: védett egységek belépési eljárással, őrfeltételes belépési ponttal és függvénnyel

Órai feladatok megoldásai:

  1. kocsma1.adb
  2. kocsma2.adb
  3. kocsma3.adb
  4. kocsma4.adb

Házi feladatok:

  1. Kocsma szimulátor 5. változat: a védett egység függvényének használata

Házi feladatok megoldásai:

  1. kocsma5.adb

A gyakorlat fóliái PS és PDF formátumban