Transcript Algoritmus

Algoritmizálás
Oberhuber Balázs
Algoritmus készítés
• Algoritmus
–
–
–
–
–
Utasítások sorozata
Egyértelműen végrehajthatók
Adatokkal dolgozik
Bemenő (input) adatok
Kimenő (output) adatok
Algoritmus készítés
• Algoritmus
–
–
–
–
Véges számú lépésből áll
Hatékony
Elronthatatlan
Felhasználóbarát
A programkészítés lépései
• Feladatkitűzés
– A feladat megfogalmazása hétköznapi, vagy a
meg-rendelő szakmai nyelvén. A
megvalósíthatóságot a rendszerszervező vizsgálja.
• Specifikáció
– A rendszerszervező, a programozó és a
megrendelő meghatározzák az alkalmazás
feltételeit és határait. Itt határozzák meg a
javadalmazást, és az elkészítés várható idejét.
A programkészítés lépései
• Algoritmustervezés
– A program tervezője kialakítja a menürendszert,
elkészíti a képernyőtervet, meghatározza az
adatábrázolási módokat és a feladatokat
megvalósító algoritmusokat.
• Kódolás
– A program megvalósítása már egy konkrét
programozási nyelven történik.
A programkészítés lépései
• Tesztelés
– Alapos előkészítés esetén mechanikusan
elvégezhető lépés. A korábbi lépések folyamán
összegyűjtött, esetleges szélső és extrém
mintaadatok bevitelével ellenőrzik a program
működését.
A programkészítés lépései
• Dokumentálás
– Egy programhoz két dokumentációt kell
elkészíteni.
• A Felhasználói kézikönyv tartalmazza a program
céljának közérthető nyelven történő leírását, az
installálás menetét, egy menürendszer leírást, bemutatja
a jellegzetesebb képernyőképeket.
• A Fejlesztői kézikönyv tartalmazza az összes korábbi
fázisban keletkezett dokumentációt.
A programkészítés lépései
• Átadás
– A felhasználó ekkor ismeri meg a véglegesnek
szánt verziót, és veszi teljes mértékben birtokába.
A nagyobb programok esetén a fejlesztők kiképzik
a későbbi kezelőket a használatra.
• Karbantartás
– Ha a program használata folyamán
rendellenességek tapasztalhatók, akkor a fejlesztők
kötelessége azokat kijavítani a garanciális időn
belül.
Algoritmusleíró eszközök
• Mondatszerű leírás
• Folyamatábra
• Struktogram
Mondatszerű leírás
• Beolvasó és kiíró utasítások
– Formájuk
• BE: változók felsorolása
• KI: kifejezések felsorolása
• Értékadó utasítás
– Formája
• Változó := kifejezés
– A Változó felveszi a Kifejezés aktuális értékét
Mondatszerű leírás
• Elágazások (feltételes utasítások)
– Feltételes utasításvégrehajtás (egyirányú elágazás)
• Formája
– Ha <feltétel> akkor <utasítás>
• Ha a feltétel igaz, akkor az utasítás végrehajtódik. Ha
hamis, akkor nem hajtódik végre
– Kétirányú elágazás
• Formája
– Ha <feltétel> akkor <utasítás1>
Különben <utasítás2>
Elágazás vége
• Ha a feltétel igaz, akkor utasítás1 hajtódik végre, ha nem,
akkor az utasítás2.
Mondatszerű leírás
• Elágazások (feltételes utasítások)
– Többirányú elágazás
• Formája
– Elágazás kezdete
<feltétel_1> esetén <utasítás_1>
<feltétel_2> esetén <utasítás_2>
<feltétel_n> esetén <utasítás_n>
Egyébként <utasítás_egyéb>
Elágazás vége
• A legelső teljesülő feltételhez tartozó utasítás kerül végrehajtásra. Ha egyik feltétel sem teljesül akkor utasítás_egyéb
hajtódik végre.
• Bármely esetben az elágazás vége után folytatódik a program
Mondatszerű leírás
• Ciklusszervező utasítások
– Számlálós ciklus
• Formája
– Ciklus <ciklusváltozó>:=<kezdőértéktől> <végértékig> <lépésközzel>
ciklusmag utasításai
Ciklus vége
• A ciklus változója a kezdőértékről indul és lépésközzel változik
a végérték eléréséig. A három együttesen határozza meg, hogy
hányszor kerül végrehajtásra a ciklusmag.
Mondatszerű leírás
• Ciklusszervező utasítások
– Elöltesztelő ciklus
• Formája
– Ciklus amíg <feltétel>
ciklusmag utasításai
Ciklus vége
• Amíg a feltétel teljesül, addig a ciklusmag végrehajtásra kerül,
ha már nem teljesül akkor a ciklus vége után folytatódik a
program.
Mondatszerű leírás
• Ciklusszervező utasítások
– Hátultesztelő ciklus
• Formája
– Ciklus
ciklusmag utasításai
Amíg <feltétel> (Ciklus vége)
• A ciklusmag mindaddig végrehajtásra kerül, amíg a feltétel
nem teljesül. Ha teljesül, akkor a ciklus vége után folytatódik
a program.
• A ciklusmag egyszer mindenképp végrehajtódik.
Folyamatábra
START
• Határszimbólumok
– A program elejét és a végét jelzik
STOP
Folyamatábra
Be:változó(k)
Adatbevitel
Ki: változó(k)
Adatkiírás
Folyamatábra
• Tevékenység
–
–
–
–
Értékadó
Műveletvégrehajtás
Aritmetikai kifejezés kiértékelése
Stb.
Folyamatábra
• Döntéscsomópont
I
F
eltétel
N
– Az F feltételtől függően a
vezérlés az igaz vagy hamis
ágon folytatódik
Folyamatábra
Számlálós ciklus
Folyamatábra
Csatlakozási pontok
1.
1.
Struktogram
Tevékenység (szekvencia)
Tevékenység1
Tevékenység 2
Struktogram
Szelekció (egyágú)
Igen
Tevékenység(ek)
Feltétel
Struktogram
Szelekció (kétágú)
Igen
Feltétel
Tevékenység(ek)
Nem
Tevékenység(ek)
Struktogram
Szelekció (többágú)
Feltétel
Feltétel1
Tevék.1
Feltétel2...
Tevék.2
Egyébként
...
Struktogram
Ciklus (számlálós)
Ciklusváltozó:= ….. tól ….ig
Ciklusmag
Struktogram
Ciklus (elöltesztelő)
Feltétel
Ciklusmag
Struktogram
Ciklus (hátultesztelő)
Ciklusmag
Feltétel
Adattípusok
• Egyszerű
• Összetett
Egyszerű adattípusok
• Egész
–
–
–
–
Byte
Word
Integer
Longint
• Valós
– Real
• Karakter
– Char
– String
• Logikai
– Boolean
Egyszerű adattípusok
• Egész
– Egész számok halmaza
– Előjeles egészek
• Túlcsordulás fordulhat elő!
– 2 bájtot foglal
– Példa
• A:=153
B:= - 25
Egyszerű adattípusok
• Valós
–
–
–
–
Valós számok halmaza
Lebegőpontos formátum
6 bájtot foglal
Példa
• A:=13.125
Egyszerű adattípusok
• Karakter
– Bármilyen ASCII kódú karakter
– 1 bájtot foglal
– Példa:
• A:=‘Y’
Egyszerű adattípusok
• Logikai
– Két értéke van:
• IGAZ (TRUE) (1)
• HAMIS (FALSE) (0)
– 1 bájtot foglal
Összetett adattípusok
•
•
•
•
•
Tömb
Szöveg
Verem
Lista
Rekord
A lekvár
• Menj el a nagymamához!
• Kérjél tőle 5 üveg baracklekvárt!
• Hozd haza a lekvárokat!
A lekvár (irány a nagyi)
• Menj ki a házból!
• Várj a buszra!
• Ha jön 10 percen belül, akkor Szállj fel a
buszra!
Különben menj gyalog!
• Csengess be a nagymamához!
A lekvár (a beszerzés)
• Menj el a nagymamához!
• Ha otthon van akkor kérj tőle 5 üveg
baracklekvárt!
Különben vegyél a boltban 5 üveg
baracklekvárt!
• Hozd haza a lekvárokat!
A lekvár (boltban)
•
•
•
•
Menj be a boltba!
Vegyél le a polcról 5 üveg baracklekvárt!
Fizesd ki a lekvárokat!
Tedd a lekvárokat a szatyrodba!
A lekvár (a polcnál)
• Csináld ötször:
– Vegyél le a polcról 1 üveg baracklekvárt!
– Tedd a kosaradba a lekvárt!
A lekvár (az egész program)
Menj el a nagymamához!
• Menj ki a házból!
• Várj a buszra!
• Ha jön 10 percen belül, akkor Szállj fel a buszra!
Különben Menj gyalog!
• Csengess be a nagymamához!
Kérjél tőle 5 üveg baracklekvárt!
• Ha otthon van akkor Kérj tőle 5 üveg baracklekvárt!
Különben Menj be a boltba!
– Csináld ötször:
• Vegyél le a polcról 1 üveg baracklekvárt!
• Tedd a kosaradba a lekvárt!
– Fizesd ki a lekvárokat!
– Tedd a lekvárokat a szatyrodba!
Hozd haza a lekvárokat!