Számítástechnika. A Számítástechnika c. tárgy beosztása 2018/2019/I. tanévben. Szervetlen és Analitikai Kémia Tanszék

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

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

Visual Basic elméleti leti alapok 2.

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

Egyszerű példaprogramok gyakorláshoz

Számítástechnika labor feladatok a 2012/2013. tanév őszi félévében

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

A C# programozási nyelv alapjai

Maximum kiválasztás tömbben

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

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Programozás alapjai. 5. előadás

Informatika terméktervezőknek

Smalltalk 2. Készítette: Szabó Éva

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

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

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

A programozás alapjai

VBA. Visual Basic for Applications

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

Számítástechnika BSc

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

Imperatív programozás

Szkriptnyelvek. 1. UNIX shell

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

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

PASzSz. Dr. Kotsis Domokos

Option Explicit Option Base 1

A szerzõrõl... xi Bevezetés... xiii

Delphi programozás IV.

Szkriptnyelvek II. Perl programok

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

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

A C programozási nyelv I. Bevezetés

A JavaScript főbb tulajdonságai

Java II. I A Java programozási nyelv alapelemei

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

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

LibreOffice Makró Basic

Algoritmusok Tervezése. 5. Előadás Visual Basic 2. Dr. Bécsi Tamás

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

A C programozási nyelv I. Bevezetés

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

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

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

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

3. Gyakorlat Ismerkedés a Java nyelvvel

Webprogramozás szakkör

INFORMATIKAI ALAPISMERETEK

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Matematikai programok

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

Programozás 3. Dr. Iványi Péter

Funkcionális Nyelvek 2 (MSc)

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

Java II. I A Java programozási nyelv alapelemei

7. fejezet: Mutatók és tömbök

Mintavételes szabályozás mikrovezérlő segítségével

A C# PROGRAMOZÁSI NYELV

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

Programozás II. 2. Dr. Iványi Péter

LOGISZTIKAI ADATBÁZIS RENDSZEREK EXCEL ALAPOK

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

Készítette: Nagy Tibor István

Haladó DBMS ismeretek 1

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Felhasználó által definiált adattípus

Kiegészítő előadás. Vizsgabemutató VBA. Dr. Kallós Gábor, Fehérvári Arnold, Pusztai Pál Krankovits Melinda. Széchenyi István Egyetem

Delphi programozás III.

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

1. Alapok. Programozás II

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

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

A C programozási nyelv II. Utasítások. A függvény.

Szoftvertervezés és -fejlesztés I.

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

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

ABB Teach Pendant programozás segédlet

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

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

Matematikai programok

BASH SCRIPT SHELL JEGYZETEK

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

Python tanfolyam Python bevezető I. rész

Programozási nyelvek Java

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

INFORMATIKAI ALAPISMERETEK

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

Objektumorientált Programozás III.

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

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Bevezetés a programozásba

1. Alapok. #!/bin/bash

Stack Vezérlés szerkezet Adat 2.

Eljárások és függvények

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

Átírás:

A Számítástechnika c tárgy beosztása 2018/2019/I tanévben Számítástechnika Szervetlen és Analitikai Kémia Tanszék Tanszékvezető: Dr Nyulászi László Tárgy előadója: Dr Simon András (Ch ép fszt 33, 35) email: andrassimon@mailbmehu, sim1971@gmailcom tel: 4632293, 4633411 Tárgy rendszergazda: Rippel Endre (Ch C2) http://wwwkitbmehu 1 Ajánlott irodalom: 1 Gyakorlatokon való részvétel Csak három labor mulasztható Kivétel, aki ZH-eredmények miatt ismétel, nekik a részvétel csak ajánlott Félév végén egy labor pótlása lehetséges 2 ZH-eredmény Az elérhető 15-ből legalább 5 pont, illetve összesen legalább 12 pont megszerzése Utolsó héten pót-zh pótolható, eredménye a gyengébb ZH eredményét felülírja 2 Mivel foglalkozunk a laborokon? Kovalcsik Géza: Az Excel programozása, ComputerBooks, Budapest, 2008, ISBN 963-618-332-5 Balogh Gábor: Visual Basic és Excel programozás, ComputerBooks, Budapest, 2002, ISBN 963-618-229-9 Kuzmina Jekatyerina, Dr Tamás Péter, Tóth Bertalan: Programozzunk Visual Basic rendszerben, ComputerBooks, Budapest, 2006, ISBN 963-618308-2 Billo E Joseph: Excel for Chemists: A Comprehensive Guide, WileyVCH,New York Chicester Weinheim Brisbane Singapore Toronto, 2001, ISBN 0-471-39462-9 (Paperback), 0-471-22058-2 (Electronic) Excel alapok, cellahivatkozás, munkalapfüggvény, diagramvarázsló, trendvonal, Solver VBA alapok, típus, értékadás, kiíratás cellába, beolvasás billentyűről, If -Then, Select Case, If - Then - Else Go To, Do - Loop, programírás blokkdiagramról For - Next (Sorozat elemeinek összegzése); Function Tömbök, beolvasás fájlból, adatok file-ba írása (Skalárszorzat; Vektor hossza; két vektor szöge; max, min elem) Szubrutin írása, makró rögzítése Word, Chemsketch Billo E Joseph: Excel for scientists and engineers, John Wiley & Sons, Inc, Hoboken, New Jersey, ISBN: 978-0-471-38734-3 3 4 1

Programozás A gyakorlat célja: adatkezelésben illetve programozásban alapismeretek és elemi jártasság megszerzése, későbbi félévek során a laborokban a jegyzőkönyvek elkészítéséhez való készségek megszerzése Operációs rendszerek: Programnyelvek: Windows Mac OS Linux Unix VMS Visual Basic (VBA) Fortran Turbo Pascal C C++ Szoftverek: MS Office (Open Office) utasítások pontosan, sorrendben végrehajtandó sorozata 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 célja hosszabb számítások elvégzése ill kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az (esetleg rövid és egyszerű) számítást akarjuk sokszor elvégeztetni (pl sokrészecske probléma) Word Excel Power Point Rasmol Chemsketch Chemdraw Origin Isis Draw Chemwindow Hyperchem a programozás filozófiáját érdemes megtanulni egy új programnyelvet mindig sokkal könnyebb megtanulni, ha az ember ismer már egy másikat programnyelv hatékony tanulása gyakorlattal!!! 5 6 7 8 A programozás elemei változók, tömbök (típus, deklaráció) értékadás, műveletek (változó típustól függ) beolvasás, kiíratás, elmentés ciklus utasítás - egyszerű ciklus - feltételes ciklus feltételes utasítás függvény hívása - külső függvény - belső függvény eljárás (szubrutin) hívása 2

Egy programocska Egy programocska A blokkdiagram: Start VBA program felépítése: A VBA program: Sub <neve> ( ) <deklarációk> <utasítások> Kiír: x x köbe x=2 kiír: x, x3 x=x+1 A deklaráció a változók típusát és dimenzióját adja meg x<=8? egyes deklarációk elválasztása: vesszővel vagy új utasításként Stop Amit a program kiír 9 Amit a program kiír utasítások elválasztása: kettősponttal vagy új sorba írva 10 Változók Program végrehajtása A program az adatokat változókban tárolja 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ás változót mindig az értékével helyettesíti akkor is, ha adtunk neki értéket, csak akkor tudjuk, milyen értékkel 11 12 3

Változók típusai A számítógép szempontjából fontos a változó típusa a műveletek miatt - egész : - tört: - szöveg: - logikai: integer, long single, double string boolean pl ha x egész és x=5,4 + 2, akkor 7 lesz x értéke pl ha y tört és y =5,4 + 2, akkor 7,4 lesz y értéke pl ha z szöveg és z =5,4 + 2, akkor 5,42 lesz z értéke 13 Változótípus deklarálása Állandók deklarálása A program során használt változók típusát a program legelején deklarálni kell ( kötelező de erősen ajánlott)! Változó típusának deklarálása: Dim utasítás Dim változónév As típus Dim változónév típusjel Integer Long Single Double String Boolean % &! # $ 14 Dim a As Double, n As Integer Dim igaze As Boolean Dim x#, y# Dim z As Double, nevem$ 15 Const struzenet as string * 10 = "Üzenet" Const intszam as integer = 17 Enum Felsorolas hetfo kedd szerda csutortok pentek szombat vasarnap End Enum Enum Felsorolas szam1 = 600 szam2 = 950 szam3 = 1400 End Enum Dim Oraber1 as Felsorolas Dim Jutalom1 as Felsorolas Oraber1 = szam1 Jutalom1 = 01 * szam1 16 4

Tömbök Tömbök A tömb összetartozó változók együttese (pl vektor koordinátái, mátrix elemei) ugyanaz a változónév jelöli a tömb egyes elemeit, a megkülönböztetést a tömb indexe(i) jelentik Dim Matrix() as single Dim intszam1%, intszam2 as integer intszam1 = 5 intszam2 = 3 Dinamikus tömb ReDim Matrix(intSzam1,intSzam2) intszam1 = 4 intszam2 = 4 ReDim Matrix(intSzam1,intSzam2) Nem ugyanaz vagy A hatás! ReDim Preserve Matrix(5,intSzam2) Tömb deklarálása: Dim utasítás Dim változónév(max_index1[, max_index2]) Dim Nevek(30) as string * 20 Dim Matrix(4,3) as single Dim Reszlet%(3 To 5) Dim s$(100), y(100) As Boolean } } Option Base 1 17 18 Felhasználói adattípus (Rekordtípusú változó) Type Dolgozok Veznev as string * 30 Kernev as string * 20 SzulDate as Date AnyjaNeve as string * 40 BelepDate as Date Fizetes as single End Type Dim Alkalm(100) as Dolgozok Alkalm(1)Veznev = "Kovacs" Alkalm(1)Belep = #1/1/2003# VAGY: Dim Adatok1(100,3) as string Dim Adatok2(100,2) as date Dim Adatok3(100) as single Objektumok elnevezése Dim obja as object Set obja = Workbooks("Munkafüzet1")Worksheets(1)Cells(1,1) Dim rnga as range Set rnga = Workbooks(1)Worksheets(1)Range(" A1 ") 19 obja = "Alma" vagy rnga = "Alma" 20 5

Műveletek Értékadás Az = utasítás segítségével ( legyen egyenlő ) - aritmetikai műveletek: + változó = érték n = 15 s = Ez a szöveg a = b/2 x = x+1 s = False z = q = x <= 4 Az = pontosat azt jelenti, amit matematikában megszoktunk, a két oldal most felcserélhető! x = 15 y=3 x=y x = 15 y=3 y=x most x és y értéke is 3! most x és y értéke is 15! - logikai műveletek: And Or * / Not - string műveletek: + aritmetikai műveletek x = 1+2 x = 18-2*y x = (18-2)*y x = y/24 x = x+y x = y^3 logikai műveletek x = y Or z x = y And z x = Not y \ ^ Integer Long Single Double Boolean String string műveletekha s= osztogat, akkor s= f + s után s értéke fosztogat x = Not y And z x = Not (y And z) 21 22 23 24 6

Sub Osszehasonlitas Eredmény DebugPrint "Motor" Like "M*" DebugPrint "Motor" Like "?o*" DebugPrint "3-as" Like "#-as" DebugPrint "u-as" Like "#-as" DebugPrint "3-as" Like "?-as" DebugPrint "u-as" Like "?-as" DebugPrint "Jani" Like "Jan[ió]" DebugPrint "Jani" Like "[A-M]*" DebugPrint "Jani" Like "[!A-M]*" False False Option Compare Text 25 26 Beolvasás, kiíratás - Beolvasás Excel cellából / kiíratás Excel cellába - Beolvasás fájlból / kiíratás fájlba - Beolvasás InputBox segítségével 1 Cellaműveletek: az Excel cellákra mint változókra hivatkozhatunk Cells(1,1) - A1 Cells(1,2) - B1 Cells(2,1) - A2 27 Fordított a sorrend mint az Excel-ben! cellahivatkozás: Cells(sor száma, oszlop száma) x = Cells(1,3) y = 5 + 3*Cells(2,5) Cells(3,2) = x + 3*y Cells(1,1) = Not b Cells(2,4) = 3*Cells(1,4) 28 7

