MT Algoritmusok és V Algoritmusok és isual Basic programoz ás alapjai isual Basic programoz Algoritmus Muhammad Ibn Músza Al-Hvárizmi

Hasonló dokumentumok
Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

A C# programozási nyelv alapjai

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Webprogramozás szakkör

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Vezérlési szerkezetek

Szoftvertervezés és -fejlesztés I.

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

Java II. I A Java programozási nyelv alapelemei

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

3 A C programozási nyelv szintaktikai egységei

Algoritmizálás és adatmodellezés tanítása 1. előadás

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

LibreOffice Makró Basic

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

A C# PROGRAMOZÁSI NYELV

Occam 1. Készítette: Szabó Éva

Algoritmusok és Adatstruktúrák

LEGO robotok. XII. rész

Bevezetés a programozásba I.

Raszteres elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

Bevezetés a C programozásba

1. Jelölje meg az összes igaz állítást a következők közül!

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Szelekció. Döntéshozatal

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

A programozás alapjai

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Az algoritmusok alapelemei

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Java II. I A Java programozási nyelv alapelemei

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Java programozási nyelv

Informatika terméktervezőknek

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Objektumorientált Programozás III.

BASH SCRIPT SHELL JEGYZETEK

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

S z á m í t ó g é p e s a l a p i s m e r e t e k

A fizetendő összegből a 35 év fölötti tulajdonos 20 % kedvezményt kap.

Készítette: Nagy Tibor István

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Nézzük tovább a lexikai egységeket!

PASzSz. Dr. Kotsis Domokos

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

BASH script programozás II. Vezérlési szerkezetek

Szkriptnyelvek. 1. UNIX shell

Programozás I gyakorlat

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

4. GYAKORLAT. Rövid elméleti összefoglaló. Írjunk függvényt a téglalap területének kiszámítására: Visual Basic függvény

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Algoritmizálás + kódolás C++ nyelven és Pascalban

Komputeralgebra Rendszerek

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Alapok. #!/bin/bash

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Algoritmusok tervezése

Python bevezető foglalkozás Python bevezető foglalkozás

A JavaScript főbb tulajdonságai

Intermec EasyCoder PM4i nyomtató programozásának alapjai Intermec Fingerprint v8.00 nyelven

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Gyakorló feladatok Gyakorló feladatok

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Bevezetés az informatikába

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Pénzügyi algoritmusok

Algoritmusok. Dr. Iványi Péter

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Maximum kiválasztás tömbben

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

A C programozási nyelv I. Bevezetés

Programozási alapismeretek 1. előadás

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

A C programozási nyelv I. Bevezetés

B I T M A N B I v: T M A N

Programozás alapjai 3.Gy: C elágazások, ciklusok P R O

AWK programozás, minták, vezérlési szerkezetek

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Kiterjesztések sek szemantikája

munkafüzet open eseményéhez

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Programozás Minta programterv a 1. házi feladathoz 1.

Szoftvertechnológia alapjai Java előadások

B I T M A N B I v: T M A N

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Bevezetés a programozásba I.

Algoritmusok pszeudókód... 1

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Programozási alapok jegyzet

Programozás alapjai (ANSI C)

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

SEGÉDLET ADATKEZELÉS MS EXCEL-BEN. Tároljuk az adatokat Excel munkalapon. Megjegyzés: A feladatokat MS Office Excel ban oldottuk meg.

Vezérlési szerkezetek. Szelekció Ciklusok

Átírás:

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. 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.

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űveletek Azok a tevékenységek, amelyek nem igényelnek magyarázatot, 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űveletek Azok 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.

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ók utasítás 1 utasítás 2

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. HA sötét_van AKKOR kapcsold fel a villanyt HVÉGE

2/2: Összetett elágazás 2/2/a: két utasításblokkból álló összetett elágazás A 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. HA meleg_van AKKOR nyisd_ki_az_ablakot KÜLÖNBEN kapcsold_le_a_kazánt HVÉGE

2/2/b: több utasításblokkból álló összetett elágazás A 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 KEZD HA kapható_túró AKKOR süss_túrós_sütit HA kapható_mák AKKOR süss_mákos_sütit HA kapható_dió AKKOR süss_diós_sütit KÜLÖNBEN süss_almás_sütit ELÁGAZÁS VÉGE

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. Elöltesztelő ciklusok: a feltétel előbb értékelődik ki, majd megfelelő esetben végrehajtásra kerül a ciklusmag 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, és megfelelő esetben újra végrehajtásra kerül a ciklusmag.

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 AKKOR 2. ciklusmag_utasításainak_végrehajtása 3. ugorj újra az 1. sorra 4. 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 AKKOR 2. ciklusmag_utasításainak_végrehajtása 3. ugorj újra az 1. sorra 4. KÜLÖNBEN ciklus vége

3/1/c: logikai hátultesztelő pozitív vezérlésű ciklusok működése: 1. ciklusmag_utasításainak_végrehajtása 2. HA a ciklus_vezérlő_feltétel igaz AKKOR ugorj újra az 1. sorra 3. 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ása 2. HA a ciklus_vezérlő_feltétel hamis AKKOR ugorj újra az 1. sorra 3. KÜLÖNBEN ciklus vége

3/2 fix ismétlésszámú 3/2/a: fix ismétlésszámú ciklus ISMÉTELD n-szer ciklusmag utasításai IVÉGE - a ciklusmag utasításai a fejrészben megadott számszor hajtódnak végre

