FOLYAMATÁBRA Telefonálás folyamatábrával: Billentyűzár ki Üss be egy számot Beütöttem az összes számot Hívás Várakozás felveszik Beszélek. Befejezem a beszélgetést. Lezárom a telefont Teafőzés: Melegíts vizet Felforrt a víz? Tea filter beáztatása I<10 Várok egy percet I:=I+1 Ízesítem
Írjuk ki a számokat 110ig. KI: 1 KI: 2 I<=10 KI: 10 I:=I+1 Írjuk ki a páros számokat 110ig. I<=10 I mod 2 == 0 Írjuk ki a számokat 110ig és a végén az átlagukat is. I:=I+1 atlag:=1 I<=10 KI: atlag/10 I:=I+1 atlag:=atlag+i
Faktoriális számító program BE: N faktorialis:=1 I<=N KI: faktorialis I:=I+1 faktorialis:= faktorialis *I 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. 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 KI: kerulet
Rajzoljuk fel annak az algoritmusnak a folyamatábráját, amely addig olvas a billentyűzetről karaktert, amíg @ karaktert nem olvas be. BE: karakter karakter = @ 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áme vagy sem. 1.: SUM:= 0 SUM:= SUM+karakter BE: karakter karakter = @ KI: SUM 2.(szám ellenőrzéssel) : SUM:= 0; DB:=1; BE: karakter karakter = 09 SUM:= SUM+karakter DB:= DB+1 karakter = @ KI: SUM/DB
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. EGYSZER := BE: A A = 09 EGYSZER A = @ EGYSZER := KI: MAX A > MAX MAX := A 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 helyezkedike el a megadott pont. BE: x,y < 10 KI: nincs benne KI: benne van
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 nagyobbe vagy kisebbe 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. Y := RAND(11000); c := 0 BE: x x = y c := c + 1 KI: eltaláltad, c x<y KI: A szám kisebb 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 iedik karakterét a következő képen érhető el: szoveg[i] BE: k szoveg := MiaMaiMocsáriGólyahír I := 0 k = szoveg[i] I := I + 1 I >= hossz(szoveg) KI: Nincs meg
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) szoveg := MiaMaiMocsáriGólyahír I:=0; A:=0; Z:=0; C:=0 szoveg*i+= A szoveg*i+= Z szoveg*i+= C A := A + 1 Z := Z + 1 C := C + 1 I := I + 1 I >= hossz(szoveg) KI: A,Z,C 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 BE: szoveg I:=0; sz:= szoveg*i+= A sz := sz + szoveg[i] sz := sz + E I := I + 1 I >= hossz(szoveg) KI: sz
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 1tő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 2től i1 ig megy minden i cikluslépésben+ I:=0; C := 0 C >= 5 I := I + 1 K := 2 I % K = 0 K = I 1 K := K + 1 C := C + 1 STRUKTOGRAM Telefonálás struktogramja: Teafőzés struktogramja: BILL. ZÁR KIKAPCS. től 11ig BE: EGY SZÁM HÍVÁS NEM VESZIK FEL? VÁROK MELEGÍTS VIZET FELFORRT A VÍZ? FILTER BEÁZTATÁSA ÍZESÍTEM FINOM? BESZÉLEK; BEFEJEZEM; BILL. ZÁR BEKAPCS.
Írjuk ki 1től 10ig a számokat, mind a három ciklusfajtával. től 10ig i<=10 KI: i; i:=i+1 ; I:=I+1 I>10 Írjuk ki 1től 10ig a páros számokat. Alprogrammal is készítsük el: től 10ig I%2 KI: = I 0 től 10ig PÁROS(I) PÁROS(X) X%2 = 0 KI: X Írjuk ki az első tíz szám összegét: SUM := 0 től 10ig SUM := SUM + I Írjuk ki az első tíz szám összegének átlagát: SUM := 0 től 10ig SUM := SUM + I KI: SUM KI: SUM/10 Írjuk ki N faktoriálisát: BE: N F := 1 től Nig F := F * I Téglalap területe, kerülete: BE: A,B T: A*B K: 2*(A*B) 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 KI: SUM C= @
@ 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. C!= @ E:=; C:=0; BE: C C szám? E C>Max E := ; Max := A KI: Max Max := A 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 helyezkedike el a megadott pont. D := BE: x,y,z D<10 KI: nincs benne KI: benne van
Egyszerű játékprogram megvalósítása struktogrammal: A gép kitalál 11000ig 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<Y KI: ettől kisebb 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) X := X +1 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 A:=A+1 SZ[X]= Z Z:=Z+1 SZ[X]= C C:=C+1 X := X + 1 KI: A, Z, C X >= HOSSZ(SZ) 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<HOSSZ(SZ) SZ[X]= A SZ2:=SZ2+SZ[X] SZ2:=SZ2+ E X := X + 1 KI: SZ2