150 likes | 340 Views
Számítástechnika Levelezőknek (BMEVESAAL04). Szervetlen és Analitikai Kémia Tanszék, Kémiai Informatika Csoport. VBA összefoglaló. Tárgy előadó i : Dr. Bárkai János és Kollárné Dr. Hunek Klára. Tárgy honlapja: http://www.kit.bme.hu
E N D
Számítástechnika Levelezőknek (BMEVESAAL04) Szervetlen és Analitikai Kémia Tanszék, Kémiai Informatika Csoport VBA összefoglaló Tárgy előadói:Dr. Bárkai János és Kollárné Dr. Hunek Klára Tárgy honlapja: http://www.kit.bme.hu http://knight.kit.bme.hu
Programozás • a program az utasításokat sorban hajtja végre, kivéve….(ld. később) • pontosan olyan, mintha egy könyvet olvasnánk, amiben le van írva, hogy sorjában mit kell tennünk éppen most, beleértve, hogy hova lapozzunk a következő teendő elolvasásához • kicsit „kínai”, de meg lehet szokni • sokféle kínai van, de ha egyet ismer az ember, az nagyon segít a többi megismerésében • a programozás filozófiáját érdemes megtanulni
Start Kiír: „x” „x köbe” x=2 kiír: x, x3 x=x+1 x<=8 ? igen nem Stop Egy „programocska” A blokkdiagram: A VBA program: Amit a program kiír
Egy „programocska” VBA program felépítése: Sub <neve>( ) <esetleg deklarációk> <utasítások> End Sub A deklaráció a változók típusát adja meg: Ha pl. a ás b számok, és értékük 1 ill. 2, akkor a+b kifejezés értéke 3 lesz. De ha a ás b típusa string, és értékük „1” ill. „2”, akkor a+b értéke „12” lesz. Amit a program kiír
Változók • A program az adatokat változókban tárolja (pl. kis papírfecnik, amikre számokat/betűket írunk) • pl. ha a=2, akkor x=a^3-15=-7 • vagy, pl. ha b=8, akkor y=3*b/2=12 • a számítógép az a, b,vagy bármely másváltozót mindig az értékével helyettesíti • akkor is, ha nem adtunk neki értéket, csak akkor nem tudjuk, milyen értékkel…
Változók • A számítógép szempontjából fontos a változó típusa a műveletek miatt • egész : integer • tört: single, double • szöveg: string • pl. ha x egészés x=5/2, akkor 2 leszxértéke • pl. ha y törtés y=5/2, akkor 2.5 leszyértéke • de pl. „nótás”/2 nem lesz „félnótás”…
Műveletek • Matematikai alapműveletek • x=1+2 • y=18-2*x • x=y/24 • String műveletek • ha s=„osztogat”, akkor • s=„f”+s • után s=„fosztogat” • Kiiratás • cells(1,1)=„Sziasztok!!” • Adatbeolvasás cellából • A=cells(1,1)
Visual Basic for Excel – elméleti összefoglaló Változók típusai, kifejezések, értékadás, feltételes utasítás Néhány alaptípus: Integer(%) Double(#) Single(!) String($) Boolean Típus deklarálása NEM kötelező! Alapműveletek: + - * / \ ^ (aritmetikai) And Or Not (logikai) Reláció jelek: = < > <= >= <> Aritmetikai kifejezés: a*a*a*a - 81 Logikai kifejezés: fa*fm<0 Értékadás: változó = kifejezés Pl: fa = a^4 - 81 Egy feltételes utasítás: If fa * fm < 0 Then b = m: fb = fm Else a = m: fa = fm End If VBA program felépítése: Sub <neve>( ) <esetleg deklarációk> <utasítások> End Sub
Visual Basic for Excel – elméleti összefoglaló megad: X , kiír: X igen X páros ? Y = X*X nem kiír: Y IF <log.kif.> THEN<utasítás> Kiírás:(2,4);(-4,16 );(3,16 ); (–1,16 ) IF<log.kif.> THEN <ut.1>ELSE<ut.2> Kiírás:(2,4 );(-4,16 );(3,11 );(-1,7 ) feltételesen végrehajtandó utasításés feltételes utasítás Az X értékek (mindkét esetben): 2 , -4 , 3 , -1 megad: X , kiír: X igen X páros ? Y = X*X nem Y = X + 8 kiír: Y
Sub <neve> () Dim k As Integer, n% Dim cim As String, nevem$ Dim a As Double, b # cim=“mi ez?” : nevem=“Jancsi” k=3 : n=k-15 a=atn(1) b=cos(4*a)+2.5 End Sub Visual Basic for Excel – elméleti összefoglaló Deklarációk: Adatbevitel: x = Inputbox(“x?”) y = Inputbox(“y értéke”) Adatbevitel és konverzió: x = CDbl(Inputbox(“x?”)) y = CInt(Inputbox(“y értéke”))
elől tesztelő ciklus Ciklusok start start megad: n k=1 megad: n k=1 nem k<=n ? vége megad: NEV, Z1 , Z2 igen megad: NEV, Z1 , Z2 ZH=(Z1+Z2)/2 kiír: NEV , ZH ZH=(Z1+Z2)/2 kiír: NEV , ZH k=k+1 igen k<=n ? k=k+1 nem vége KétZH átlagának kiszámítása n hallgató esetén. • hátul tesztelő ciklus Melyiknél mi történik, ha n=0 ?
elől tesztelő ciklus Ciklusok start megad: n k=1 Visual Basic program részlet nem n=InputBox(“n=?”) FOR k=1 TO n NEV=InputBox(“NEV=?”) Z1=InputBox(“Z1=?”) Z2=InputBox(“Z2=?”): ZH=Z1/2+Z2/2 Cells(k,1)=NEV : Cells(k,2)=ZH NEXTk vége k<=n ? igen megad: NEV, Z1 , Z2 ZH=(Z1+Z2)/2 kiír: NEV , ZH k=k+1 ForTo - Next ciklus KétZH átlagának kiszámítása n hallgató esetén.
Ciklusok start megad: n k=1 megad: NEV, Z1 , Z2 ZH=(Z1+Z2)/2 kiír: NEV , ZH k=k+1 igen k<=n ? nem vége Do - Loop Whileciklus KétZH átlagának kiszámítása n hallgató esetén. Visual Basic program részlet n=InputBox(“n=?”): k=1 Do NEV=InputBox(“NEV=?”) Z1=InputBox(“Z1=?”) Z2=InputBox(“Z2=?”) ZH=Z1/2+Z2/2 : Cells(k,1)=NEV Cells(k,2)=ZH : k=k+1 LoopWhile k<=n • hátul tesztelő ciklus
Ciklusok elől tesztelő ciklus start megad: n k=1 nem vége k<=n ? igen megad: NEV, Z1 , Z2 ZH=(Z1+Z2)/2 kiír: NEV , ZH k=k+1 Do While - Loopciklus KétZH átlagának kiszámítása n hallgató esetén. Visual Basic program részlet n=InputBox(“n=?”): k=1 DoWhilek<=n NEV=InputBox(“NEV=?”) Z1=InputBox(“Z1=?”) Z2=InputBox(“Z2=?”) ZH=Z1/2+Z2/2 : Cells(k,1)=NEV Cells(k,2)=ZH : k=k+1 Loop
Visual Basic for Excel – elméleti összefoglaló igen ? nem igen nem ? nem ? igen igen ? nem Az eddig tanult UTASÍTÁSOKösszefoglalása Értékadás (és egyéb, “sorban végrehajtandó” utasítások): Feltételes(en végrehajtandó): Ciklus: És még: (átirányítás), ADAT BE- és KIVITEL !!