VBS/Mathe-Übungen Lineare Gleichungen - HPK

Werbung
MINT‐Fächer kombinieren HP Kiermaier ©2016 LineareGleichungmitVisualBasic‐Scripting(VBS)
Der Vorteil von VBS ist ja, dass es ohne Compiler oder Voraussetzungen auf jedem Windows‐PC läuft. Deshalb ist es ideal, um kleine Aufgaben oder Beispiele von Studenten programmieren zu lassen. Für dieses Beispiel braucht man nur einen einfachen Texteditor (z.B. Notepad mit WIN+R öffnen). Der Code muss mit der Endung .VBS gespeichert werden und kann dann einfach per Doppelklick gestartet werden. 'Lineare Gleichungen
function f(x)
f = 4*x - 7
end function
'Lineare Funktion f(x)
x = inputbox("x eingeben")
if (x="") then wscript.quit 'Abbruch?
x=Csng(x)
'In eine Kommazahl umwandeln
erg = f(x)
msgbox "An der Stelle x=" & x & " ist f(x)=" & erg
'weitere Werte berechnen und ausgeben (Übersicht erzeugen)
NeueZeile = vbCrLf
text = "x" & vbtab & "y" & NeueZeile
'Überschrift
for i=0 to 5 step 0.5
'12 Iterationen durchführen jeweils um 0,5 größer
erg = f(x+i)
text = text & x+i & vbtab & erg & NeueZeile
next
MsgBox text
Nach dem Abtippen als 'LinGL.vbs' z.B. auf dem Desktop speichern und dann per Doppelklick starten. Wenn man für x=‐2 eingibt, wird der dazugehörige y‐Wert = ‐15 ausgegeben. Danach werden die folgenden 12 x‐Werte mit jeweils einem Abstand von 0,5 berechnet und als Tabelle ausgegeben. Um eine Nullstelle zu finden, muss man die Parameter a und b der Geradengleichung y=ax+b kennen und dann auf x auflösen (in einer neuen vbs‐Datei speichern):
'Nullstelle errechnen 0 = a*x + b -> x = -b/a
a = inputbox("a eingeben (y=ax+b)")
b = inputbox("b eingeben (y=ax+b)")
text = "Die Gerade y=" & a & "x"
if (b < 0) then text = text & "-" else text = text & "+"
text = text & abs(b) & " schneidet die x-Achse bei x=" & -b/a
msgbox text
Um den Schnittpunkt zweier Geraden zu finden, braucht man von beiden die Parameter a1, a2, b1, b2. Danach addiert man alle a‐Werte, alle b‐Werte und berechnet wieder (x = ‐(b1+b2)/(a1+a2)). 'Schnittpunkt ermitteln
a1 = inputbox("a1 eingeben (y=a1*x+b1)")
b1 = inputbox("b1 eingeben (y=a1*x+b1)")
a2 = inputbox("a2 eingeben (y=a2*x+b2)")
b2 = inputbox("b2 eingeben (y=a2*x+b2)")
erg = -(Cint(b1)+Cint(b2))/(Cint(a1)+Cint(a2)) 'ganze Zahlen addieren
text = "Die Gerade y1=" & a1 & "*x"
if (b1 < 0) then text = text & "-" else text = text & "+"
text = text & abs(b1) & " schneidet die Gerade y2=" & a2 & "*x"
if (b2 < 0) then text = text & "-" else text = text & "+"
text = text & abs(b2) & " bei x=" & erg & " und y=" & a1*erg+b1
msgbox text
Herunterladen