Zensurenrechner

  • Liebe AutoIt.de-User

    ich stelle hier meinen Zensurenrechner vor.

    Ich habe zwar bereits vor geraumer Zeit angefangen mit AutoIt zu programmieren, bin aber trotzdem noch eher schlecht, da ich nicht viel zum programmieren habe. Ich würde mich trotzdem über konstruktiv Kritik jeglicher Art freuen.

    Die Version die ich hier hochgeladen habe ist bereits 3.0, da ich es vorher immer vergessen habe.

    Quellcode
    [autoit]


    While 1
    $doing=0
    $notges=0
    $noten=InputBox ("Anzahl","Wie viele Noten wollen sie zusammen rechnen?")
    Do
    $blablablub=Inputbox ("Note","Bitte geben sie die Note ein.")
    $note=StringReplace ($blablablub,",", ".")
    $notges=$notges+$note
    $doing=$doing+1
    Until $doing=$noten
    $notzus=$notges/$noten
    $notzusrun=runden ($notzus)
    MsgBox (0,"Ergebniss","Dein Durchschnitt ist :"&$notzus&@CRLF&"Gerundet:"&$notzusrun)
    ClipPut ($notzusrun)
    $been=MsgBox (4,"Beenden","Wollen sie den Zensurenrechner 3.0 beenden?")
    If $been=6 Then
    ExitLoop
    EndIf
    WEnd
    Exit
    func runden ($rund)
    If $rund>1 And $rund<1.49 Then
    $gerund1 = "1"
    ElseIf $rund=1 Then
    $gerund1 = "1"
    ElseIf $rund=1.5 Then
    $gerund1 = "1.5"
    ElseIf $rund>1.51 And $rund<2.49 Then
    $gerund1 = "2"
    ElseIf $rund=2.5 Then
    $gerund1 = "2.5"
    ElseIf $rund>2.51 And $rund<3.49 Then
    $gerund1 = "3"
    ElseIf $rund=3.5 Then
    $gerund1 = "3.5"
    ElseIf $rund>3.51 And $rund<4.49 Then
    $gerund1 = "4"
    ElseIf $rund=4.5 Then
    $gerund1 = "4.5"
    ElseIf $rund>4.51 And $rund<5.49 Then
    $gerund1 = "5"
    ElseIf $rund=5.5 Then
    $gerund1 = "5.5"
    ElseIf $rund>5.51 And $rund<6 Then
    $gerund1 = "6"
    EndIf
    return $gerund1
    EndFunc

    [/autoit]
  • Schöne Idee, aber massiv zu umständlich. So geht es "etwas" kürzer und angenehmer ^^. (Funktioniert jetzt auch für Kursstufen-Punkte)

    Spoiler anzeigen
    [autoit]

    ; …minx

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $iMarks = InputBox ("Noten","Bitte tragen Sie die Noten mit einem Komma getrennt ein!" & @CRLF & "Bsp: '1,2,4,2,3,1,5,3'")
    If Not StringInStr($iMarks, ",", True) Then
    $hCheck = MsgBox(4, "Durschnitt", "Ihr Durchschnitt beträgt: " & $iMarks & @CRLF & "Weitere berechnen?")
    Else
    Local $aMarks = StringSplit($iMarks, ",", 3), $iSum
    For $sEach In $aMarks
    $iSum += $sEach
    Next
    $hCheck = MsgBox(4, "Durschnitt", "Ihr Durchschnitt beträgt: " & Round($iSum/UBound($aMarks), 1) & @CRLF & "Weitere berechnen?")
    EndIf
    Until $hCheck <> 6

    [/autoit]
    • Offizieller Beitrag

    Diese Berechnung ist aber, wie ich bei meinen Kindern feststellen konnte, heutzutage nicht mehr anwendbar.
    Die Zensuren werden zusätzlich gewichtet. Eine Kurzkontrolle oder mdl. Kontrolle erfährt eine völlig andere Bewertung als eine große schriftliche Kontrolle. Und selbst zwischen einzelnen Fächern unterscheidet sich der Grad der Wichtung.
    Das einfache arithmetische Mittel war in meiner Schulzeit (vor >35 Jahren) üblich. Heute kann man damit nichts mehr anfangen.

  • Das ist nur zu kleinem Teil richtig.

    Das Gesetz sieht vor, dass es zwei Teile von Noten gibt: Klausuren/Klassenarbeiten und Sonstige Noten (Test, mündlich etc.).
    Dabei gibt es immer eine wichtig nach Prozenten, zum Beispiel: Klausur: 40%, Sonstige: 60%.

    Also: (Durchschnhitt Klassenarbeiten * .4) + (Durschschnitt Tests * .6)

    Um die Einzelnoten zu errechnen muss das arithmetische Mittel verwandt werden. Und um diese Durchschnitte zu berechnen ist dieses Programm noch nützlich. Es ist ja auch noch ausbaufähig, aber "nichts mehr anfangen" kann man damit nicht :P

  • Mathematisch gesehen handelt es sich bei Schulnoten um eine Ordinalskala.
    Einen arithmetischen Mittelwert auf eine Ordinalskala anzuwenden ist aber Blödsinn.

    So gesehen ist es aus mathematischer Sicht vollkommen falsch eine Durchschnittsnote zu errechnen auch wenn es in der Praxis so gehandhabt wird.