2013. február 12., kedd
SZF 21 - Programozás módszertan
Programozás módszertan
Algoritmusok
-----------------
- A legrégebbi előkerült algoritmus i.e. IV. század, Euklidész -> két természetes szám közös osztója.
a., Programozás
--------------------
- Mennyiségek, információk közötti kapcsolat közötti leírása és e kapcsolatok kiértékelése, ahol értékeket helyettesítünk nevek helyébe.
Pl.: x+y
x=2
y=3
2+3=5
Műveletek:
- Minden adaton lehet egyszerű műveleteket végrehajtani.
Pl.: számokra definiált : összeadás, kivonás, szorzás, osztás
-> Egy programozó ezekből az egyszerű műveletekből állítja össze a programot.
Információk
- Az információt adatként írjuk le.
- Több féle adat van:
- Egyszerű (atomi, oszthatatlan) -> pl. számok
- Összetett, mint pl. a számsorozatok
- Az adat tulajdonképpen megmutatja az információt, de fontos, hogy az adat értelmezése ránk van bízva.
Pl: 13,56 -> hőmérséklet, idő, távolság
Programozás gyakorlati megközelítés:
------------------------------------------------
- A problémát felbontjuk egyszerű a számítógép által is megértett lépésekre
- A program: Egy feladat megoldására szolgáló, a számítógép számára értelmezhető utasítássorozat.
Program elemei:
- Bemenet
- Kimenet
- Operátorok, műveletek
- Változók
==> bemeneteken történik meg a művelet és ebből kapjuk meg a kimenetet : bemenet->művelet->kimenet
Fizikálisan bontva:
Bemenetek:
- billentyűzet
- egér
- fájl
- port (USB, soros, stb)
Kimenet:
- képernyő
- fájl
- port
Változók:
- adatokat változókban tároljuk
Jellemzője:
- Név (egy hely, ahol tárolunk)
- Érték (a tárolt adat)
- Értékadás (adott helyre beteszünk egy adatot)
Adatok (egyszerű)
- Milyen típusú adatokat tudunk tárolni?
- Számok (bináris)
- Egész
- Valós
- Komplex
- Karakterek
--> Ugyanaz az adat többféle képpen is tárolható. Egy szám pl. 1 lehet számadat is és karakter is.
- Származtatott, összetett adatok
- Karakterláncok, string, szöveg
- Vektorok
- Tömbök, mátrixok
- listák
- stb.
--> ezek programnyelvtől függenek
Műveletek, operátorok
- Adatok manipulálása
- Aritmetikai: +,-,*,/
- Relációs műveletek: <=,>, ....
- Logikai: igen, nem, és, vagy
- Műveletek sorrendje
pl.: a=6+12*5
- Általában belról jobbra végezzük el a műveleteket
- Precedencia elve: léteznek olyan műveletek, amelyek elsőbbséget élveznek
- A sorrendet meghatározhatja a zárójelezés is:
a=(6+12)*5
a=6+(12*5)
Program algoritmizálása
-------------------------------
- Egy program több algoritmusból is állhat
Az algoritmusok jellemzői:
- Elvégezhető (elemi, végrehajtható) lépésekből áll
- Meghatározott (minden lépés pontosan definiált)
- Véges (véges számú lépés után véget ér)
- Meghatározott input halmazra érvényes
- Megfelelő outputot eredményez
- Egy feladat megoldására szolgál
Programozás módszertanok áttekintése
1., Monolitikus programozás
- Régi módszer, kb. 60-as években alakult ki
- Jellemzői: egy programozó ír egy programot, programoknak nincsen szerkezete
!!! FONTOS !!!
A jó program legfontosabb kritériumai:
- Jól áttekinthető szerkezete van
- Jól dokumentált
- "Bizonyítható" módon azt csinálja, amit kell
2., Moduláris programozás
- Oszd meg és uralkodj elv!
a., Top-down dekompozíció
- A feladatot részfeladatokra bontjuk, majd azokat további részfeladatokra, míg kezelhető méretű részproblémákhoz nem jutunk.
b., Bottom-up kompozíció
- Szintén részfeladatokat oldunk meg, de előre nem tudható, hogy hogyan fognak kapcsolódni egymáshoz.
Moduláris programozás előnyei:
- Részprogramok könnyen áttekinthetők
- Könnyebben megírható
- Könnyebben tesztelhető
- Több modul írható egyidőben (párhuzamos problémamegoldás)
- Könnyebben javítható
- A modulok szabványosíthatók
- A modulok külön tárolhatók
- Újrafelhasználhatók
Megjegyzés:
Moduláris programozásban előfordulhatnak olyan programozási feladatok, melyek közösek bizonyos modulokban vagy elengedhetetlenek a program futásához, illetve a modulok megfelelő működéséhez. Ezeket a programozási elemeket komponenseknek hívjuk.
Struktúrált programozás
- Top-down dekompozíciót egészít ki
- az eredeti feladat részfeladatra bontása-> keletkezik egy absztrakt program, mely egy absztrakt számítógépen működik és mivel az eredeti nagy specifikációból indulunk ki (tehát nem a részekre szedettből), bizonyíthatóan működik.
Minden algoritmikus program vezérlési szerkezete leírható 3 vezérlőszerkezet segítségével: (Boehm, Jackopini)
1., elágazás
2., döntés
3., ciklus
Mills tovább gondolása alapján:
- Minden program szerkezete egy szekvencia
- Minden szekvencia elemnek egy belépési és egy kilépési pontja lehet
- Minden szekvencia belülről tetszőlegesen struktúrálható.
Az algoritmusok ábrázolása, leírása
--------------------------------------------
1., Pszeudo kód -> Mondatszerű leírás. (Részletes specifikáció)
2., Folyamatábra -> Blokkdiagram
3., Stuktogram -> egy téglalap tagolása, amely a teljes feladat részekre bontását jelenti
Vezérlő szerkezetek
Ugrás
Feltételes elágazás
Többszörös elágazás
Számláló ciklus
Elöltesztelő ciklus
Hátultesztelő ciklus
(Alprogramok)
Ugrás
• A program egy megadott utasítánál folytatódik,
nem a következőnél
• Nehezen követhető struktúrát eredményez
• Nem használjuk!!!
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése