Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Szervetlen és Analitikai Kémia Tanszék, Kémiai Informatika Csoport Számítástechnika Levelezőknek (BMEVESAAL04) (BMEVESAAL04) Tárgy honlapja:

Hasonló előadás


Az előadások a következő témára: "Szervetlen és Analitikai Kémia Tanszék, Kémiai Informatika Csoport Számítástechnika Levelezőknek (BMEVESAAL04) (BMEVESAAL04) Tárgy honlapja:"— Előadás másolata:

1 Szervetlen és Analitikai Kémia Tanszék, Kémiai Informatika Csoport Számítástechnika Levelezőknek (BMEVESAAL04) (BMEVESAAL04) Tárgy honlapja: VBA összefoglaló - 2 Tárgy honlapja: Tárgy előadói: Dr. Bárkai János és Kollárné Dr. Hunek Klára

2 Függvények használata – az első függvénynél a formulát háromszor be kell írni, rendre az x, x+h, x-h argumentumokkal, – a második függvénynél az új (feltételes utasítást is tartalmazó) formulát ismét mindhárom helyen be kell írnunk. 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 Ha nem használunk Function-t: A feladatot az alábbi két függvényre kell elvégezni:

3 Függvények használata Sub szelo() Dim n%, h#, x#, i% n = 100: h = 0.5 x = 0 For i = 2 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) Next i End Sub Function f(x#) As Double f = x ^ * x + 8 * Cos(x + 1) - x / (x + 2) End Function Function g(x#) As Double If x < 20 Then g = Exp(x - 20) + 2 * Sin(2 * x - 40) Else g = 5.4 * x / (x + 5) End If End Function Sub szelo() Dim n%, h#, x#, i% n = 100: h = 0.5 x = 0 For i = 2 To 100 x = x + h Cells(i, 1) = x Cells(i, 2) = g(x) Cells(i, 3) = (g(x + h) - g(x - h)) / (2 * h) Next i End Sub

4 Függvények használata Function f(x#) As Double f = x ^ * x + 8 * Cos(x + 1) - x / (x + 2) End Function A függvénynek típusa van: “ As Double ” Azonosítójának értéket kell adni: “ f = … ” Sub szelo() Dim n%, h#, x#, i% n = 100: h = 0.5 x = 0 For i = 2 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) Next i End Sub Függvényhívást kifejezés helyére lehet írni

5 Egy Function-nak több paramétere is lehet… Sub tobbvaltozo() Dim suly#, j% suly = 1.5 For j = 3 To 8 Cells(j, 1) = suly Cells(j, 2) = eger("kandur", suly) Cells(j, 3) = eger("cica", suly) suly = suly Next j End Sub Function eger(macska$, kg#) As Integer If macska = "kandur" Then eger = CInt(kg * 3.6) Else eger = CInt(kg * 2.4) End If End Function Kandúrok és cicalányok napi egérfogyasztása testsúlyuk szerint…

6 Egy Function-nak lokális változói is lehetnek… Öt vektor mindegyikét szeretnénk megszorozni a hatodik vektorral… Sub sokvektor() Dim a#(5, 3), b#(3), c#(5), k%, j% Open "adat.txt" For Input As #1 ‘ Itt beolvassuk a és b elemeit Close #1 For j = 1 To 5 c(j) = skal(j, a, b, 3) Cells(j, 7) = c(j) Next j End Sub 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) Next i skal = sum End Function

7 Macska-egér példa Függvénnyel Sub tobbvaltozo() Dim suly#, j% suly = 1.5 For j = 3 To 8 Cells(j, 1) = suly Cells(j, 2) = eger("kandur", suly) Cells(j, 3) = eger("cica", suly) suly = suly Next j End Sub Function eger(macska$, kg#) As Integer If macska = "kandur" Then eger = CInt(kg * 3.6) Else eger = CInt(kg * 2.4) End If End Function Sub eger (macska$, kg#, n%) If macska = "kandur" Then n = CInt(kg * 3.6) Else n = CInt(kg * 2.4) End If End Sub Sub tobbvaltozo() Dim suly#, j%, db% suly = 1.5 For j = 3 To 8 Cells(j, 1) = suly Call eger("kandur", suly, db): Cells(j, 2) =db Call eger("cica", suly, db): Cells(j, 3) =db suly = suly Next j End Sub és Eljárással


Letölteni ppt "Szervetlen és Analitikai Kémia Tanszék, Kémiai Informatika Csoport Számítástechnika Levelezőknek (BMEVESAAL04) (BMEVESAAL04) Tárgy honlapja:"

Hasonló előadás


Google Hirdetések