Dim fnev As String 2 Olvasás fájlból / írás fájlba Open fájlnév For megnyitás típusa As #I/O csatorna száma Input #I/O csatorna száma beolvasandó változók Write # I/O csatorna száma kiirandó változók Close # I/O csatorna száma fájl neve -ben vagy szöveg változó Input Output Append Open vektorokdat For Input As #1 Open osszegvektordat For Output As #2 Input #1, v1(1), v1(2), v1(3) Input #1, v2(1), v2(2), v2(3) Write #2, v1(1)+v2(1), v1(2)+v2(2), v1(3)+v2(3) Close #1 Close #2 egész szám vagy változó ez különbözteti meg a fájlokat ha több is nyitva van egyszerre Close #1 vektorokdat: 21 10 53 22 15 15 összegvektordat: 31 75 30 29 30 Visual Basic for Excel elméleti összefoglaló 3 Beolvasás InputBox-szal változóknak adhatunk értéket az InputBox utasítással is, a kívánt értéket ekkor a billentyűzetről olvassuk be InputBox (Prompt [,Cím, Default, Xpos, Ypos]) Szövegek vagy szöveg változók az InputBox magyarázatai fnev = ApplicationGetOpenFilename Open fnev For Input As #1 Input #1, intn Az InputBox helye a képernyőn A beolvasandó változó alapértelmezett értéke 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 kötelező DE erősen ajánlott! Alapműveletek: + - * / \ ^ (aritmetikai) And Or Not (logikai) Reláció jelek: = < > <= >= <> VBA program felépítése: Aritmetikai kifejezés: a*a*a*a - 81 Sub <neve> ( ) <esetleg deklarációk> <utasítások> Logikai kifejezés: fa*fm<0 Értékadás: változó = érték (kifejezés) Pl: x = InputBox("Adja meg x értékét", "Beolvasás", "Ide kell írni", 5000, 5000) 31 fa = a^4-81 32 8

Ciklus utasítás - ForNext - Do WhileLoop - Do UntilLoop - Do Loop While - DoLoop Until - If Goto Értelme ha ugyanazt a műveletsort sokszor, más-más értékekkel is el kell végezni 1 ForNext ciklus For ciklusváltozó = induló érték To végérték [Step lépésköz] utasítások For i=1 To 5 For i = 1 To 5 Step 2 Cells(1,i) = i Next ciklusváltozó Cells(3,i) = i For i = 5 To 1 Step -1 Cells(2,i) = -i 33 Ciklusok 2 DoLoop ciklusok Do While logikai kifejezés utasítások Loop Do Until logikai kifejezés utasítások Loop Ciklus elején értékelődik ki Akkor hajtódik végre a ciklus, ha igaz Akkor hajtódik végre a ciklus, ha hamis Ciklus végén értékelődik ki Do utasítások Loop While logikai kifejezés Do utasítások Loop Until logikai kifejezés 34 Ciklusok Két ZH átlagának kiszámítása n hallgató esetén start start megad: n k=1 megad: n k=1 megad: NEV, Z1, Z2 k<=n? vége hátul tesztelő ciklus Do - Loop While ciklus start megad: n k=1 vége Visual Basic program részlet megad: NEV, Z1, Z2 ZH=(Z1+Z2)/2 kiír: NEV, ZH ZH=(Z1+Z2)/2 kiír: NEV, ZH k=k+1 elől tesztelő ciklus megad: NEV, Z1, Z2 ZH=(Z1+Z2)/2 kiír: NEV, ZH k<=n? Két ZH átlagának kiszámítása n hallgató esetén k=k+1 k=k+1 k<=n? Melyiknél mi történik, ha n=0? 35 vége n=inputbox( n=? ): k=1 Do NEV=InputBox( NEV=? ) Z1=InputBox( Z1=? ) Z2=InputBox( Z2=? ) ZH=(Z1+Z2)/2 : Cells(k,1)=NEV Cells(k,2)=ZH : k=k+1 Loop While k<=n hátul tesztelő ciklus 36 9

