<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.mafiasi.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=46.59.226.0%2F24</id>
	<title>Fachschaft Informatik - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mafiasi.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=46.59.226.0%2F24"/>
	<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php/Spezial:Beitr%C3%A4ge/46.59.226.0/24"/>
	<updated>2026-10-17T18:14:27Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=Notenberechnung&amp;diff=13929</id>
		<title>Notenberechnung</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=Notenberechnung&amp;diff=13929"/>
		<updated>2011-10-27T16:30:50Z</updated>

		<summary type="html">&lt;p&gt;46.59.226.194: /* Implementierung */ Pythonimplementation hinzugefuegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diplom ==&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
Für Diplomer berechnet sich die Endnote wie folgt:&lt;br /&gt;
&lt;br /&gt;
Es gibt insgesamt 5 Prüfungen, die zu gleichen Teilen in die Endnote einfließen:&lt;br /&gt;
* Grundlagen von Informatik-Systemen&lt;br /&gt;
* Theoretische Informatik&lt;br /&gt;
* Schwerpunkt&lt;br /&gt;
* Ergänzungsfach&lt;br /&gt;
* Diplomarbeit&lt;br /&gt;
&lt;br /&gt;
Um die Note in einer dieser Prüfungen zu ermitteln, wird aus den ungerundeten Noten der jeweiligen Teilprüfungen das arithmetische Mittel gebildet und nach der ersten Nachkommastelle abgeschnitten (abgerundet).&lt;br /&gt;
Dasselbe Verfahren kommt für die Berechnung der Endnote zur Anwendung.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
* Grundlagen von Informatiksystemen&lt;br /&gt;
** Technische Informatik - DKR - 2.3&lt;br /&gt;
** Angewandte Informatik - CGB - 2.0&lt;br /&gt;
** Praktische Informatik - SNN - 3.7&lt;br /&gt;
** Mittelwert ist 8.0/3 = 2.6666666 = 2.6&lt;br /&gt;
&lt;br /&gt;
* Theoretische Informatik&lt;br /&gt;
** LOS - 1.7&lt;br /&gt;
** AUK - 2.3&lt;br /&gt;
** PNL - 1.7&lt;br /&gt;
** Mittelwert ist 5.7/3 = 1.90000 = 1.9&lt;br /&gt;
&lt;br /&gt;
* Schwerpunkt&lt;br /&gt;
** Prüfung - 2.3&lt;br /&gt;
** Mittelwert ist 2.3/1 = 2.30000 = 2.3&lt;br /&gt;
&lt;br /&gt;
* Ergänzungsfach&lt;br /&gt;
** 1. Prüfung = 4.0&lt;br /&gt;
** 2. Prüfung = 2.3&lt;br /&gt;
** Mittelwert ist 6.3/2 = 3.15000 = 3.1&lt;br /&gt;
&lt;br /&gt;
* Diplomarbeit&lt;br /&gt;
** Erstgutachter - 1.7&lt;br /&gt;
** Zweitgutachter - 2.0&lt;br /&gt;
** Mittelwert ist 3.7/2 = 1.85000 = 1.8&lt;br /&gt;
&lt;br /&gt;
* Endnote (2.6 + 1.9 + 2.3 + 3.1 + 1.8) / 5 = 11.7/5 = 2.34000 = 2.3&lt;br /&gt;
&lt;br /&gt;
=== Textform ===&lt;br /&gt;
Am Ende wird diese numerische Endnote noch in Textform übersetzt:&lt;br /&gt;
* 1.0 bis 1.0 - ausgezeichnet&lt;br /&gt;
* 1.1 bis 1.5 - sehr gut&lt;br /&gt;
* 1.6 bis 2.5 - gut&lt;br /&gt;
* 2.6 bis 3.5 - befriedigend&lt;br /&gt;
* 3.6 bis 4.0 - ausreichend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementierung ===&lt;br /&gt;
==== Perl ====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 &lt;br /&gt;
 sub mittel {&lt;br /&gt;
   my $note = 0;&lt;br /&gt;
   my $n = 0;&lt;br /&gt;
   foreach my $teilnote (@_) {&lt;br /&gt;
     $note += $teilnote;&lt;br /&gt;
     $n += 1;&lt;br /&gt;
   }&lt;br /&gt;
   $note = int($note * 10 / $n) / 10;&lt;br /&gt;
   return $note;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 my $endnote = mittel(&lt;br /&gt;
   mittel(2.3, 2.0, 3.7),&lt;br /&gt;
   mittel(1.7, 2.3, 1.7),&lt;br /&gt;
   mittel(2.3),&lt;br /&gt;
   mittel(4.0, 2.3),&lt;br /&gt;
   mittel(1.7, 2.0)&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 print &amp;quot;$endnote (&amp;quot;.(&#039;ausgezeichnet&#039;,&#039;sehr gut&#039;,&#039;gut&#039;,&#039;befriedigend&#039;,&#039;ausreichend&#039;)[int((int((int($endnote * 10) - 6) / 5) * 3 + 4) / 5)].&amp;quot;)\n&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Python ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# Copyright: 2011 Tobias Mueller &amp;lt;4tmuelle@informatik.uni-hamburg.de&amp;gt;&lt;br /&gt;
# License: GPLv3+&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def gerundeter_schnitt(*noten):&lt;br /&gt;
    schnitt = (1.0 * sum(noten)/len(noten))&lt;br /&gt;
    gerundet = int(math.floor(schnitt * 10))&lt;br /&gt;
    return gerundet/10.0&lt;br /&gt;
&lt;br /&gt;
def get_dipl_noten_text(dipl_note):&lt;br /&gt;
    translations = (&lt;br /&gt;
     (1.0, 1.0, &amp;quot;Ausgezeichnet&amp;quot;),&lt;br /&gt;
     (1.1, 1.5, &amp;quot;Sehr Gut&amp;quot;),&lt;br /&gt;
     (1.6, 2.5, &amp;quot;Gut&amp;quot;),&lt;br /&gt;
     (2.6, 3.5, &amp;quot;Befriedigend&amp;quot;),&lt;br /&gt;
     (3.6, 4.0, &amp;quot;Ausreichend&amp;quot;),&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    for upper, lower, text in translations:&lt;br /&gt;
        if upper &amp;lt;= dipl_note &amp;lt;= lower:&lt;br /&gt;
            return text&lt;br /&gt;
    raise RuntimeError(&amp;quot;Couldn&#039;t translate note %s with %s&amp;quot;, dipl_note, translations)&lt;br /&gt;
&lt;br /&gt;
def diplomnote(a, p, t, th1, th2, th3, sp, ef, dipl):&lt;br /&gt;
    theorie = gerundeter_schnitt (th1, th2, th3)&lt;br /&gt;
    theorie_msg=r&#039;&#039;&#039;&lt;br /&gt;
    Th1: %2.1f    \&lt;br /&gt;
    Th2: %2.1f     = %2.1f&lt;br /&gt;
    Th3: %2.1f    /&lt;br /&gt;
    &#039;&#039;&#039; % (th1, th2, theorie, th3)&lt;br /&gt;
    print theorie_msg&lt;br /&gt;
    &lt;br /&gt;
    gris    = gerundeter_schnitt (a, p, t)&lt;br /&gt;
    gris_msg=r&#039;&#039;&#039;&lt;br /&gt;
    A  : %2.1f    \&lt;br /&gt;
    P  : %2.1f     = %2.1f&lt;br /&gt;
    T  : %2.1f    /&lt;br /&gt;
    &#039;&#039;&#039; % (a,p, gris, t)&lt;br /&gt;
    print gris_msg&lt;br /&gt;
&lt;br /&gt;
    dipl_note = gerundeter_schnitt (theorie, gris, sp, ef, dipl)&lt;br /&gt;
    dipl_noten_text = get_dipl_noten_text(dipl_note)&lt;br /&gt;
    rest_msg=r&#039;&#039;&#039;&lt;br /&gt;
    Nebenfach:     %2.1f&lt;br /&gt;
    Schwerpunkt:   %2.1f&lt;br /&gt;
    Diplomarbeit:  %2.1f&lt;br /&gt;
    ====================&lt;br /&gt;
    Gesamt:        %2.1f %s&lt;br /&gt;
    &#039;&#039;&#039; % (ef, sp, dipl, dipl_note, dipl_noten_text)&lt;br /&gt;
    print rest_msg&lt;br /&gt;
        &lt;br /&gt;
    return dipl_note&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    import sys&lt;br /&gt;
    noten = [float(arg) for arg in sys.argv[1:]]&lt;br /&gt;
    a, p, t, th1, th2, th3, sp, ef, dipl = noten&lt;br /&gt;
    print diplomnote(*noten)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bachelor ==&lt;br /&gt;
=== Beschreibung ===&lt;br /&gt;
 FIXME!&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
 FIXME!&lt;br /&gt;
=== Implementierung ===&lt;br /&gt;
*Quelle: https://www.fb18.de/mybb/showthread.php?tid=9878&lt;br /&gt;
*Online: http://www.ausgeschieden.de/bac/calc.php&lt;/div&gt;</summary>
		<author><name>46.59.226.194</name></author>
	</entry>
</feed>