Private FZ, FA As Boolean	'declareer deze variabelen buiten de subprocedures
Private A, B, HP, LP As Single

Private Function Cartvorm(ByVal X As Single, ByRef Y As Single) As Boolean
	Dim N As Single = X * X  X  6
	If N = 0 Then Return True
	Y = (X * X + 3) / N
	If Y < LP Or Y > HP Then Return True
	Return False
End Function

Private Sub btnTeken_Click(ByVal sender As Object, ByVal e As System.EventArgs) ...
	Me.Refresh()
End Sub

Private Sub frmProg11_Paint(ByVal sender As Object, ByVal e As ...PaintEventArgs) ... 
	If Not (Val(txtA.Text()) = 0 Or Val(txtB.Text() = 0 Or _
			Val(txtHP.Text()) = 0 Or Val(txtLP.Text()) = 0 Then
		A = Val(txtA.Text()) : B = Val(txtB.Text())
		HP = Val(txtHP.Text()) : LP = Val(txtLP.Text())
		If A > B Then
			Dim C As Single = A
			A = B
			B = C
		End If
		Dim KX As Single = 320 / (B  A), KY As Single = 320 / (HP  LP)
		Dim H As Single = 0.5, DX As Single = (B  A) / 256
		Dim X As Single = 0, Y As Single = 0
		Dim X1 As Single = 0, Y1 As Single = 0, X2 As Single = 0, Y2 As Single = 0
		FA = True
		For X = A To B Step DX
			X2 = Int(KX * (X  A) + H) : FZ = Cartvorm(X, Y)
			If Not FZ Then
				If Not FA Then
					Y2 = Int(KY * (HP  Y) + H)
					e.Graphics.DrawLine(Pens.Black, X1, Y1, X2, Y2)
					X1 = X2 : Y1 = Y2
				Else
					X1 = X2 : Y1 = Int(KY * (HP  Y) + H) : FA = False
				End If
			Else
				FA = True
			End If
		Next
		X = Int(KX * (-A) + H) : Y = Int(KY * HP + H)
		If Not (Y < 0 Or Y > 320) Then
			e.Graphics.DrawLine(Pens.Black, 0, Y, 320, Y)
		End If
		If Not (X < 0 Or X > 320) Then
			e.Graphics.DrawLine(Pens.Black, X, 0, X, 320)
		End If
		e.Graphics.DrawRectangle(Pens.Black, 0, 0, 320, 320)
	End If
End Sub


Andere functie 1

'GW-BASIC
1000 U=X*X-2 : IF U<=0 THEN FZ=1:RETURN
1010 Y=LOG(U)
1020 IF Y < LP OR Y > HP THEN FZ=1:RETURN
1030 FZ=0: RETURN

'Visual Basic.NET
Dim U As Single = X * X  2 : If U <= 0 Then Return True
Y = Math.Log(U)
If Y < LP Or Y > HP Then Return True
Return False


Andere functie 2

'GW-BASIC
1000 N=X-3 : IF N=0 THEN FZ=1:RETURN
1010 Y=3-X+LOG(ABS((X-1)/N))
1020 IF Y < LP OR Y > HP THEN FZ=1:RETURN
1030 FZ=0: RETURN

'Visual Basic.NET
Dim N As Single = X  3 : If N = 0 Then Return True
Y = 3  X + Math.Log(Math.Abs((X - 1) / N))
If Y < LP Or Y > HP Then Return True
Return False