Ciklusok Ciklusok Két ZH átlagának kiszámítása n hallgató esetén Két ZH átlagának kiszámítása n hallgató esetén Do While - Loop ciklus start elől tesztelő ciklus megad: n k=1 k<=n? vége megad: NEV, Z1, Z2 ZH=(Z1+Z2)/2 kiír: NEV, ZH For To - Next ciklus Visual Basic program részlet Visual Basic program részlet n=inputbox( n=? ) FOR k=1 TO n NEV=InputBox( NEV=? ) Z1=InputBox( Z1=? ) Z2=InputBox( Z2=? ): ZH=(Z1+Z2)/2 Cells(k,1)=NEV : Cells(k,2)=ZH NEXT k n=inputbox( n=? ): k=1 Do While k<=n NEV=InputBox( NEV=? ) Z1=InputBox( Z1=? ) Z2=InputBox( Z2=? ) ZH=(Z1+Z2)/2 : Cells(k,1)=NEV Cells(k,2)=ZH : k=k+1 Loop start elől tesztelő ciklus megad: n k=1 k<=n? vége megad: NEV, Z1, Z2 ZH=(Z1+Z2)/2 kiír: NEV, ZH k=k+1 k=k+1 37 38 Feltételes utasítás For Each - Next ciklus Különböző esetekben más-más utasítás hajtandó végre If logikai kifejezés Then utasítás1 Else utasítás2 Dim rngcell As Range Dim rngtart As Range Set rngtart = Range("A1:F21") For Each rngcell In rngtartcells Next rngcell Akkor hajtódik végre ha a logikai kifejezés igaz Akkor hajtódik végre ha a logikai kifejezés hamis utasítás1 ill utasítás2 lehet összetett utasítás (több utasítás együttese) is Feltételesen végrehajtandó utasítás: If logikai kifejezés Then egyszerű utasítás1 Range("A1")Select For Each rngcell In SelectionCurrentRegion 39 If logikai kifejezés Then összetett utasítás1 (ha nincs Else ág) 40 10

Többfelé ágazó feltételes utasítás: If logikai kifejezés 1 Then utasítás1 Elseif logikai kifejezés 2 Then utasítás2 Else utasítás3 Akkor hajtódik végre, ha - logikai kifejezés 1 igaz - logikai kifejezés 1 hamis, DE logikai kifejezés 2 igaz - mindkét logikai kifejezés hamis utasítás3 helyén természetesen újabb feltételes utasítás is állhat! If logikai kifejezés 1 Then utasítás1 Else If logikai kifejezés 2 Then utasítás2 Else If logikai kifejezés 3 Then utasítás3 Else If logikai kifejezés 4 Then utasítás4 Select Case változó Case érték1 utasítás1 Case érték2 utasítás2 Case érték3 utasítás3 End Select Case 1, 2, 3, 9 Case 4 To 8, Is < 1 Case Is > 10 41 Visual Basic for Excel elméleti összefoglaló feltételesen végrehajtandó utasítás és feltételes utasítás 42 Függvények Külső függvények: függvény hívása a főprogramban Az X értékek (mindkét esetben): 2, -4, 3, -1 megad: X, kiír: X megad: X, kiír: X Y = X*X X páros? X páros? Y = X*X Y=X+8 kiír: Y IF <logkif> THEN <utasítás> Kiírás: (2,4) ; (-4,16 ) ; (3,16 ) ; ( 1,16 ) kiír: Y kifejezés = függvénynév (arg1,arg_i) --------------------------------------------------------------------Function függvénynév (f_arg1,f_arg_i) As típus függvénynév = kifejezés függvény End Function Belső függvények: IF <logkif> THEN <ut1> ELSE <ut2> Kiírás: (2,4 ) ; (-4,16 ) ; (3,11 ) ; (-1,7 ) 43 olyan függvények amit a VBA ismer, kell megírnunk,lehet rögtön hívni Abs(arg1) Sin(arg1 ) Cos(arg1 ) Sqr(arg1 ) 44 11

