Informatica 1rste bac biologie
This presentation is the property of its rightful owner.
Sponsored Links
1 / 24

Informatica 1rste BAC Biologie PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

Informatica 1rste BAC Biologie. Hoofdstuk 5 Scripting. Inhoud. Inleiding Programeerconstructies functies variabelen (toekenning) statements (print, ...) controlestructuren (if, while, until, for) Oefeningen. "functionzero.zip" gebruik die van vorige week of haal via de web-site

Download Presentation

Informatica 1rste BAC Biologie

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Informatica 1rste bac biologie

Informatica1rste BAC Biologie

Hoofdstuk 5

Scripting

Scripting


Inhoud

Inhoud

  • Inleiding

  • Programeerconstructies

    • functies

    • variabelen (toekenning)

    • statements (print, ...)

    • controlestructuren (if, while, until, for)

  • Oefeningen

Scripting


Context

"functionzero.zip"

gebruik die van vorige week

of haal via de web-site

vervang in alle rekenbladen de functie "sinus" door "cosinus"

find-replace: "sin("  "cos("

hoeveel cellen moet je aanpassen ?

hoeveel operaties heb je nodig ?

nulpuntberekening

convergeert niet meer !

pas a0 en b0 aan

zie grafiek

Context

Kan dit eenvoudiger ?

Scripting


Editor voor programmeercode

Editor voor Programmeercode

Project: Alle plaatsen waar VisualBasic code kan zitten

Programeercode wordt best bewaard in Modules

Inspecteren / veranderen van Properties (o.a. naam)

Programeercode wordt geschreven in de editor

Immediate: eventjes proberen

Scripting


Voorbereiding

Voorbereiding

  • Open VisualBasic Editor

    • In Excel

    • >>Tools>>Macro>>Visual Basic Editor

  • Maak Module

    • (1) rechtsklik op "VBA Project (functionzero)"

    • >>Insert>>Module

  • Hernoem Module1

    • nieuw naam "GlobaleFuncties"

    • (2) venster "Properties"

1

2

Scripting


Eerste functie

Eerste Functie

  • "VBASampleCode.txt"

    • van de web-site

  • In Editor

    • (1) Copy/Paste 1rste code

      Public Function datafunction(x)

      If x = 0 Then

      datafunction = 0

      Else

      datafunction = Cos(1 / x)

      End If

      End Function

    • (2) Bewaren

  • (3) Ga terug naar excel

    • in cel "=datafunction(0)"

2

3

1

Scripting


Even uitproberen

Even uitproberen

  • Ga terug naar Visual Basic Editor

  • in venster "Immediate"

    • "MsgBox datafunction(0.1)" + keyboard: Enter

    • "Debug.print datafunction (0.2)" + keyboard: Enter

      • Merk op: Amerikaanse conventie voor komma getallen

Scripting


Functie vorm

Public Function name (

argumenten)

statements

End Function

gereserveerde woorden

public, function, end

public

wat hier gedefinieerd wordt is "overal" te gebruiken

in tegenstelling tot "private" alleen binnen module

Function

we maken een functie

<name>

zelf in te vullen naam

<argumenten>

tussen haakjes, gescheiden door kommas

<statements>

programmacode

elk statement begint op een nieuwe lijn

End Function

't is gedaan ...

Functie (vorm)

Scripting


Statements

name = ...

Exit Function

name = ...

toekenning ("assignment")

name wordt gelijk aan ...

Exit Function

berekening van functie is gedaan, ga naar "End Function"

MsgBox ...

waarschuwing via dialoog

MsgBox "Hello World"

MsgBox "datafunction(" & x & ")"

Debug.print ...

schrijf uit in "Immediate Window"

Debug.Print "datafunction(" & x & ")"

Statements

Scripting


Varia

commentaar

rem ...

' ...

alles na rem of ' wordt genegeerd

uitleg naar lezer van programmacode

tijdelijk een bepaald statement niet uitvoeren

lange regels

... _

lange regels splitsen over meerdere regels ?

"spatie" gevolgd door "_" gevolgd door "Enter"

Varia

Scripting


If statement vorm

If expr Then

then-block

Else

else-block

End If

If expr Then

then-block

End If

expr

true

false

else-block

then-block

IF-statement (vorm)

expr

true

false

then-block

Scripting


If statement variant vorm

If expr1 Then

block-1

ElseIf expr2 Then

block-2

...

ElseIf exprn-1 Then

block-n-1

Else

block-n

End If

IF-statement variant (vorm)

expr1

true

false

block-1

expr2

true

false

block-2

...

...

exprn-1

true

block-n-1

false

block-n

Scripting


Voorbeeld 1

Voorbeeld (1)

  • Vervang code voor datafunction(x) door

    • Copy/Paste vanuit "VBASampleCode.txt" (web-site)

      Public Function datafunction(x)

      ' a function used as input for a spreadsheet

      ' producing graphs and calculating zero points

      MsgBox "oproep van datafunction(" _

      & x & ")"

      If x = 0 Then

      datafunction = 0

      Else

      datafunction = Cos(1 / x)

      End If

      End Function

    • Roep datafunction(x) op vanuit cel in rekenblad

    • Vervang "MsgBox" door "Debug.Print"

    • Roep datafunction(x) op vanuit "Immediate" window

Scripting


Oproepen vanuit spreadsheet

Vervang in "functionzero"

alle IF(…=0;0;(COS(1/…)))

door datafunction(...)

bekijk grafiek en nulpunten

