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