Algoritmusok tanítása - Eszterházy Károly Főiskola, Eger

Download Report

Transcript Algoritmusok tanítása - Eszterházy Károly Főiskola, Eger

Göncziné Kapros Katalin
PhD. Hallgató (DE IK)
Eszterházy Károly Főiskola, Eger
[email protected]
• Algoritmus leíró módszerek
• Vizsgált területek:
• Általános iskola
• Középiskola
• Felsőoktatás
• Vizsgálat célja:
• Melyik algoritmus leíró eszközöket részesítik előnyben?
• Milyen alapalgoritmusokat alkalmaznak?
• Melyek azok az alapnyelvek amelyek alapjául szolgálnak a
későbbi ismereteknek?
2
• szöveges: a legkevésbé pontos, és a legterjengősebb, de
mindenki számára érthető (Természetes nyelvű leírás)
• metanyelv: olyan nyelvek, amelyekben csak a vezérlési
szerkezetek vannak definiálva, az elemi tevékenységeket
és feltételeket megállapodás szerint
alkalmazzuk.(Pszeudo-kód)
• grafikus metanyelv: vizuális megjelenítés, könnyen
megtanulható nyelv (Folyamatábra, Struktogram,
Jackson módszer)
• programnyelv: a programok is tekinthetők egy
algoritmus leírásának (pl. PASCAL)
3
Billentyűzetről kérjünk be egy egész számot (N), és adjuk össze 1-től N-ig a
számokat!
Természetes nyelvű leírás
1.
2.
3.
Kérj be egy N egész számot.
Egytől indulva add össze a
számokat N-ig.
Írasd ki a kapott értéket.
Folymatábra1
Struktogram1
1.
Simon Gyula: Számítástechnika középiskolásoknak. Debrecen, Pedellus Bt, 1995., 35.o, 37.o
Pszeudo-kód
BE: N [N>0 egész]
S=0
Ciklus i=1-től N-ig
S=S+i
Ciklus vége
Ki: S
Programnyelv
Program Osszeg;
Uses Crt;
Var
i,S : integer;
Begin
S=0;
Writeln(’S=’,S);
If S>0 then
begin
For i:=1 to N do S=S+i;
end;
Writeln(S);
4
End.
Jackson módszer
Szekvencia (Pl.)
P Fogalmazás
P1 Bevezetés
P2 Tárgyalás
P3 Befejezés
Szelekció (Pl.)
P Papírlap
P1 Sima
P2 Vonalas
P3 Egyéb
P
P1
P2
P3
P
P1
P2
Iteráció (Pl.)
P Számok
P1 Szám feldolgozása
P
P3
P1
A probléma, illetve a megoldás szerkezetének ábrázolására alkalmas.
Alapfilozófia: Egy probléma logikai szerkezete egyértelműen előállítható az általa
kezelt vagy előállított adatok szerkezete alapján.
Egysége a struktúra, amely megadja, hogy egy magasabb szintű dolog hogyan
5
bomlik tovább komponensekre
Adjunk össze egy számsorozatot, melynek a végét egy negatív szám
jelzi!
1. az összeg kezdeti
beállítása
2. szám beolvasása
3. szám hozzáadása
az összeghez
4. negatív szám
feldolgozása,
összeg kiíratása
Számok
feldolgozása
Törzs
feldolgozása
Szám
feldolgozása
1
Negatív szám
feldolgozása
4
2
3
6
• 5-6. osztály:
• Algoritmusok megalapozása
• LOGO nyelv használata;
• „Robot” tanítása (8.dia);
• Cselekvésre késztető jelek bevezetése (9. dia)
• Konkrét kezdeti lépések
• Algoritmus leíró módszerek:
• Szöveges: természetes nyelvű leírással (hétköznapi életből
vett példák)
• Metanyelven: pszeudo-kód alkalmazása (életszerű példák,
vagy meserészlet)
• Grafikus metanyelven: folyamatábra, struktogram (10. dia)
• Alapalgoritmusokról még nem beszélhetünk,
Alapnyelv: LOGO
7
Feladat: Ház ablakainak tanítása rajzolása 2
8
2
Mészáros Tamásné: Informatika számítástechnika I., Budapest, Poli-Kvitt Kiadó 1992., 52.o
3
3.Kőrösiné
Mikis Márta, Mészáros Tamásné: Adatok és algoritmusok I., Budapest, Nemzeti Tankönyvkiadó, 2000., 4-5.o
9
Piroska és a farkas meserészlet algoritmizálása
… részlet … Befeküdt a farkas a nagymama ágyába és amikor
Piroska megérkezett, a farkas hamm – bekapta …
Pszeudo-kóddal
4. Mészáros Tamásné: Informatika számítástechnika I., Budapest, Poli-Kvitt Kiadó 1992. 54.o
10
• 7-8. osztály:
• Algoritmus leíró módszerek:
Metanyelven: pszeudo-kód alkalmazása
• Grafikus metanyelven: folyamatábra, struktogram
•
• Alapalgoritmusok
•
•
•
•
•
•
•
•
•
Összegzés, szorzás
Megszámlálás
Eldöntés
Kiválasztás
Maximum, minimum kiválasztás
Kiválogatás
Csere (12. dia)
Rendezés: minimum-, és maximum kiválasztásos (egyszerűsített)
Metszetképzés
• Játékok algoritmusa (számlétra; számkitaláló; kő, papír, olló)
11
• Alapnyelv: LOGO, Quick BASIC
Feladat: Válasszuk ki 10 szám közül a legnagyobbat!5
Feladat: Rendezd
nagyság szerint sorba
az osztály tanulóit! 5
12
5.Kőrösiné
Mikis Márta, Mészáros Tamásné: Adatok és algoritmusok I., Budapest, Nemzeti Tankönyvkiadó, 2000. 37.o
• 9-10. osztály:
• Algoritmus leíró módszerek:
•
•
•
Metanyelven: pszeudo-kód alkalmazása
Grafikus metanyelven: folyamatábra, struktogram
Programnyelv: PASCAL
• Alapalgoritmusok
•
•
•
•
•
•
•
•
•
•
Összegzés, szorzás
Megszámlálás
Eldöntés
Kiválogatás
Maximum, minimum kiválasztás
Csere
Tömb kezelő algoritmusok (tömbfeltöltés)
Metszetképzés
Rendezés: minimum-, és maximum kiválasztásos (hatékony) (14. dia)
Egyszerű kereső
• Emelt szintű algoritmusok:
•
•
•
•
Rendezés: , buborékos, beszúrásos,
Keresés:, lineáris, bináris
Összefuttatás
Backtrack
• Alapnyelv: Turbo Pascal és Visual Basic
13
6
6. Horváth Tibor, Kiss Marietta: Számítástechnika iskolásoknak II. Budapest, Nemzeti Tankönyvkiadó, 1996. 72-73.o
14
• Algoritmus leíró módszerek
• Szöveges: természetes nyelvű leírással (hétköznapi életből vett
példák)
• Metanyelven: pszeudo-kód alkalmazása
• Grafikus metanyelven: Jackson módszer, folyamatábra, struktogram
• Programnyelv: PASCAL
• Alapalgoritmusok
•
•
•
•
•
•
•
•
•
Összegzés, szorzás
Megszámlálás
Eldöntés
Kiválasztás
Kiválogatás
Maximum, minimum kiválasztás
Csere
Tömb kezelő algoritmusok (feltöltés, bejárás)
Metszetképzés
15
• Alapalgoritmusok
• Rendezés: minimum-, és maximum kiválasztásos, buborékos,
beszúró, gyorsrendezés, Shell beszúró rendezés (17. dia)
• Keresés: lineáris, bináris
• Összefuttatás
• Backtrack
• Fibonacci-sorozat (17. dia)
• Az euklideszi-algoritmus
• Prímszámkereső algoritmusok
• Haladó szintű algoritmusok
• Keresés: rendezett sorozaton, strázsás
• Javított buborékrendezés I II…, stb.
• Alapnyelv: Turbo Pascal, Turbo Basic, Quick Basic, Visual Basic,
JavaScript, C#, C++
16
Változó:
J, F0, F1, ÚjF, N: Egész;
Algoritmus
Be: N
F0:=0; F1:=1
Ha N=0, akkor Ki: F0
Ha N=1, akkor Ki: F1
Különben
Ismételd J:=2-től N-ig
ÚjF:=F0+F1
F0:=F1; F1:=ÚjF
Ismétlés vége
Ki: ÚjF
Elágazás vége
Algoritmus vége
7.
Eljárás ShellBeszúróRend(A: TömbTípus)
Változó I,J,D,E: egész; Változó X: ElemTípus
D:=N
Ismétel
D:=D/3+1
Ciklus E:=(1..D) ismétel
J:=E+D
Amíg J<=N ismétel
I:=J-D; X:=A[J]
Amíg (I>=1) és (X<A[I]) ismétel
A[I+D]:=A[I]
I:=I-D
Avége
A[I+D]:=X
J:=J+D
Avége
Cvége
Ivége D=1 esetén
Evége
Járdán Tamás, Pomaházi Sándor: Adatszerkezetek és algoritmusok. Eger, EKTF Líceum Kiadó, 1998. 103.o
8. Csőke Lajos, Garamhegyi Gábor: A számítógép-programozás logikai alapjai. Budapest, Nemzeti Tankönyvkiadó Rt., 1997.
7
17
„Ha sok cseresznyepaprikát madzagra fűzünk, abból lesz a
paprikakoszorú.
Ha viszont nem fűzzük fel őket, nem lesz belőlük koszorú.
Pedig a paprika ugyanannyi, éppoly piros, éppoly erős.
De mégse koszorú.
Csak a madzag tenné? Nem a madzag teszi. Az a madzag,
mint tudjuk, mellékes, harmadrangú valami.
Hát akkor mi?
Aki ezen elgondolkozik, s ügyel rá, hogy gondolatai ne
kalandozzanak össze-vissza, hanem helyes irányban
haladjanak nagy igazságoknak jöhet a nyomára.”
Örkény István: Az élet értelme – egyperces novellák
18