57
Algoritmusok és Visual Basic programozás alapjai Algoritmusok és Visual Basic programozás alapjai ©MT ©MT Algoritmus Muhammad Ibn Músza Al-Hvárizmi csillagász, matematikus, ie. I. századi perzsa tudós nevéből származik, akinek egyik könyvét latinra fordították, és a nevét pontatlanul Algorithmus-nak írták. Algorithmus-nak írták. Algoritmus fogalma Műveletek tartalmát és sorrendjét meghatározó egyértelmű utasításrendszer, amely a megfelelő kiinduló adatokból a kívánt eredményre vezet.

Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Algoritmus Muhammad Ibn Músza Al-Hvárizmicsillagász, matematikus, ie. I. századi perzsa tudós nevéből származik, akinek egyik könyvét latinra fordították, és a nevét pontatlanul Algorithmus-nak írták.Algorithmus-nak írták.

Algoritmus fogalmaMűveletek tartalmát és sorrendjét meghatározó egyértelmű utasításrendszer, amely a megfelelő kiinduló adatokból a kívánt eredményre vezet.

Page 2: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Az algoritmus megadása során különböző műveleteket végezhetünk az adatokon, az adatok segítségével. A műveleteket (tevékenységeket) az alábbi módon csoportosíthatjuk:

A tevékenységek csoportosítása� Elemi műveletekAzok a tevékenységek, amelyek nem igényelnek magyarázatot, azonnal végrehajthatók. Ezen műveleteket a végrehajtó (a azonnal végrehajthatók. Ezen műveleteket a végrehajtó (a számítógép) ismeri, és azokat végre tudja hajtani.� Összetett műveletekAzok a tevékenységek, amelyek elemi tevékenységekből épülnek föl, tartalmukat mindig megkell magyarázni, maguk is egyszerűbb algoritmusokból épülnek föl.Ezen tevékenységeket a végrehajtó (a számítógép) nem ismeri, azok további magyarázatra várnak, ki kell bontani őket.

Page 3: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Tevékenységszerkezetek

(több művelet végrehajtása során a műveletek során a végrehajtás sorrendjét az alábbi módokon lehet szervezni)

1. Szekvencia a szekvenciát alkotó utasítások a megadás (leírás) sorrendjében végrehajtandókutasítás 1utasítás 2…

Page 4: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

2. Elágazás két (vagy több) műveletcsoport közül legfeljebb csak az egyiket kell végrehajtani. A döntés mindig valamilyen logikai feltételtől függenek, és annak ismeretében egyértelmű a döntés.

2/1: Egyszerű elágazás (egy utasításblokkból áll) az utasításblokk a feltételtől függően vagy végrehajtásra kerül, vagy nem.feltételtől függően vagy végrehajtásra kerül, vagy nem.

HA sötét_van AKKORkapcsold fel a villanytHVÉGE

Page 5: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

2/2: Összetett elágazás

2/2/a: két utasításblokkból álló összetett elágazásA két utasításblokk közül a feltételtől függően pontosan az egyik utasításblokk hajtódik végre.pontosan az egyik utasításblokk hajtódik végre.

HA meleg_van AKKORnyisd_ki_az_ablakotKÜLÖNBENkapcsold_le_a_kazántHVÉGE

Page 6: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

2/2/b: több utasításblokkból álló összetett elágazásA több utasításblokk közül legfeljebb az egyik kerül végrehajtásra -elképzelhető, hogy egyik feltétel sem teljesül. Ekkor- ha van KÜLÖNBEN ág, akkor az hajtódik végre- ha nincs KÜLÖNBEN ág, akkor egyik blokk sem hajtódik végre- ha több feltétel is teljesül, akkor sorrendben csak az első hajtódik végre

ELÁGAZÁS KEZDELÁGAZÁS KEZDHA kapható_túró AKKORsüss_túrós_sütitHA kapható_mák AKKORsüss_mákos_sütitHA kapható_dió AKKORsüss_diós_sütitKÜLÖNBENsüss_almás_sütitELÁGAZÁS VÉGE

Page 7: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

3. Ciklus egy feltételtől függően egy adott utasításblokk többszöri ismételt végrehajtását jelenti. Az utasításblokkot ciklusmagnak nevezzük. A feltételt ciklus vezérlő feltételnek.

Pozitív vezérlés elve: a ciklusmagot akkor kell végrehajtani, ha a vezérlő feltétel igaz.

Negatív vezérlés elve: a ciklusmagot akkor kell végrehajtani, ha a vezérlő feltétel hamis.vezérlő feltétel hamis.

Elöltesztelő ciklusok: a feltétel előbb értékelődik ki, majd megfelelő esetben végrehajtásra kerül aciklusmag „… előbb tesztel, aztán ciklusmag…”.

Hátultesztelő ciklusok: a ciklusmag végrehajtódik, majd kiértékelődik a ciklus vezérlő feltétel, ésmegfelelő esetben újra végrehajtásra kerül a ciklusmag.

Page 8: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

3/1: logikai ciklusok

3/1/a: logikai elöltesztelő pozitív vezérlésű ciklusok működése:1. HA a ciklus_vezérlő_feltétel igaz AKKOR2. ciklusmag_utasításainak_végrehajtása3. ugorj újra az 1. sorra3. ugorj újra az 1. sorra4. KÜLÖNBEN ciklus vége

3/1/b: logikai elöltesztelő negatív vezérlésű ciklusok működése:1. HA a ciklus_vezérlő_feltétel hamis AKKOR2. ciklusmag_utasításainak_végrehajtása3. ugorj újra az 1. sorra4. KÜLÖNBEN ciklus vége

Page 9: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

3/1/c: logikai hátultesztelő pozitív vezérlésű ciklusok működése:1. ciklusmag_utasításainak_végrehajtása2. HA a ciklus_vezérlő_feltétel igaz AKKOR ugorj újra az 1. sorra3. KÜLÖNBEN ciklus vége

3/1/d: logikai hátultesztelő negatív vezérlésű ciklusok működése:1. ciklusmag_utasításainak_végrehajtása2. HA a ciklus_vezérlő_feltétel hamis AKKOR ugorj újra az 1. sorra3. KÜLÖNBEN ciklus vége

Page 10: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

3/2 fix ismétlésszámú

3/2/a: fix ismétlésszámú ciklusISMÉTELD n-szerciklusmag utasításaiIVÉGEIVÉGE

- a ciklusmag utasításai a fejrészben megadott számszor hajtódnak végre

Page 11: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

3/2/b: számlálós ciklusISMÉTELD cv:=kezdőérték -től végérték -igciklusmag utasításaiIVÉGE

végrehajtása:1. lépés: ciklus változó (cv, amely egy egész típusú változó) felveszi a kezdőértéket2. lépés: HA a ciklusváltozó értéke kisebb, vagy egyenlő, mint a végérték AKKOR2. lépés: HA a ciklusváltozó értéke kisebb, vagy egyenlő, mint a végérték AKKOR3. lépés: ciklusmag utasításainak végrehajtása4. lépés: ciklusváltozó értékének automatikus növelése 1-el5. lépés. ugorj újra a 2. Lépésre6. lépés: KÜLÖNBEN ciklus vége

- a ciklusváltozó értéke a ciklus belsejében hozzáférhető (olvasható), de meg nem változtatható (nem írható) a ciklusváltozó értéke a 4. lépésben automatikusan változik. Általában 1-el nő, de ha ettől eltérő viselkedést várunk a ciklustól (pl. 1-el csökkenjen), azt a ciklus megadásakor jelezni kell.- a számlálós ciklusok esetén (elvileg) a végtelen ciklusba esés kizárt

Page 12: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Strukturált programozás: olyan algoritmusok készítése, amely csak a fenti

három tevékenységszerkezet tartalmaz három tevékenységszerkezet tartalmaz (szekvencia, szelekció, iteráció).

Matematikusok bizonyították, hogy minden algoritmus elkészíthető csak ezen három

szerkezet segítségével.

Page 13: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Algoritmusleíró eszközök1.FolyamatábraSzabályok:. Minden folyamatábra pontosan egy START

szimbólumot tartalmaz. . Minden folyamatábra legalább egy STOP szimbólumot tartalmaz. . Minden folyamatábra-szimbólumba pontosan egy irányított él vezet be, kivéve a START szimbólumot, melybe nem vezet be él.. Minden folyamatábra-szimbólumból pontosan annyi irányított él vezet ki, amennyit a mellékelt ábrán jelöltünk (vagyis mindegyikből pontosan egy vezet ki, kivéve az elágazás szimbólumot, melyből kettő, és kivéve a STOP szimbólumot, melyből egy sem).. Minden folyamatábra-szimbólumba vezet irányított élsorozat a START szimbólumból.. Minden folyamatábra szimbólumból vezet irányított élsorozat legalább egy STOP szimbólumba.

Page 14: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

A folyamatábrával nem csak strukturált algoritmusok írhatók le. Ahhoz, hogy ellenkezője ne történhessen, az alábbiakra kell ügyelni:- azon feltételes elágazások, melyek nem ciklust jelölnek, a „Nem” és az „Igen” ágak egy pontban kell hogy találkozzanak- Nem vezethet be irányított él a ciklusok magjába, sem feltételes elágazások ágainak belsejébe.elágazások ágainak belsejébe.

2. Struktogramm

Dobozolós módszer. Csak strukturált algoritmusok írhatók le segítségével. Hátránya, hogy előre „jól” kell dönteni a kiinduló téglalap méretéről. Az algoritmus bővítése során ugyaniskönnyen előfordulhat, hogy „kicsi” lesz valamelyik téglalap.

Page 15: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

3. Leíró nyelv

Mondatszerű leíró eszköz, mely nem teljesen szabványosított, de könnyen elsajátítható.Csak strukturált algoritmusok írhatók le vele.

http://vizypeti.googlepages.com/bme2oldalon

Algoritmusok és Adatstrukturak.pdf

Bővebben az algoritmusokról:

Page 16: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

A másodfokú egyenlet megoldásának algoritmusát az itt látható blokk­diagram mutatja.

Page 17: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Visual Basic program készítésének menete

A program indítása

Page 18: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

A New Project ablakban a Standard EXEkijelölést elfogadjuk és megnyomjuk a Megnyitás gombot.Megnyitás gombot.

Hatására megjelenik a szerkesztői alakban a Form1 objektum.

Page 19: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

A projekthez adjunk egy modult a Project / Add Module menüpont kiválasztásával, majd az Add Module ablakban a Module kijelölést Module kijelölést elfogadva megnyomjuk a Megnyitás gombot.

Page 20: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

A Formot kitöröljük a projektből a következő

módon:

1. Kijelöljük a Form1-et2. A Project/Remove Form1 menüpontot válasszuk ki és a menüpontot válasszuk ki és a Form1 törlődik a projectből.

Page 21: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Page 22: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Visual Basic változónév

A változónév betűvel (angol ábécé betűi) kezdődik, tartalmazhat számokat, aláhúzás jeleket, és további betűket, a hossza maximum 255 karakter. A Visual Basic nem különbözteti meg egymástól a kis-és a nagybetűket. és a nagybetűket.

Például:Osszeg, Atlag, Max_index, dbA Visual Basic nyelvben a hosszú utasítást vesszőnél új sorba folytathatjuk szóköz aláhúzás és újsor alkalmazásával.

Lásd az alábbi deklarációs utasítást!

Program sorának folytatása új sorban :Option ExplicitDim Osszeg As Integer, Atlag As Double, _

Max_index As Integer

Page 23: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Változók típusai

Típus változó tartalmaInteger -Egész számInteger -Egész számSingle -Egyszeres pontos, lebegőpontos számDouble -Dupla pontos, lebegőpontos szám String -Sztring: karakter, karaktersorozatBoolean -Logikai érték (True - igaz, False – hamis)

Page 24: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

(Tizedes pont vagy vessző operációs rendszerbeli beállítástól függ.)

szám: 12, -3,56, 1,4E-2, 3,5E4

szöveg: "alma „

logikai érték: True, False

Numerikus változó: egész, vagy valós számot tartalmaz.Az E után hatványkitevőt adhatunk meg.

Szöveges változó: "" jelek között karaktersorozat

Page 25: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Értékadás

változónév = konstans vagy kifejezés

Page 26: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Numerikus adatok átalakítása szöveggé:A CStr függvény használatával.

Dim adat As Integer, szoveg As StringAdat = 2Adat = 2Szoveg = Cstr(Adat)

Page 27: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Karaktersorozat összefűzése

Karaktersorozatokat a + vagy az & jellel fűzhetjük össze.

MsgBox eredmény megjelenítésére alkalmas:Formája:Formája:

MsgBox "szöveg", vbOkOnly," fejléc szövege"

Page 28: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Page 29: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Változó értékének beolvasása

A változónak InputBox függvénnyel is adhatunk értéket

változó = InputBox("belső szöveg", "ablak fejléce", "kezdő érték")

A kezdő értékadás nem kötelező:változó = InputBox("belső szöveg", "ablak fejléce", "")vagyváltozó = InputBox("belső szöveg", "ablak fejléce")

Page 30: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Page 31: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Az InputBox sztring típusú adatot ad vissza, az adatot a bal oldali változónak megfelelően kell átalakítani:

Dim ValosAdat As DoubleValosAdat= CDbl(InputBox("V: ","Adat","3,5"))

Dim EgeszAadat As IntegerEgeszAdat = CInt(InputBox("E: ", "Adat", "2"))

Page 32: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Page 33: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Konstans deklarálása

Const Név1 = érték1, Név2 = érték2

Const Pi = 3.141592654

Const G=9,81

Page 34: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

OperátorokA műveletek képzéséhez az alábbi operátorokat használhatjuk: Példa: Eredmény:

Összeadás: + 2.6 + 3 5.6

Kivonás: – 8-13 -5

Szorzás: * 3*2 6Szorzás: * 3*2 6

Osztás: / 15/2 7.5

Egészek osztása: \ 15\2 7

Maradék képzés (modulus) Mod 16 Mod 2 0

Hatványozás: ^ 2^3 8

Page 35: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Műveletek sorrendjeA Visual Basic precedencia-szabálya:

elsődleges az ellentett képzés: –

hatványozás: ^

szorzás, osztás: *, /

egészek osztása: \

modulus: Mod

összeadás, kivonás: +,–

sztringek összeadása: &

Ha el akarunk térni a precedenciától, akkor zárójelet kell alkalmazunk.

Page 36: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Függvények

Fontosabb matematikai függvények:Abs(x) x abszolút értékeAtn(x) x arkusz tangenseCos(x) radiánban megadott szög koszinuszaSin(x) radiánban megadott szög szinuszaExp(x) ex értéke (e = 2.72…)Exp(x) ex értéke (e = 2.72…)Fix(x) a tizedes jegyek elhagyásával kapott egész

Egész számInt(x) az x egész része, amely nem nagyobb az x-nélLog(x) ln x (természetes alapú logaritmus)Sgn(x) előjel függvény

Sgn(x) =1, ha x>0, -1, ha x<0, 0, ha az x = 0Sqr(x) x gyökeTan(x) radiánban megadott szög tangense

Page 37: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Page 38: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Az Option Explicitutasítással kötelezővé tesszük a változók deklarációját a programban.

Page 39: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Véletlenszám előállítása

A Randomize új kezdőértékre állítja be a véletlen szám generátort.

Az Rnd () függvény egy véletlen számot állít elő 0 és kisebb mint 1 tartományban.

Veletlenszam = Rnd()Veletlenszam = Rnd()A véletlen szám valós szám, de a feladatokban láthatunk módszert

egész véletlen szám generálására.

Max és Min közötti véletlen szám:V = Int((Max – Min +1)* Rnd()) + Min1-90 közötti egész véletlen szám generálása:Lotto = Int(90 * Rnd()) +1

Page 40: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Ötször „futtatva”…

Page 41: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

MintafeladatOlvassunk be egy valós számot, számítsuk ki a köbét és a köbgyökét:

Page 42: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

SzelekciókA szelekció válogatást jelent, a feltétel teljesülése esetén hajtjuk

végre a kiválasztott utasításcsoportot.Egyszerű feltétel

A legegyszerűbb esetben két mennyiség összehasonlítását jelenti

Relációs operátorok< kisebb , > nagyobb<= kisebb, vagy egyenlő

>= nagyobb, vagy egyenlő= egyenlő , <> nem egyenlő

Page 43: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Az egyágú szelekció:

ha (If) a feltétel teljesül,akkor a Then utáni utasításokat hajtja végre.

If feltétel thenUtasítások

End If

Page 44: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Ha a értéke nagyobb mint b, akkor az ered legyen a két adat összege:

Page 45: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Kétirányú szelekció:

Ha a feltétel teljesül, akkor a Then utáni Utasítások1 különben az Else utáni Utasítások2hajtja végre.

If feltétel thenUtasítások1

ElseUtasítások2

End If

Page 46: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Ha a értéke nagyobb mint b, akkor az ered legyen a két adat összege, különben a kétkülönben a kétadat szorzata:

Page 47: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Többirányú szelekció:Láncolt If

If feltétel thenUtasítások1

Else If feltétel2 ThenElse If feltétel2 ThenUtasítások2

…ElseUtasításokn

End If

Page 48: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

A beolvasott egész adatról eldönti, hogy pozitív, negatív vagy zérus:

Page 49: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Többirányú szelekció: Select Case utasítás jobban áttekinthető. A kifejezéslista elemeit vesszővel választjuk el.Amelyik kifejezéslistánál teljesül a Amelyik kifejezéslistánál teljesül a tesztkifejezés azon Case utasítás utáni utasítások lesznek végrehajtva,Ha a kifejezéslisták közül egyik sem teljesül és van Case else ág, akkor azok az utasítások lesznek végrehajtva.

Page 50: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

A program futásainak eredménye:

Page 51: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Logikai műveleti jelek:Tagadás: Not

Not Logikai kifejezés logikai kifejezés értékét ellenkezőre változtatja

Logikai ÉS: AndLogikai kifejezés 1 And Logikai kifejezés 2Az And logikai ÉS akkor lesz igaz (True), ha mind a két logikai Az And logikai ÉS akkor lesz igaz (True), ha mind a két logikai kifejezés igaz, különben bármelyik logikai kifejezés hamis, hamis lesz (False) az eredmény.

Logikai VAGY: OR Logikai kifejezés 1 Or Logikai kifejezés 2Az Or logikai VAGY, akkor lesz igaz (True), ha bármelyik logikai kifejezés igaz, csak akkor hamis (False), ha mindkét logikai kifejezés hamis.

Page 52: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Összetett feltételekEgy logikai értéket előállító kifejezés eléggé bonyolult lehet. Szerepelhetnek benne aritmetikai kifejezések, relációs operátorok és logikai műveletek.logikai műveletek.A relációkat logikai műveleti jellel is összekacsolhatjuk:(reláció1) logikai műveleti jel (reláció 2)Pl.: (A < 3) OR (B >12)

Page 53: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Page 54: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

IsNumeric függvény igaz értéket ad vissza, ha a paraméterében lévő változó számértéket tartalmaz, különben hamis értéket:

If IsNumeric(változó) ThenIf IsNumeric(változó) Then‘ számot tartalmaz

Else‘ nem számot tartalmaz

End If

Egy aposztróf használata: ‘ megjegyzés a programban

Page 55: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Page 56: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

FELADATOlvassunk be egy pontszámot, ellenőrizzük, hogy

numerikus-e, valamint a pontszám beleesik-e a megadott határok (0-100) közé.

Adjunk hibajelzést, ha nem numerikus, vagy ha nincs az intervallumban.intervallumban.

Ponthatárok Jegy0 - 50 151 - 65 266 - 75 376 – 85 486 – 100 5

A pontszám alapján jelenítsük meg a jegyet szövegesen.

Page 57: Algoritmus - Eötvös Loránd Universitypvoksan.web.elte.hu/prezentaciok/programozas/algoritmus_prg.pdf · ©MT Algoritmusok és Visual Basic programozás alapjai 3. Ciklus egy feltételtől

Algoritmusok és Visual Basic programozás alapjaiAlgoritmusok és Visual Basic programozás alapjai©MT©MT

Option ExplicitSub Main()Dim pontszam As Integer, s As Strings = InputBox("Pontszam", "Pontszam beolvasasa", "")If IsNumeric(s) Thenpontszam = CInt(s)If pontszam >= 0 And pontszam <= 100 ThenIf pontszam >= 0 And pontszam <= 50 Then

MsgBox "elégtelen", vbOKOnly, "Osztályzat"ElseIf pontszam >= 51 And pontszam <= 65 Then

MsgBox "elégséges", vbOKOnly, "Osztályzat"ElseIf pontszam >= 66 And pontszam <= 75 Then

MsgBox "közepes", vbOKOnly, "Osztályzat"ElseIf pontszam >= 76 And pontszam <= 85 Then

MsgBox "jó", vbOKOnly, "Osztályzat"ElseIf pontszam >= 86 And pontszam <= 100 Then

MsgBox "jeles", vbOKOnly, "Osztályzat"End IfElseMsgBox "Hibás adat!", vbOKOnly, "Hibajelzés"End IfElseMsgBox "Nem numerikus adat!", vbOKOnly, "Hibajelzés"

End IfEnd Sub