Eljárások eljárás hívása a főprogramban Call eljárásnév (arg1,arg_i) --------------------------------------------------------------------Sub eljárásnév (s_arg1,s_arg_i) eljárás Eljárásnak kimenő és bemenő változói is lehetnek Függvénynek csak bemenő változói az egyetlen kimenő érték most a függvény maga 45 46 Függvények használata Függvények használata A függvénynek típusa van: As Double Példa: A [0;50] intervallumot n=100 részre osztva h=0,5 lépéssel minden x (belső) osztóponthoz kiszámítandó f(x) és f ( x h) f ( x h) Function f(x#) As Double f = x ^ 2 + 23 * x + 8 * Cos(x + 1) - x / (x + 2) End Function 2h A feladatot az alábbi függvényre kell elvégezni: Azonosítójának értéket kell adni: f= x f ( x) x 2,3 x 8 cos x 1 x 2 2 Ha használunk Function-t: a formulát háromszor be kell írni, rendre az x, x+h, x-h argumentumokkal 47 Sub szelo() Dim n%, h#, x#, i% n = 100: h = 05 Függvényhívást kifejezés helyére x=0 lehet írni For i = 1 To 100 x=x+h Cells(i, 1) = x Cells(i, 2) = f(x) Cells(i, 3) = (f(x + h) - f(x - h)) / (2 * h) 48 12

Egy Function-nak vagy Sub-nak lokális változói is lehetnek Öt vektor mindegyikét szeretnénk megszorozni a hatodik vektorral Function skal(sor%, x#(), y#(), n%) As Double Dim sum#, i% sum = 0 For i = 1 To n sum = sum + x(sor, i) * y(i) skal = sum End Function Egy Function-nak vagy Sub-nak lokális változói is lehetnek Öt vektor mindegyikét szeretnénk megszorozni a hatodik vektorral Sub skal (sor%, x#(), y#(), n%, prod#) Dim sum#, i% sum = 0 For i = 1 To n sum = sum + x(sor, i) * y(i) prod = sum Feladat megoldása függvénnyel Sub sokvektor() Dim a#(5, 3), b#(3), c#(5), k%, j% Open "adattxt" For Input As #1 Itt beolvassuk a és b elemeit Close #1 For j = 1 To 5 Cells(j, 7) = skal(j, a, b, 3) Next j Feladat megoldása eljárással Sub sokvektor() Dim a#(5, 3), b#(3), c#(5), k%, j%,szorz# Open "adattxt" For Input As #1 Itt beolvassuk a és b elemeit Close #1 For j = 1 To 5 Call skal(j,a,b,3,szorz) Cells(j, 7) = szorz Next j 49 De ha a vektorok abszolút értéke is kell akkor csak eljárással oldható meg!! Sub skal (sor%, x#(), y#(), n%, prod#, xa#, ya#) Dim sum#, sumx#, sumy#, i% sum = 0: sumx = 0: sumy = 0 For i = 1 To n sum = sum + x(sor, i) * y(i) sumx = sumx + x(sor,i) * x(sor,i) sumy = sumy + y(i) * y(i) xa = sqr(sumx): ya = sqr(sumy) prod = sum Sub sokvektor() Dim a#(5, 3), b#(3), c#(5), k%, j%, szorz#, aa#, bb# Open "adattxt" For Input As #1 Itt beolvassuk a és b elemeit Close #1 For j = 1 To 5 Call skal(j,a,b,3,szorz,aa,bb) Cells(j, 7) = szorz Cells(j, 8) = aa Next j Cells(5,9) = bb 50 Visual Basic for Excel elméleti összefoglaló Az eddig tanult UTASÍTÁSOK összefoglalása Értékadás (és egyéb, sorban végrehajtandó utasítások): Feladat megoldása eljárással? ne m? Feltételes(en végrehajtandó):? Ciklus:? 51 És még: GoTo (átirányítás), ADAT beolvasása és kiiratása!! 52 13