You are on page 1of 48

Az algoritmizálás és

programozás alapjai
Kátai Dorka 9.a

1
Az algoritmizálás
1. Az algoritmus fogalma
-Az algoritmus egyértelműen végrehajtható, megengedett lépésekből álló
módszer, műveletsor, vagy tevékenység, ami egy felmerült probléma
megoldására alkalmas, és véges sok lépés után befejeződik.
-Minden tevékenységünkkel algoritmusokat követünk: minden
mozdulatsorunk, de még a gondolkodásunk is algoritmizálható.
-Pl.: levélírás, napi rutin, recept elkészítése, bútor összeszerelése

2
Az algoritmus jellemzői, elvárásai
I. Egyértelműség: azonos feltételek között, mindig pontosan ugyanúgy
kell végrehajtódnia
II. Végesség követelménye: véges sok lépés után be kell
fejeződnie
III. Olyan utasításokat tartalmazzon, amelyet a végrehajtó megírt, és képes
végrehajtani
Az algoritmus bemenő és kimenő adatokkal foglalkozik.

3
Algoritmus elemei
• Minden algoritmus 3 alapvető szerkezeti elemből építhető fel:
1. Szekvencia: Egymás után végrehajtandó tevékenységek sorozata.
2. Szelekció: lépések, tevékenységek közti választás, másnéven:
választás, elágazás.
3. Iteráció (ismétlés, ciklus): valamely tevékenység sorozat ismételt
végrehajtása addig, amíg egy feltétel le nem állítja a ciklust.

4
Algoritmus leírásának módszerei
I. Hétköznapi nyelv/Mondatszerű leírás
II. Folyamatábra
III. Struktogramm

5
Hétköznapi nyelv
• Megfogalmazására betűket, szavakat, mondatokat használunk
pl.: Elmegyek moziba.
Veszek jegyet.
Veszek pattogatott kukoricát.
Megnézem a filmet.
Hazamegyek.

6
Folyamatábra
Jelei:
A folyamatábra indulási és Input* és output*
befejezési pontja tevékenységek

Elemi tevékenységek Jelzi a haladás irányát

Elágazás, választás

*Input: Bemenet, számítógépbe betáplált információ. *Output: kimenet, a betáplált adatokból a számítógép által létrehozott
7 és
kiadott információ.
Folyamatábra példák
1. Szekvencia 2. Szelekció 3. Iteráció
Start Start
Felkelek

Reggelizek Be: A; B Be: A; B

Igaz Hamis Hamis


Felöltözöm Vége
A>=B A>=B
Elmegyek Igaz
iskolába Írja be A-t Írja be B-t
Írja be A-t

Vége

8
Struktogramm példák
1. Szekvencia 2. Szelekció 3. Iteráció

Adatok kiírása Éhes vagyok?


Igen Nem Tévét nézek
Feladat megoldása Amíg jó adás megy
Eszem Eszem a tévében
később
Válaszadás

9
Ciklus
Ciklusnak nevezzük az olyan szerkezetet, amikor egy
adott műveletsort (ciklusmag) addig kell ismételni, amíg
egy adott feltétel (ciklusfeltétel) teljesül.

10
Ciklusok fajtái
I. Feltételes ciklusok
-Elöltesztelős ciklus:
Ha a ciklusfeltételt a ciklusmag előtt vizsgáljuk,
akkor a ciklust elöltesztelős ciklusnak nevezzük.
Lehetséges, hogy ez a ciklus egyszer sem fog lefutni.
Az elöltesztelős ciklus tipikus kulcsszava a while.

11
Ciklusok fajtái
I. Feltételes ciklusok
-Hátultesztelős ciklus:
Ha a ciklusfeltételt a ciklusmag után vizsgáljuk,
akkor a ciklust hátultesztelős ciklusnak nevezzük.
Mivel a feltételvizsgálat a ciklusmag után áll,
ezért a hátultesztelős ciklus legalább egyszer mindenképpen lefut.
Kulcsszavai: while, until

12
Ciklusok fajtái

II. Számlálós (FOR) ciklus


