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

Számítástechnika Levelezőknek

Hasonló előadás


Az előadások a következő témára: "Számítástechnika Levelezőknek"— Előadás másolata:

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

2 Függvények használata
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 A feladatot az alábbi két függvényre kell elvégezni: Ha nem használunk Function-t: 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.

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) = g(x) Cells(i, 3) = (g(x + h) - g(x - h)) / (2 * h) Next i End Sub 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 g(x#) As Double If x < 20 Then g = Exp(x - 20) + 2 * Sin(2 * x - 40) Else g = 5.4 * x / (x + 5) - 117 End If End Function Function f(x#) As Double f = x ^ * x + 8 * Cos(x + 1) - x / (x + 2) End Function

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…
Kandúrok és cicalányok napi egérfogyasztása testsúlyuk szerint… 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 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 + 0.3 Next j End Sub

6 Egy Function-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) Next i skal = sum End Function 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

7 Macska-egér példa Függvénnyel
és Eljárással 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% 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 + 0.3 Next j 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 + 0.3 Next j End Sub


Letölteni ppt "Számítástechnika Levelezőknek"

Hasonló előadás


Google Hirdetések