hogyan csináljam?

Post on 16-Oct-2021

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Algoritmusok

Hogyan csináljam?Hogyan csináljam?

2

Az algoritmus fogalma

Algoritmusnak olyan pontos előírást Algoritmusnak olyan pontos előírást nevezünk, amely megmondja, hogy nevezünk, amely megmondja, hogy bizonyos feladat megoldásakor milyen bizonyos feladat megoldásakor milyen műveleteket milyen meghatározott műveleteket milyen meghatározott sorrendben kell elvégeznünk.sorrendben kell elvégeznünk.

Az elnevezés Mohamed ibn Musza Abu Az elnevezés Mohamed ibn Musza Abu Abdallah al-Hvárizmi al-Madzsúszi al-Abdallah al-Hvárizmi al-Madzsúszi al-Kutrubulli perzsa-arab tudós (800-850) Kutrubulli perzsa-arab tudós (800-850) nevének latinos formájából (Algorismus) nevének latinos formájából (Algorismus) alakult ki.alakult ki.

3

Az algoritmusok haszna

Egy összetett feladat megoldását általában Egy összetett feladat megoldását általában nagy tudású emberek tudják elvégezni.nagy tudású emberek tudják elvégezni.

Ha valaki elkészíti egy adott folyamat Ha valaki elkészíti egy adott folyamat algoritmusát, a megfelelő utasítások alapján algoritmusát, a megfelelő utasítások alapján kisebb képességű egyének is végre tudják kisebb képességű egyének is végre tudják hajtani a feladatokat.hajtani a feladatokat.

4

Az algoritmusok szerkezete

Az algoritmus Az algoritmus műveletekbőlműveletekből és és vezérlő vezérlő szerkezetekbőlszerkezetekből épül fel. épül fel.

A művelet egy olyan átalakítás A művelet egy olyan átalakítás (transzformáció) amely az adatok aktuális (transzformáció) amely az adatok aktuális értékeit felhasználva előállítja az adatok új értékeit felhasználva előállítja az adatok új értékeit.értékeit.

Például: egy változó értékének növelése Például: egy változó értékének növelése eggyel, az adatok sorbarendezése, stb.eggyel, az adatok sorbarendezése, stb.

5

Vezérlő szerkezetek

A vezérlő szerkezetek a feladat műveletekre A vezérlő szerkezetek a feladat műveletekre bontását, és ezek végrehajtási sorrendjét bontását, és ezek végrehajtási sorrendjét írják le.írják le.

Vezérlő szerkezetek:Vezérlő szerkezetek:

szekvencia (műveletsor),szekvencia (műveletsor),

szelekció (kiválasztás, döntés),szelekció (kiválasztás, döntés),

iteráció (ismétlés, ciklus)iteráció (ismétlés, ciklus)

6

Algoritmusok a programozásban

A program a számítógép „nyelvére” lefordított A program a számítógép „nyelvére” lefordított algoritmus.algoritmus.

A program fejlesztése során hasznos dolog az A program fejlesztése során hasznos dolog az ember számára érthető módon leírni a ember számára érthető módon leírni a megfelelő algoritmust.megfelelő algoritmust.

7

Az algoritmus leírásának módjai

Mondatszerű leírásMondatszerű leírás

Grafikus ábrázolásGrafikus ábrázolás

FolyamatábraFolyamatábra

StruktogramStruktogram

Jackson-ábraJackson-ábra

8

Példa

Írjunk algoritmust két szám hányadosának Írjunk algoritmust két szám hányadosának kiszámítására!kiszámítására!

9

Mondatszerű leírás

Be: x,y (osztandó, osztó)Be: x,y (osztandó, osztó)

Ha yHa y≠≠0 akkor0 akkor

z = xz = x//yy

Ki: zKi: z

KülönbenKülönben

Ki: Nincs megoldás!Ki: Nincs megoldás!

VégeVége

10

Struktogram

Be: x,yBe: x,y

yy≠≠00IgenIgen NemNem

z = xz = x//yy

Ki: zKi: z

Ki: Nincs Ki: Nincs megoldásmegoldás

11

Jackson-ábra

Osztás

Be: x,y y≠0

Jó eset o

z = x/y Ki: z

Rossz eset o

Ki: Hiba

Igen Nem

12

Folyamatábra

y≠0

z=x/y

Start

End

i

n

Be: x,y

Be: HibaKi: z

13

A folyamatábra elemei

Adatbevitel, kiírás (input, output)

Tevékenység (szekvencia)