- A számláló típusú ciklusoknál az ismétlések számát
egy változó, úgynevezett ciklusváltozó követi nyomon.
- A FOR ciklusnak kisebb lehet a kifejezőereje,
de könnyebb olvasni ezért a használata javasolt
ott, ahol ez lehetséges.

13
Adat

A számítástechnikai eszközökkel rögzített, azokkal feldolgozható és


megjeleníthető információt adatnak nevezzük.
A szöveges információ legkisebb egysége a karakter.
Az információ legkisebb, önállóan még értelmes részét
elemi adatnak nevezzük.
Ezeket 3 csoportba oszthatjuk:
A szám, a szöveg és a logikai típusok.

14
Elemi adatok

Szöveges adatok Számadatok Logikai adatok


-betűkből, szavakból -számokból épülnek -két jelből áll:
épülnek fel fel
-igaz és hamis
-építőköve a betű -mennyiségi viszonyok -összehasonlító
-pl.: könyv kifejezésére használjuk művelet mellett
-számsorozatként tárolód- -pl.: TAJ-szám alkalmazzuk
nak, továbbítódnak a gépen
-pl.: ON-OFF jelzés

15
Adattípusok

• Az adattípusokat két csoportra oszthatjuk:


I. Egyszerű adattípusok
II. Összetett adattípusok

16
Egyszerű adattípusok

Néhány példa:
- Egész típusok: byte, shortint, smallint, integer, longint
Méretük: 8 -128 bit
- Valós típusok: real, float, single, double
Méretük: 48 -128 bit
- Logikai típus: boolean (true - false) Méretük: 1-32 bit
- Karakter: char. (egy karakter tárolására alkalmas)
Méretük: 8-32 bit

17
Összetett adattípusok

• Tömb
• Szöveg
• Verem
• Lista
• Rekord

18
Algoritmus tervezése

• Először is meg kell határoznunk a problémát,


a kezdőpontot és a célt.
Ezek az algoritmusunkat egységbe foglaló lépések.
• Utána át kell gondolni a felmerülő probléma- és hibalehetőségeket,
majd meg kell határozni a lehetséges lépéseket,
abban az esetben, ha a problémát kiküszöböltük,
és abban az esetben is, ha nem.
Az ilyen lépéstípust feltételnek nevezzük.

19
Algoritmus tervezése

• A feltételvizsgálatkor minden lehetséges megoldást figyelembe kell


venni, és ha szükséges, új lépéseket kell beiktatni,
vagy vissza kell térni egy előző lépéshez.
• Például: a tányér elmosásához van-e víz vagy mosogatószer.
Ha van minden, akkor mosogathatunk,
ha nincs mosogatószer, akkor le kell mennünk a boltba vásárolni.

20
Algoritmus tervezése

• Vannak olyan lépések, amelyeket már nem bontunk tovább.


Az ilyen lépéseket elemi lépéseknek nevezzük.
• Egy cselekvés vagy művelet nagyszámú elemi lépésre bontható.
Az elemi lépéseknek egymás után kell következniük,
és figyelembe kell venni, hogy az előtte álló lépés
végrehajtása után megvalósíthatóak-e.

21
Változó

Az algoritmusban szereplő változók egy-egy memóriaszeletet


azonosítanak, ahol az értékeik tárolódnak.
Ha egy változó értéket kap, akkor az egyenlőségjel
bal oldalán kell állnia.
Ekkor nem matematikai egyenlőségről, hanem értékadásról van
szó. Például:
Alma=alma+2
Alma=Alma+2 (az alma változó értéke 2-vel nőtt.)

22
Problémamegoldás folyamata

• Az algoritmus olyan műveletsor, amely egy felmerülő


probléma megoldására alkalmas.
Probléma Olyan helyzet, melyre jelen
ismereteink alapján nincs megoldás
Feladat Pontos, egyértelmű, tömör meghatározás

Részekre bontás az értelmes határig, majd a részek


Algoritmizálás
logikus összeillesztése

Folyamatábra A megoldási tevékenység szimbolikus ábrázolása

Végtermék Számítógépes program, egyértelmű kódsorozat,


látványos, kézzelfogható megoldás

23
Programozás

