Feladat
-
Upload
kalonice-cleatus -
Category
Documents
-
view
30 -
download
3
description
Transcript of Feladat
1.1. FeladatFeladat
A Helyes Zárójelezés StruktogramjaA Helyes Zárójelezés Struktogramja
A Helyes ZárójelezésA Helyes Zárójelezés Az algoritmus egy Az algoritmus egy garantáltan garantáltan helyes zárójelezés helyes zárójelezés
minden összetartozó nyitó- és csukózárójelpárjánakminden összetartozó nyitó- és csukózárójelpárjának
a sorszámait egymás mellé kiírja.a sorszámait egymás mellé kiírja.
Egy példaEgy példa
(( )) ((( ))) ( )(( )) ((( ))) ( ) ?? ??
12 34 567 8910 11 1212 34 567 8910 11 12 ????
A StruktogramA Struktogram
HZ(s)
Empty(V); I := 0
S!=EOF
Read(S,X); I:=I+1
Pop(V,J)
Write(J,I)
Push(V,I)
X=“(” X=“)”
A A példa megoldásapélda megoldása
Üres verem létrehozása, Üres verem létrehozása, ‘‘II’’ index 0-ra állítása. index 0-ra állítása.
V verem: IV verem: I:=0;:=0;
(üres)(üres)
A A példa megoldásapélda megoldása
Az első elem - nyitózárójel. az Az első elem - nyitózárójel. az ‘‘II’’ indexet növeljük indexet növeljük
1-el, és a 1-el, és a ““11”” –est betesszük a verembe. –est betesszük a verembe.
“1”((( )) ((( ))) ( )( )) ((( ))) ( )
A A példa megoldásapélda megoldása
AA 2. elem 2. elem isis nyitózárójel. Az nyitózárójel. Az ‘‘II’’ indexet növeljük indexet növeljük
1-el, és a 1-el, és a ““22”” – est betesszük a verembe. – est betesszük a verembe.
“1”“2” (((( )) ((( ))) ( ) )) ((( ))) ( )
A A példa megoldásapélda megoldásaAz 3. elem - csukózárójel. az Az 3. elem - csukózárójel. az ‘‘II’’ indexet növeljük indexet növeljük
1-el, a 2-est kivesszük a veremből. A 2-est és a 3-ast1-el, a 2-est kivesszük a veremből. A 2-est és a 3-ast
kiírjuk : megvan az első zárójelpár!kiírjuk : megvan az első zárójelpár!
Output:Output:
(2,3),(2,3),
“1”(( (( ))) ((( ))) ( )) ((( ))) ( )
A A példa megoldásapélda megoldásaAz 4. elem - csukózárójel. az Az 4. elem - csukózárójel. az ‘‘II’’ indexet növeljük indexet növeljük
1-el, a 1-est kivesszük a veremből. A 1-est és a 4-est1-el, a 1-est kivesszük a veremből. A 1-est és a 4-est
kiírjuk. Megvan az második zárójelpár!kiírjuk. Megvan az második zárójelpár!
Output:Output:
(2,3),(1,4),(2,3),(1,4),
(( )(( ))) ((( ))) ( ) ((( ))) ( )
A A példa megoldásapélda megoldásaAz 5. elem nyitózárójel. Az Az 5. elem nyitózárójel. Az ‘‘II’’ indexet növeljük indexet növeljük
1-el, és az 1-el, és az ““55”” – öst betesszük a verembe. – öst betesszük a verembe.
Output:Output:
(2,3),(1,4),(2,3),(1,4),
“5”(( )) (( )) (((( ))) ( )(( ))) ( )
A A példa megoldásapélda megoldása
Az 6. elem nyitózárójel. Az Az 6. elem nyitózárójel. Az ‘‘II’’ indexet növeljük indexet növeljük
1-el, és az 1-el, és az ““66”” – ost betesszük a verembe. – ost betesszük a verembe.
Output:Output:
(2,3),(1,4),(2,3),(1,4),
“5”“6” (( )) ((( )) (((( ))) ( )( ))) ( )
A A példa megoldásapélda megoldásaAz 7. elem nyitózárójel. Az Az 7. elem nyitózárójel. Az ‘‘II’’ indexet növeljük indexet növeljük
1-el, és az 1-el, és az ““77”” – est betesszük a verembe. – est betesszük a verembe.
Output:Output:
(2,3),(1,4),(2,3),(1,4),
“5”“6”“7”
(( )) (((( )) (((( ))) ( ) ))) ( )
A A példa megoldásapélda megoldásaAz 8. elem - csukózárójel. az Az 8. elem - csukózárójel. az ‘‘II’’ indexet növeljük indexet növeljük
1-el, a 7-est kivesszük a veremből. A 7-est és a 8-ast1-el, a 7-est kivesszük a veremből. A 7-est és a 8-ast
kiírjuk. Megvan a harmadik zárójelpár!kiírjuk. Megvan a harmadik zárójelpár!
Output:Output:
(2,3),(1,4),(7,8),(2,3),(1,4),(7,8),
“5”“6” (( )) ((( (( )) ((( )))) ( ))) ( )
A A példa megoldásapélda megoldásaAz 9. elem - csukózárójel. az Az 9. elem - csukózárójel. az ‘‘II’’ indexet növeljük indexet növeljük
1-el, a 6-ost kivesszük a veremből. A 6-ost és a 9-est1-el, a 6-ost kivesszük a veremből. A 6-ost és a 9-est
kiírjuk. Megvan a negyedik zárójelpár!kiírjuk. Megvan a negyedik zárójelpár!
Output:Output:
(2,3),(1,4),(7,8),(6,9),(2,3),(1,4),(7,8),(6,9),
“5”(( )) ((( )(( )) ((( )))) ( )) ( )
A A példa megoldásapélda megoldásaAz 10. elem - csukózárójel. az Az 10. elem - csukózárójel. az ‘‘II’’ indexet növeljük indexet növeljük
1-el, a 5-öst kivesszük a veremből. A 5-öst és a 10-est1-el, a 5-öst kivesszük a veremből. A 5-öst és a 10-est
kiírjuk. Megvan az ötödik zárójelpár!kiírjuk. Megvan az ötödik zárójelpár!
Output:Output:
(2,3),(1,4),(7,8),(6,9),(5,10),(2,3),(1,4),(7,8),(6,9),(5,10),
(( )) ((( ))(( )) ((( )))) ( ) ( )
A A példa megoldásapélda megoldásaAz 11. elem nyitózárójel. Az Az 11. elem nyitózárójel. Az ‘‘II’’ indexet növeljük indexet növeljük
1-el, és a 1-el, és a ““1111”” – est betesszük a verembe. – est betesszük a verembe.
Output:Output:
(2,3),(1,4),(7,8),(6,9),(5,10),(2,3),(1,4),(7,8),(6,9),(5,10),
“11”(( )) ((( ))) (( )) ((( ))) (( ) )
A A példa megoldásapélda megoldásaAz utolsó elem - csukózárójel. az Az utolsó elem - csukózárójel. az ‘‘II’’ indexet indexet
növeljük növeljük
1-el, a 11-est kivesszük a veremből.A 5-öst és a 10-est1-el, a 11-est kivesszük a veremből.A 5-öst és a 10-est
kiírjuk. Megvan az utolsó zárójelpár!kiírjuk. Megvan az utolsó zárójelpár!
Output:Output:
(2,3),(1,4),(7,8),(6,9),(5,10),(2,3),(1,4),(7,8),(6,9),(5,10),(11,12)(11,12)
(( )) ((( ))) ( (( )) ((( ))) ( ))
2. Feladat2. Feladat
Egy egyszerű nem üres lista aktuális elemének a Egy egyszerű nem üres lista aktuális elemének a törlése.törlése.
A ListaA Lista
Az Az ‘‘ll’’ pointer a listánk első elmére mutat pointer a listánk első elmére mutat, , és a lista és a lista nem üresnem üres : :
ll . . .. . .
aktakt
Az Az aktakt pointer értéke NIL lesz üres lista esetén, de pointer értéke NIL lesz üres lista esetén, de akkor is, ha „lelépünk” a listáról.akkor is, ha „lelépünk” a listáról.
A Törlés StruktogramjaA Törlés StruktogramjaTöröl(l)
akt = NILp := l
HIBA
akt = l
l:=l.mutakt:=l
dispose(p)
p.mut != akt
p:=p.mut
p.mut := akt.mut
dispose(akt)
akt := p.mut
Az AktuAz Aktuális Elem Törléseális Elem Törlése
l …
akt
Ha nem NIL az aktuális pointer, de tegyük fel, hogy a legelső :
Ilyenkor az elem törlése az alábbi módon : …
Az AktuAz Aktuális (Első) Elem Törléseális (Első) Elem Törlésell := := ll.mut :.mut :
aktakt := := ll
dispose(dispose(pp)) ((pp:=:=l l volt a stuki elejvolt a stuki elején), azaz:én), azaz:
l
…
akt
akt
l
akt
Az AktuAz Aktuális (Nem Első) Elem Törléseális (Nem Első) Elem Törlésepp.mut !.mut !== akt :akt : (addig l(addig lépünk a pointerrel, míg meg épünk a pointerrel, míg meg
nem találjuk az aktuális elemet).nem találjuk az aktuális elemet).
l … …
akt
p.mut := akt.mut
…
akt
Az AktuAz Aktuális (Nem Első) Elem Törléseális (Nem Első) Elem Törlésedispose(dispose(aktakt) :) :
aktakt : :== pp.mut.mut
…
akt
akt