Alprogram (eljárás, függvény)

Választás (szelekció)

Algoritmus eleje és vége

Kapcsolódási pont

14

A feladat megoldásának lépései

A feladat leírása, megértéseA feladat leírása, megértése

Az algoritmus felállításaAz algoritmus felállítása

Az algoritmus megvalósítása (programírás)Az algoritmus megvalósítása (programírás)

A program ellenőrzése (tesztelés)A program ellenőrzése (tesztelés)

15

A feladat elemzése

Részletes, pontos leírásRészletes, pontos leírás

Bemenő adatok (input)Bemenő adatok (input)

Kimenő eredmények (output)Kimenő eredmények (output)

A feladat modellezése (képletek)A feladat modellezése (képletek)

16

Az algoritmus tervezése

MegoldáskeresésMegoldáskeresés

Folyamatábra vagy más módszerFolyamatábra vagy más módszer

Helyességvizsgálat – az algoritmus elemzéseHelyességvizsgálat – az algoritmus elemzése

17

Az algoritmus megvalósítása

A programozási nyelv kiválasztása (C++)A programozási nyelv kiválasztása (C++)

A program megírása az adott nyelven.A program megírása az adott nyelven.

18

A program tesztelése

A logikai és programozói hibák kereséseA logikai és programozói hibák keresése

Egyes hibákat a fordító program jelez.Egyes hibákat a fordító program jelez.

Logikai hibák – a program tervezése közben Logikai hibák – a program tervezése közben jöttek létre – a fordító nem jelzi őket.jöttek létre – a fordító nem jelzi őket.

Hibakereső program – debugerHibakereső program – debuger

A program tesztelése fiktív és valós bemenő A program tesztelése fiktív és valós bemenő adatokkal.adatokkal.

19

Vezérlő szerkezetek

Az utasítások sorrendjét adják meg.Az utasítások sorrendjét adják meg.

Bármely feladat megoldásához elegendő a Bármely feladat megoldásához elegendő a következő három vezérlő szerkezet:következő három vezérlő szerkezet:

Lineáris szerkezet (szekvencia)Lineáris szerkezet (szekvencia)

Elágazás (szelekció)Elágazás (szelekció)

Ismétlés (iteráció, ciklus)Ismétlés (iteráció, ciklus)

20

Lineáris algoritmusok

MűveletsorMűveletsor

A vezérlés az előző A vezérlés az előző utasításról a utasításról a következőre következőre helyeződik.helyeződik.

Szaggatott vonal – a Szaggatott vonal – a lineáris struktúra lineáris struktúra elemei egységet elemei egységet képeznek.képeznek.

U1

U2

Un

21

Elágazásos algoritmus (szelekció)

Egyes utasítások elvégzése feltételhez kötött.Egyes utasítások elvégzése feltételhez kötött.

Két fajta elágazás:Két fajta elágazás:

Ha Ha feltételfeltétel akkor akkorutasításutasítás

Ha feltételHa feltétel akkor akkorutasítás_1utasítás_1

különbenkülönbenutasítás_2utasítás_2

A A feltételfeltétel logikai eredményt ad: logikai eredményt ad: igazigaz, , hamishamis

22

Ha ... akkor ...

Feltétel

Utasítás

Igaz

HamisNapsütés

Strand

Igaz

Hamis

23

Ha ... akkor ... különben ....

Feltétel

Utasítás_1

Igaz

Hamis

Utasítás_2

Napsütés

Strand

Igaz

Hamis

TV

24

Ciklus (iteráció)

Egy adott feladatot többször végzünk el.Egy adott feladatot többször végzünk el.

Az ismétlést egy feltétel vezérli.Az ismétlést egy feltétel vezérli.

A ciklus teste (magja): az ismétlődő utasítások.A ciklus teste (magja): az ismétlődő utasítások.

Két ciklusfajta:Két ciklusfajta:

elöltesztelőselöltesztelős

hátultesztelős ciklus.hátultesztelős ciklus.

25

Elöltesztelős ciklus

Ha a feltétel igaz, ismételd, különben hagyd Ha a feltétel igaz, ismételd, különben hagyd abba.abba.

Feltétel

Utasítás

Igaz

Hamis

26

Hátultesztelős ciklus

Ismételd, és vizsgáld meg a feltételt: ha hamis, Ismételd, és vizsgáld meg a feltételt: ha hamis, hagyd abba.hagyd abba.

Feltétel

Utasítás

Igaz Hamis

top related