FOLYAMATÁBRA Telefonálás folyamatábrával: START
Billentyűzár ki
Üss be egy számot
hamis
igaz
Beütöttem az összes számot
Hívás Várakozás
hamis
felveszik
igaz
Beszélek. Befejezem a beszélgetést. Lezárom a telefont STOP
Teafőzés: START
Melegíts vizet
hamis
Felforrt a víz?
igaz
Tea filter beáztatása
I:=1
hamis
I<10
Várok egy percet
I:=I+1 Ízesítem
STOP
igaz
Írjuk ki a számokat 1-10-ig.
hamis
START
START
I:=1
KI: 1
KI: I
KI: 2
I<=10
igaz KI: 10 I:=I+1
STOP
STOP
Írjuk ki a páros számokat 1-10-ig. START I:=1
hamis
I<=10
STOP
igaz
hamis
I mod 2 == 0
igaz
KI: I
I:=I+1
Írjuk ki a számokat 1-10-ig és a végén az átlagukat is. START I:=1 atlag:=1 KI: I
hamis
I<=10
igaz I:=I+1
KI: atlag/10 atlag:=atlag+I STOP
Faktoriális számító program START BE: N I:=1 faktorialis:=1
hamis
I<=N
igaz I:=I+1
KI: faktorialis faktorialis:= faktorialis *I STOP
Téglalap kerületének, területének meghatározása: a program kérje be a téglalap A és B oldalát, majd az eredményt írja ki. START
START
START
BE: A
BE: A
BE: A
BE: B
BE: B
BE: B
terulet := A*B
KI: A*B
KI: „terület”, A*B
kerulet := 2*A + 2*B
KI: 2*A+2*B
KI: „kerület”, 2*A+2*B
KI: terulet
STOP
STOP
KI: kerulet
STOP
Rajzoljuk fel annak az algoritmusnak a folyamatábráját, amely addig olvas a billentyűzetről karaktert, amíg „@” karaktert nem olvas be. START
BE: karakter
hamis
karakter = „@”
igaz STOP
Rajzoljuk fel annak az algoritmusnak a folyamatábráját, amely addig olvas a billentyűzetről karaktert (ezek számok is lehetnek), amíg „@” karaktert nem olvas be. Ha „@” karaktert olvas, írja ki: 1. az addig beolvasott számok összegét. 2. az addig beolvasott számok összegének az átlagát. Feltételezzük, hogy a felhasználó csak számokat ír be majd egy „@” karaktert. Tehát nem fontos ellenőrizni, hogy az adott karakter szám-e vagy sem. 1.: START
SUM:= 0 SUM:= SUM+karakter
hamis
BE: karakter
karakter = „@”
igaz KI: SUM
2.(szám ellenőrzéssel) :
STOP START SUM:= 0; DB:=1;
BE: karakter
karakter = 0-9
igaz SUM:= SUM+karakter
hamis DB:= DB+1
hamis
karakter = „@”
KI: SUM/DB
STOP
igaz
Rajzoljuk fel annak az algoritmusnak a folyamatábráját, amely addig olvas a billentyűzetről karaktert (ezek számok is lehetnek), amíg „@” karaktert nem olvas be. Ha „@” karaktert olvas, írja ki az eddig megadott számok közül a legnagyobbat. Egy nehezítés lehet, hogy negatív számokra is működjön az algoritmus, és hogy figyelje, hogy számokat adunk e meg. START EGYSZER := igaz
BE: A
hamis
igaz
A = 0-9
EGYSZER
hamis
A = „@”
igaz EGYSZER := hamis
igaz
hamis MAX := A
KI: MAX
A > MAX
igaz STOP
hamis
MAX := A
Rajzoljuk fel annak az algoritmusnak a folyamatábráját, amely bekér, egy pontot az x,y koordinátájával. Írja ki, hogy egy origó középpontú 10 egység sugarú körön belül vagy azon kívül helyezkedik-e el a megadott pont. START
BE: x,y
hamis
< 10
KI: „nincs benne”
igaz KI: „benne van”
STOP
Készítsünk egyszerű játékprogramot folyamatábrával. A program találjon ki egy számot 1 és 1000 között. A játékosnak ezt a számot kell kitalálnia. Ha nem találja el a számot, akkor a program írja ki, hogy a megadott számnál nagyobb-e vagy kisebb-e a kitalált szám. Nehezítés lehet, hogy ha a játékos kitalálta a számot, akkor írja ki azt is hogy hány lépésből találta ki. START Y := RAND(1-1000); c := 0
BE: x
hamis
igaz
x=y
c := c + 1
hamis
x
KI: „A szám kisebb”
KI: „eltaláltad”, c STOP
igaz KI: „A szám nagyobb”
Rajzoljuk fel annak az algoritmusnak a folyamatábráját, amely beolvas egy karaktert a billentyűzetről és ennek a karakternek a legelső előfordulásának pozícióját keresi meg a „MiAMaiMocsáriGólyahír” szövegben. (karakteres típus) A szöveg i-edik karakterét a következő képen érhető el: szoveg[i] START
BE: k szoveg := „MiaMaiMocsáriGólyahír” I := 0
hamis
k = szoveg[i]
I := I + 1
hamis
I >= hossz(szoveg)
igaz KI: I
igaz KI: „Nincs meg” STOP
STOP
Rajzoljuk fel annak az algoritmusnak a folyamatábráját, amely egy szövegben megszámolja az „a” a „z” és „c” karakterek előfordulását. (karakteres típus) START szoveg := „MiaMaiMocsáriGólyahír” I:=0; A:=0; Z:=0; C:=0
szoveg*i+=”A”
igaz
A := A + 1
igaz
Z := Z + 1
igaz
C := C + 1
hamis szoveg*i+=”Z”
hamis szoveg*i+=”C”
hamis I := I + 1
hamis
igaz
I >= hossz(szoveg)
KI: A,Z,C STOP
Rajzoljuk fel annak az algoritmusnak a folyamatábráját, amely egy bekért szövegben (karakteres típus) lévő „a” karaktert kicseréli egy „e” karakterre és az így kapott új szöveget kiírja. pl.: alma > elme; takar > teker; sajt > sejt START BE: szoveg I:=0; sz:=””
hamis
szoveg*I+=”A”
sz := sz + szoveg[I]
igaz sz := sz + ”E”
I := I + 1
hamis
I >= hossz(szoveg)
igaz KI: sz
STOP
Rajzoljuk fel annak az algoritmusnak a folyamatábráját, amely kiírja az első 5 prímszámot. (1,2,3,5,7) A prímszámok csak egyel és önmagukkal oszthatók. *c számolja hogy mennyi prím számot találtunk eddig, i ciklusváltozó megy 1-től addig amíg meg nincs az 5 prímszám, k ciklusváltozóval ellenőrizzük le hogy osztható e vele i, k 2-től i-1 ig megy minden i cikluslépésben+ START I:=0; C := 0
hamis
C >= 5
igaz
I := I + 1
STOP
K := 2
hamis hamis K := K + 1
K=I-1
I%K=0
igaz
igaz KI: I
C := C + 1
STRUKTOGRAM
Telefonálás struktogramja: BILL. ZÁR KIKAPCS. I:=1-től 11-ig BE: EGY SZÁM HÍVÁS NEM VESZIK FEL? VÁROK BESZÉLEK; BEFEJEZEM; BILL. ZÁR BEKAPCS.
Teafőzés struktogramja: MELEGÍTS VIZET FELFORRT A VÍZ? FILTER BEÁZTATÁSA ÍZESÍTEM FINOM?
Írjuk ki 1-től 10-ig a számokat, mind a három ciklusfajtával. I:=1-től 10-ig
I:=1
KI: I
I:=1 KI: I; I:=I+1
i<=10 KI: i; i:=i+1
Írjuk ki 1-től 10-ig a páros számokat. I:=1-től 10-ig
I>10
Alprogrammal is készítsük el: I:=1-től 10-ig
I%2 KI:=I 0 -
PÁROS(X)
PÁROS(I)
X%2 = 0
KI: I
Írjuk ki az első tíz szám összegét: SUM := 0 I:=1-től 10-ig SUM := SUM + I
KI: SUM
Írjuk ki N faktoriálisát:
-
KI: X
Írjuk ki az első tíz szám összegének átlagát: SUM := 0 I:=1-től 10-ig SUM := SUM + I
KI: SUM/10
Téglalap területe, kerülete:
BE: N
BE: A,B
F := 1
T: A*B K: 2*(A*B)
I:=1-től N-ig F := F * I
KI: T,K
KI: F
„@” karakterig olvassunk be karaktereket: BE: C C=”@”
„@” karakterig megadott számok összege: SUM:=0; C=0 SUM:=SUM+C; BE: C C=”@” KI: SUM
„@” karakterig megadott számok összege ellenőrzéssel (számok és karakterek is megadhatók): SUM:=0 BE: C C szám? -
SUM:=SUM+C C=”@” KI: SUM
„@” karakterig megadott számok összegének átlaga ellenőrzéssel: SUM:=0; DB:=0 BE: C C szám? -
SUM:=SUM+C
-
DB:=DB+1 C=”@” KI: SUM/DB
„@” karakterig olvassunk karaktereket. Lehet számokat és betűket is megadni. Ha „@” karaktert adunk meg akkor a program írja ki az addig beírt számok közül a legnagyobbat. E:=igaz; C:=0; C!=”@” BE: C C szám? E -
C>Max -
E := hamis;
Max := A
Max := A
KI: Max
Kérjünk be egy pontot az x,y,z koordinátájával. A program írja ki, hogy egy origó középpontú 10 egység sugarú gömbön belül vagy azon kívül helyezkedik-e el a megadott pont. BE: x,y,z D := D<10 KI: „nincs benne”
KI: „benne van”
Egyszerű játékprogram megvalósítása struktogrammal: A gép kitalál 1-1000-ig egy számot, a felhasználónak ezt kell kitalálnia. Ha kitalálta, írjuk ki azt is hogy hány lépésből találta ki. Y:=RAND(1,1000); db:=1 BE: X X != Y X
KI: „ettől nagyobb”
C := C + 1 BE: X KI: C „lépésből találtad el”
Egy megadott szövegben keressük meg egy bekért karakter első előfordulásának pozícióját. SZ:=”MIAMAI”; X:=0 BE: K SZ[X]!=K és X
=HOSSZ(SZ) KI: X
KI: „nincs benne”
Egy megadott szövegben számoljuk meg az „A”, „Z” és „C” karakterek előfordulását. SZ:=”MIAMAI” X:=0; A:=0; Z:=0; C:=0; SZ[X]=”A”
SZ[X]=”Z”
SZ[X]=”C”
A:=A+1
Z:=Z+1
C:=C+1
X := X + 1
N
X >= HOSSZ(SZ) KI: A, Z, C
Egy bekért szövegben (SZ) lévő „A” karaktert „E” karakterre cseréljük le. Az eredményt egy új változóba tároljuk (SZ2). X:=0;
SZ2:=”” BE: SZ
X
SZ2:=SZ2+”E”
X := X + 1 KI: SZ2