Algoritmusok 2. rész |
A cikksorozat előző részében az algoritmusok alapfogalmaival ismerkedhettünk meg. Ez a rész tovább folytatja a megkezdett elméleti ismeretanyag átadását, és egy pár egyszerű feladatot, illetve pár alapvető adatstruktúrával való munkát mutatunk be olvasóinknak. |
Tetszőleges
egész szám abszolút értéke |
Vagyis A=|A|. DEKLARÁCIÓK A: Egész ALGORITMUS KEZD BE:
A HA
A<0 AKKOR
KI:=-A
KÜLÖNBEN KI:
A ALGORITMUS VÉGE. |
Tetszőleges egyismeretlenes egyenlet megoldása |
Az AX+B=0 egyenletnek egy ismeretlene van, az X, őt kell meghatározni. Különös figyelmet fordítsunk arra, hogy ha az A bemeneti paraméter értéke nulla (0) akkor valójába nincs is egyenlet, ezen esetben amennyibe a B értéke nem nulla, akkor hiba, ellenkező esetbe viszont bármely X megoldás lehet. DEKLARÁCIÓK A,B,X: Valós KEZD BE:
A,B HA
A=0 AKKOR
KI: ’Hibás bemenő A’
KÜLÖNBEN
HA B = 0
KI: ‘Bármely X megoldás’
KÜLÖNBEN
KI: ’X=’,-B/A VÉGE. |
Két elem cseréje |
Nagyon gyakran fordul elő, hogy egy algoritmus keretein belül két elemet ki kell cserélni (majd később a rendezési algoritmusoknál rengeteget fogunk találkozni ezzel a "mini" algoritmussal). A két elem cseréje a következőképpen néz ki: DEKLARÁCIÓK: A,B,C: Típus KEZD BE:
A,B
C:=A
A:=B
B:=C VÉGE. |
Két szám legnagyobb közös osztója |
A nagyobbik számot csökkenteni kell a kisebbikkel, és a kapott értékre át kell írni. Ezt addig kell folytatni, amíg egyenlő számot nem kapunk. Ez az érték a két szám legnagyobb közös osztója. Pl. 27/21 27 21 6 21 6 15 6 9 6 3 3 3 DEKLARÁCIÓK
A,B: Egész KEZD BE:
A,B HA
(A<=0) OR (B<=0) AKKOR
KI: ’Hibás bemenő adatok!’
KÜLÖNBEN
CIKLUS amíg A<>B
HA A>B AKKOR
A:=A-B
KÜLÖNBEN
B:=B-A
CVÉGE
KI: ’A közös nevezőjük:’, A
HAVÉGE VÉGE. |
Egydimenziós tömb elemeinek feltöltése |
Az egydimenziós tömb a legegyszerűbb adatstruktúra, melynek hasznossága vitathatatlan. Úgy kell elképzelni, mint egymás után rakott, azonos típusú elemek hosszú sora, minden elemének van egy úgynevezett indexe, mely nem más, mint a tömbben elfoglalt pozíciója. Tomb[1..N] CIKLUS I:=1-től N-ig BE:
Tomb[I] CVÉGE |
Egydimenziós tömb kiírása |
Tomb[1..N] CIKLUS I:=1-től N-ig KI:
Tomb[I] CVÉGE |
Kétdimenziós tömb feltöltése |
A kétdimenziós tömb nem más,
mint egy olyan tömb, melynek Tomb[1..N, 1..M] CIKLUS I:=1-től N-ig
CIKLUS I:=1-től M-ig
BE: Tomb[I,J]
CVÉGE CVÉGE |
Kétdimenziós tömb kiírása |
Tomb[1..N, 1..M] CIKLUS I:=1-től N-ig
CIKLUS I:=1-től M-ig
KI: Tomb[I,J]
CVÉGE CVÉGE |
Szűcs Tamás |