• Feladatsor megvalósítása egy számítógépen egy utasításokat és


döntéseket leíró nyelv segítségével.
• A programozás során a programozó egymás után
a gépbe írja az utasításokat.
• A programozás eredménye egy alkalmazás, program vagy operációs
rendszer.

24
Blokkprogramozás

A blokkprogramozás egy fejlesztői felület, amely


a programozás tanítását támogató blokk alapú
programnyelven készült, melyekben az
utasítások építőkockák és a tájékozódást színek és formák
segítik.

25
A program

• A program algoritmus kódolása adott programozási nyelven.

26
• Ma gyakorlatilag minden számítógép a végrehajtandó utasításokat
adatként memóriában tárolja.
• A számítógép belsejében a feldolgozó egység (CPU) végzi
a számításokat és vezérli a többi egységet.
• A központi feldolgozó egység által közvetlenül értelmezhető
adatsort gépi kódnak nevezzük.
• A CPU csak a nagyon egyszerű műveleteket
érti, ezért fordítóprogramot készítettek.

27
A fordítóprogram

• A fordítóprogram az ember számára olvasható és


értelmezhető utasítások sorozatát gépi kódra alakítja át.
• Az utasítások megadásához egy úgynevezett programozási nyelvet
kellett létrehozni.
• A programozási nyelv azokat az utasításokat és
szabályokat rögzíti, amelyekkel megadhatjuk az elvégzendő
műveletsort a fordítóprogram számára.

28
Fejlesztői környezetek

• A fordítóprogramok szerepét ma már átvették


a fejlesztői környezetek.
• A fejlesztői környezet olyan programozási eszközök,
könyvtárak és beállítások csoportja, melyekkel a 
szoftverfejlesztés
során a felhasznált programozási nyelven vagy nyelveken
létrehozott forráskódokat futáskész állapotba lehet hozni és azt
tesztelni.

29
Fejlesztői környezet

• Ezek a fordításon kívül számtalan egyéb


szolgáltatást nyújtanak.
Például: szövegszerkeztőt az utasítások beírásához,
hibakereső modult, a gépi kód optimalizálását stb.
• Egy adott fejlesztői környezet általában több nyelvet
is tud kezelni
• Pl.: Microsoft Visual Studio, Free Pascal, Borland Delphi

30
A programfejlesztés lépései

1. A feladat pontos meghatározása (specifikáció)


2. Algoritmus elkészítése
3. Kódolás
4. Tesztelés
5. Dokumentálás
6. Átadás
7. Karbantartás

31
Elemzés

• Egy feladat megoldásánál a legelső dolog, hogy


a feladatot kielemezzük. A nagy feladatot mindig
kisebb részekre bontjuk, azokat pedig még kisebb
részekre egészen addig, amíg már tovább nem lehet
bontani a feladatot, illetve ismert
részproblémákhoz nem jutunk.

32
Elemzés

• Az elemzés során felmérjük a helyzetet: mire van szükség,


mik a lehetőségek.
• A probléma megoldásának ebben a szakaszában a szóban forgó
problémát minden szempontból egyértelműen definiálni kell.
• Ehhez az szükséges, hogy a feladat megfogalmazása
legyen teljes, érthető, egyértelmű, pontos, tömör.
• Tisztázni kell, hogy milyen adatokat vár a
program, és milyen adatokat kell annak produkálnia.

33
A kódolás

A kódolás egyes lépések beírása egy konkrét


fejlesztői környezetben egy adott programozási nyelven.
Kódolásnak nevezzük azt a folyamatot, amikor egy
jelhalmaz minden elemének valamely szabály szerint egy
másik jelhalmaz elméletét feleltetjük meg.

34
Tesztelés

• A program az első változatban általában nem hibátlan,


ezért minden esetben szükséges a program
helyes működésének vizsgálata, a programtesztelés.
• A programozási hibák kétfélék lehetnek:
-Szintaktikai hiba
-Szemantikai hiba

35
Szintaktikai hiba

• Szintaktikai hibáról beszélünk, ha a programozó a


kódot nem a nyelv szabályainak megfelelően írja be.
• Az ilyen hibát már a fejlesztői környezet
is észreveszi, és jelzi.