Vervang code door voorbeeld3

Copy/Paste vanuit "VBASampleCode.txt"

Application.volatile

elke verandering aan rekenblad: alle oproepen datafunction herberekenen

zie "Immediate window"

Public Function datafunction(x)

' a function used as input ...

' producing graphs and ...

Application.Volatile

Debug.print _

"oproep van datafunction(" _

& x & ")"

If x = 0 Then

datafunction = 0

Else

datafunction = sin(1 / x)

End If

End Function

Oproepen vanuit Spreadsheet

  • Vervang sin(1/x) door

  • tan(1/x)

  • cos(1/x)

  • Bewaar. Grafiek en

  • nulpunten ?

Scripting


Herhaling nulpunten bissectie methode

Herhaling: Nulpunten (Bissectie methode)

  • kies a0 en b0 zodat f(a0) < 0 en f(b0) > 0

  • stap 0: stel m0 := (a0 + b0) / 2

    • f(m0) = 0 ?GEVONDEN

    • f(m0) < 0 ? a1 := m0 en b1 := b0

    • f(m0) > 0 ? a1 := a0 en b1 := m0

  • ...

  • stap n: stel mn := (an + bn) / 2

    • f(mn) = 0 ?GEVONDEN

    • f(mn) < 0 ? an+1 := mn en bn+1 := bn

    • f(m0) > 0 ? an+1 := an en bn+1 := mn

  • Benodigheden

  • variabelen

  • lus

Scripting


Variabelen toekenning assignment

Variabelen, Toekenning ("assignment")

  • variabele = waarde

    vb1=0

    vb2=0

    vb3=0'vb1, vb2, vb3 bevatten 0

    vb1 = 1'vb1 bevat 1

    vb2 = 2'vb2 bevat 2

    vb3 = vb1 + vb2'vb3 bevat 3

    vb1 = vb2' vb1 bevat 2

    vb3 = vb3 + 1' vb3 bevat 4

vb1

vb2

vb3

0

0

0

vb1

vb2

vb3

1

0

0

vb1

vb2

vb3

1

2

0

vb1

vb2

1

2

vb3

3

+

2

2

vb3

3 4

+ 1

Scripting


While until statement vorm 1

Do While expr

block

Loop

WHILE/UNTIL statement (vorm 1)

expr

false

true

block

block wordt misschien

0 x uitgevoerd !

expr

false

true

Do Until expr

block

Loop

block

Scripting


While until statement vorm 11

Do

block

Loop While expr

WHILE/UNTIL statement (vorm 1)

block

expr

true

false

block wordt minstens

1 x uitgevoerd !

Do

block

Loop Until expr

block

expr

false

true

Scripting


For statement vorm

For naam = first To last Step step

block

Next naam

FOR-statement (vorm)

naam = first

true

false

naam <= last

first, last, step:

rekenkundige expressies

met als resultaat een geheel getal !!!

block

naam = naam + step

Scripting


Bissectiemethode 1rste poging

Bissectiemethode (1rste poging)

Public Function computeZero(a0, b0)

'calculates a zero point of a function using the bissection method

a = a0

b = b0

m = (a + b) / 2

Do While Abs(datafunction(m)) > 0.000000001

' Debug.Print " a = " & a & " - b = " & " - m = " & m

If datafunction(m) > 0 Then

b = m

Else

a = m

End If

m = (a + b) / 2

Loop

computeZero = m

End Function

  • Probeer eens

  • computezero(0.38, 0.18)

  • computezero(0.18, 0.38)

  • ...

  • keyboard: ctrl-break om te onderbreken

Scripting


Bissectiemethode 2de poging

Bissectiemethode (2de poging)

Public Function computeZero(a0, b0)

'calculates a zero point of a function using the bissection method

If datafunction(a0) > 0 Then

computeZero = "First parameter " & a0 & _

" should have negative function value (has " _

& datafunction(a0) & ")"

Exit Function

End If

If datafunction(b0) < 0 Then

computeZero = "Second parameter " & b0 & _

" should have positive function value (has " _

& datafunction(b0) & ")"

Exit Function

End If

a = a0

b = b0

m = (a + b) / 2

...

Scripting


Matrix met nulpuntberekeningen

Matrix met nulpuntberekeningen

  • Maak een matrix

    • rij: 0 tot 0,39 step 0,1

    • kolom: 0 tot 0,39 step 0,1

    • waarde: computezero(...)

Scripting


Oefeningen

schrijf functie "fsin(x)"

grafiek en nulpunten via functionzero

x = 0 dan fsin(x) = 1

x  0 dan fsin(x) = Sin(x) / x

schrijf functie "fac(n)"

faculteit(n) of n!

n is positief natuurlijk getal

n = 0 dan fac(n) = 1

n > 0 dan fac(n) = n * fac (n-1)

schrijf met FOR en WHILE

schrijf functie "MExp(x)"

exponentieel via benadering door Maclaurin

exp(x) = 1 + (x) + (x2 / 2!) + ...+ (xn / n!)

stop voor n = 10

stop als (xn / n!) < 10-10

schrijf functie "sumrange(a, b)"

a en b natuurlijke getallen

a < b: a + (a+1) + ... + b

a > b: b + (b+1) + ... + a

Oefeningen

Scripting


Conclusie

Conclusie

  • Inleiding

  • Programeerconstructies

    • functies

    • variabelen (toekenning)

    • statements (print, ...)

    • controlestructuren (if, while, until, for)

  • Oefeningen

Scripting


  • Login