3/2/b: számlálós ciklus ISMÉTELD cv:=kezdőérték -től végérték -ig ciklusmag utasításai IVÉGE végrehajtása: 1. lépés: ciklus változó (cv, amely egy egész típusú változó) felveszi a kezdőértéket 2. lépés: HA a ciklusváltozó értéke kisebb, vagy egyenlő, mint a végérték AKKOR 3. lépés: ciklusmag utasításainak végrehajtása 4. lépés: ciklusváltozó értékének automatikus növelése 1-el 5. lépés. ugorj újra a 2. Lépésre 6. 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

Strukturált programozás: olyan algoritmusok készítése, amely csak a fenti 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.

Algoritmusleíró eszközök 1.Folyamatábra Szabá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ábraszimbó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ábraszimbó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.

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. 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 ugyanis könnyen előfordulhat, hogy kicsi lesz valamelyik téglalap.

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. Bővebben az algoritmusokról: http://vizypeti.googlepages.com/bme2 oldalon Algoritmusok és Adatstrukturak.pdf

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

Visual Basic program készítésének menete A program indítása

A New Project ablakban a Standard EXE kijelölést elfogadjuk és megnyomjuk a Megnyitás gombot.. Hatására megjelenik a szerkesztői alakban a Form1 objektum.

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 elfogadva megnyomjuk a Megnyitás gombot.

A Formot kitöröljük a projektből a következő módon: 1. Kijelöljük a Form1-et 2. A Project/Remove Form1 menüpontot válasszuk ki és a Form1 törlődik a projectből.

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. Például: Osszeg, Atlag, Max_index, db A 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 Explicit Dim Osszeg As Integer, Atlag As Double, _ Max_index As Integer

Változók típusai Típus változó tartalma Integer -Egész szám Single -Egyszeres pontos, lebegőpontos szám Double -Dupla pontos, lebegőpontos szám String -Sztring: karakter, karaktersorozat Boolean -Logikai érték (True - igaz, False hamis)

(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

Értékadás változónév = konstans vagy kifejezés

Numerikus adatok átalakítása szöveggé: A CStr függvény használatával. Dim adat As Integer, szoveg As String Adat = 2 Szoveg = Cstr(Adat)

Karaktersorozat összefűzése Karaktersorozatokat a + vagy az & jellel fűzhetjük össze. MsgBox eredmény megjelenítésére alkalmas: Formája: MsgBox "szöveg", vbokonly," fejléc szövege"

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", "") vagy változó = InputBox("belső szöveg", "ablak fejléce")

Az InputBox sztring típusú adatot ad vissza, az adatot a bal oldali változónak megfelelően kell átalakítani: Dim ValosAdat As Double ValosAdat= CDbl(InputBox("V: ","Adat","3,5")) Dim EgeszAadat As Integer EgeszAdat = CInt(InputBox("E: ", "Adat", "2"))

Konstans deklarálása Const Név1 = érték1, Név2 = érték2 Const Pi = 3.141592654 Const G=9,81

Operátorok A műveletek képzéséhez az alábbi operátorokat használhatjuk: Példa: Eredmény: Összeadás: Kivonás: Szorzás: Osztás: Egészek osztása: + 2.6 + 3 5.6 8-13 -5 * 3*2 6 / 15/2 7.5 \ 15\2 7 Maradék képzés (modulus) Mod 16 Mod 2 0 Hatványozás: ^ 2^3 8

Műveletek sorrendje A 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.

Függvények Fontosabb matematikai függvények: Abs(x) x abszolút értéke Atn(x) x arkusz tangense Cos(x) radiánban megadott szög koszinusza Sin(x) radiánban megadott szög szinusza Exp(x) ex értéke (e = 2.72 ) Fix(x) a tizedes jegyek elhagyásával kapott egész Egész szám Int(x) az x egész része, amely nem nagyobb az x-nél Log(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 = 0 Sqr(x) x gyöke Tan(x) radiánban megadott szög tangense

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

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() 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()) + Min 1-90 közötti egész véletlen szám generálása: Lotto = Int(90 * Rnd()) +1

Ötször futtatva

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

Szelekciók A 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ő

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 then Utasítások End If

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

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ások2 hajtja végre. If feltétel then Utasítások1 Else Utasítások2 End If

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

Többirányú szelekció: Láncolt If If feltétel then Utasítások1 Else If feltétel2 Then Utasítások2 Else Utasításokn End If

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

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 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.

A program futásainak eredménye:

Logikai műveleti jelek: Tagadás: Not Not Logikai kifejezés logikai kifejezés értékét ellenkezőre változtatja Logikai ÉS: And Logikai kifejezés 1 And Logikai kifejezés 2 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 2 Az 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.

Összetett feltételek Egy 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. 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)

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ó) Then számot tartalmaz Else nem számot tartalmaz End If Egy aposztróf használata: megjegyzés a programban

FELADAT Olvassunk 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 Ponthatárok Jegy 0-50 1 51-65 2 66-75 3 76 85 4 86 100 5 intervallumban. A pontszám alapján jelenítsük meg a jegyet szövegesen.

Option Explicit Sub Main() Dim pontszam As Integer, s As String s = InputBox("Pontszam", "Pontszam beolvasasa", "") If IsNumeric(s) Then pontszam = CInt(s) If pontszam >= 0 And pontszam <= 100 Then If 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 If Else MsgBox "Hibás adat!", vbokonly, "Hibajelzés" End If Else MsgBox "Nem numerikus adat!", vbokonly, "Hibajelzés" End If End Sub