36
Szemantikai hiba

• Szemantikai hibáról beszélünk, ha a program helyesen


van beírva, ám nem az előírt feladatot oldja meg.
• Teszteléskor azt vizsgálják, hogy több, alkalmas módon
megválasztott adatra mit reagál a program.

37
Hibajavítás alapelvei

- Találjuk meg a hiba helyét és okát pontosan!


- A hibát kell kijavítani és nem
csak a tüneteit megszüntetni!
- A hibajavítás után a programot alapos tesztnek
kell alávetni!
- Annak a valószínűsége, hogy egy hibát jól kijavítottunk,
a program méretével arányosan csökken.

38
Dokumentálás

• Egy programhoz két dokumentációt kell elkészíteni:


-Felhasználói kézikönyv
-Fejlesztői kézikönyv

39
Átadás és karbantartás

Átadás:
A felhasználó ekkor ismeri meg a véglegesnek
szánt verziót és veszi teljes mértékben birtokába.
Karbantartás:
Ha a program használata során rendelleneségek tapasztalhatók,
akkor a fejlesztők kötelessége azokat kijavítani,
a garanciális időn belül.

40
Lépésenkénti finomítás elve

• A finomítás azt jelenti, hogy a megoldandó


feladatot részfeladatokra bontjuk úgy, hogy önmagukban
megoldhatók legyenek.
• A lépésenkénti finomítás elvének az előnye,
hogy a program fejlesztése viszonylag könnyű,
és az esetlegesen jelentkező hibák könnyen
kijavíthatók, mert gyorsan kideríthető, hogy
a hiba melyik programrészben van.

41
Objektumorientált programozás

• Célszerű olyan programozási modellt alkalmazni, amely illeszkedik


a környező világ építőköveihez, leírja tulajdonságaikat és
viselkedésüket.
• Ezt az elvet valósítja meg az objektumorientált programozás,
röviden OOP.

42
Objektumorientált gondolkodás

• Az OOP olyan módszert nyújt a programozók számára,


amely lehetővé teszi a programok bonyolultságának csökkentését,
a megbízhatóság és a hatékonyság növelését.
Az OOP objektumokból építi fel a programot.
• Objektum: a valós világ elemeinek programozási modellje.
Az objektum adatokat tárol, és kérésre tevékenységeket végez.

43
Kérdéssor

1. Mi az az algoritmus?
2. Melyek az algoritmus elemei?
3. Melyek az algoritmus leírásának módszerei?
4. Melyek az algoritmus jellemzői?
5. Mi az a ciklus?
6. Milyen adattípusok vannak?
7. Mi a változó fogalma?

44
Kérdéssor

8. Mi az a programozás?
9. Mi a program fogalma?
10. Mi az a fejlesztői környezet?
11. Mikor beszélünk szintaktikai és szemantikai hibáról?
12. Mi az a lépésenkénti finomítás elve?
13. Mi az objektumorientált programozás fogalma?

45
Forrásjegyzék

• https://slideplayer.hu/slide/13021587/
• http://www.bocskaigimnazium.hu/Dokumentumok/algoritmusok.pdf
• https://users.iit.uni-miskolc.hu/~vargae/Segedlet/ElekT_ProgAlapfoga
lmak.pdf
• https://slideplayer.hu/slide/2198255/
• https://hu.wikipedia.org/wiki/Ciklus_(programoz%C3%A1s)#H%C3%A
1tultesztel%C5%91_ciklus
• http://info.nytta.hu/munkak/12b_ab/1107_adattipusok.pdf

46
Forrásjegyzék

• http://www.zmgzeg.sulinet.hu/bemutatkozunk/tankonyv/progismhal
ado/Proghalado1.pdf
• https://hu.wikipedia.org/wiki/Program_(informatika)
• https://wiki.prog.hu/wiki/Ciklus
• https://irh.inf.unideb.hu/~vargai/APA/Flowchart_hu.html
• https://slideplayer.hu/slide/2100097/
• Infó füzet és tankönyv

47
Köszönöm a figyelmet!

48

You might also like