nemüres(H) | igaz, ha a H halmaznak legalább egy eleme van |
eleme(e,H) | igaz, ha az e elem benne van a H halmazban |
üreshalmaz | üres halmazt ad eredményül |
egyeleme(H) | a H halmaz egy tetszőleges elemét adja eredményül |
hozzáad(e,H) | az e elemet berakja a H halmazba |
kivesz(e,H) | az e elemet kiveszi a H halmazból |
Valami:
H:=üershalmaz Ciklus amíg nemüres(A) vagy nemüres(B) Ha nemüres(A) akkor e:=egyeleme(A) különben e:=egyeleme(B) Ha eleme(e,A) akkor kivesz(e,A) Ha eleme(e,B) akkor kivesz(e,B) hozzáad(e,H) Ciklus vége Eljárás vége. |
A. | Teknőc1:
right 90 forward 20 left 120 forward 60
forward 20 right 120 forward 60 |
B. | Teknőc1:
forward 100 right 120 forward 20 left 150 forward 20+20*négyzetgyök 3
forward 100 left 120 forward 20 right 150 forward 20+20*négyzetgyök 3 |
Ellenőr:
A:=0 : B:=0 Ciklus I=1-től N-ig Elágazás X(I)="IF" esetén A:=A+1 : V(A):=B X(I)="DO" esetén B:=B+1 X(I)="FI" estén A:=A-1 : Ha A<0 akkor HIBA1 Ha V(A+1)<B akkor HIBA2 Ha V(A+1)>B akkor HIBA3 X(I)="OD" esetén B:=B-1 : Ha B<0 akkor HIBA4 Elágazás vége Ciklus vége Ha A>0 akkor HIBA5 Ha B>0 akkor HIBA6 Eljárás vége. |
Milyen hibajelenségek váltják ki a HIBA1..HIBA6 hibajelző utasításokat?
4. feladat: Hőmérsékletmérések (14 pont)
Valami:
L:=hamis Ciklus I=1-től N-ig Ha A[I]<0 akkor Ha nem L akkor L:=igaz : P:=I : M:=A[I] különben Ha A[I]>M akkor P:=I : M:=A[I] Elágazások vége Ciklus vége Eljárás vége. |
A. Mit csinál
a fenti program?
B. Mi a jelentése
az L, P és
M
változóknak?
5. feladat: Festőalgoritmus (18 pont)
Festés:
Ciklus sor=felső-től alsó-ig fest:=hamis Ciklus oszlop=bal-tól jobb-ig Ha festett(oszlop, sor) akkor fest:=nem fest Ha fest akkor pontrajzolás(osztlop, sor) Ciklus vége Ciklus vége Eljárás vége. |
A. Mikor "gondolja
úgy a fenti festőalgoritmus, hogy zárt alakzat belsejében van?
B. A képet
egyes esetekben nem jól festi. Melyek ezek?
6. feladat: Pincérek és vendégek (24 pont)
A rendeléseket (az étel nevét és a vendég sorszámát) a REND(1..N) tömbben tároljuk. A Rendelés végrehajtása 2, a Kiszolgálás végrehajtása 5 percig tart.
Például, ha egy vendég a 3. percben kezdi el tanulmányozni az étlapot,
rendelését legkorábbanaz 5. percben veszi fel egy pincér. Ha ekkor éppen
van szabad pincér, a vendég pontosan a 10. percben kapja meg az ételt,
ha nincs, akkor várnia kell. A pincér a kiszolgálás befejezésének percében
(azaz a példa szerint a 10. percben) már elkezdheti a következő vendég
kiszolgálását.
Rendelés (ÉTEL, VENDÉG):
REND(I):=(ÉTEL, VENDÉG) I:=(I+1) mod N : DB:=DB+1 Eljárás vége. |
Kiszolgálás (ÉTEL, VENDÉG):
(ÉTEL, VENDÉG):=REND(J) J:=(J+1) mod N : DB:=DB-1 Eljárás vége. |