MINT‐Fächer kombinieren HP Kiermaier ©2016 BinominalkoeffizientenmitVisualBasic‐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. 'Binominalkoeffizienten berechnen function fakultaet(a) 'Berechnet die Fakultät von der Zahl in a erg=1 for i=1 to a: erg = erg * i: next fakultaet = erg 'Ergebnis zurückgeben end function function binomkoeff(b, c) 'Berechnet den Binominalkoeffizienten von b über c erg=0 'bzw. b aus c (b c) if (c < b) then erg = fakultaet(b)/(fakultaet(c)*fakultaet(b-c)) binomkoeff = erg end function text = "(n über k) ermittelt wieviele Kombinationen " & vbCrLf text = text & "von k-Zahlen aus dem Vorrat n existieren" & vbCrLf text = text & "z.B. ergibt (49 über 6) die Anzahl der " & vbCrLf text = text & "Möglichkeiten 6 (Richtige) aus 49 zu ziehen" & vbCrLf text = text & "Gib den Wertevorrat n ein" n = inputbox(text,"Kombinatorik") k = Inputbox("Nun gib k (die Auswahl daraus) ein","Kombinatorik") if n="" or k="" then wscript.quit 'Abbruch? n=cint(n) k=cint(k) 'in ganze Zahlen umwandeln result = binomkoeff(n, k) text = "Es gibt also " & result & " Möglichkeiten " & k text = text & " Zahlen aus " & n & " zu kombinieren" msgbox text,,"Kombinatorik" Nach dem Abtippen als 'binom.vbs' z.B. auf dem Desktop speichern und dann per Doppelklick starten. Wenn man für n=49 eingibt und für k=6, dann sieht man, es gibt 13983816 Möglichkeiten. Dagegen sind für k=3 (3 Richtige) nur 18424 Kombination möglich (also wahrscheinlicher). Natürlich lassen sich auch die Binominalkoeffizienten für den Binomischen Lehrsatz berechnen. Einfach nach den Funktionen schreiben oder unter dem obigen anhängen: 'ab hier Binomischer Lehrsatz n = InputBox("Wie lautet die Potenz n von (x+y)^n", "Binominalkoeffizienten") If n = "" Then wscript.Quit 'Abbruch? n = CInt(n) 'n in ganze Zahl umwandeln If (n < 2) Then wscript.Quit 'falls n<2 macht es keinen Sinn, also fertig result = "(x+y)^" & n & " = y" & "^" & n 'der erste und der letzte Term ist einmal x^n 'bzw. y^n, weil (n über 0) = 1 For i = 1 To n - 1 w = binomkoeff(n, i) '(n über 1), (n über 2), usw. ausrechnen result = result & " + " & w If i > 1 Then result = result & "x^" & i Else result = result & "x" If (n - i) > 1 Then result = result & "y^" & n - i Else result = result & "y" Next result = result & " + x^" & n MsgBox result, , "Binominalkoeffizienten"
© Copyright 2024 ExpyDoc