**Dies ist eine alte Version des Dokuments!**
Warm-up Funktionen
Zusammen lösen:
Aufgabe B: Notentabelle
Ziel: Erstelle in eine Notentabelle, ähnlich zu derjenigen, die dir die Schule zur Verfügung stellt.
Auftrag
- Starte mit dem Template unten. Die Noten darfst du natürlich anpassen. Am besten nimmst du gleich deine aktuellen Noten, dann kannst du immer mit der offiziellen Notentabelle vergleichen.
- Die Aufgabe besteht aus mehreren Teilen.
- Studiere in jedem Teil zuerst die angegebene Theorie …
- … und bearbeite dann das Template so, dass es wie im Screenshot angezeigt aussieht.
- Stelle sicher, dass deine Lösung alle Kriterien in der Tabelle erfüllt.
Teil I
Ziele
- Tabelle schön gestalten (Schrifgrössen, Farbe, Ränder, Zellenbreite- & Höhe, Ausrichtung …)
- Mittelwerte berechnen
- Werte runden
Tipps:
- Die Durchschnittsberechnung soll sich auf alle 20 möglichen Noten des Fachs beziehen und nicht nur auf diejenigen, die aktuell in der Tabelle stehen, so dass diese auch funktioniert, wenn man weitere Noten hinzufügt.
- Bei Fächern, bei denen noch keine Noten stehen, tritt bei den Notenberechnungen die Fehlermeldung „#DIV/0!“ auf. Um diese kümmern wir uns später.
Kriterien
KRITERIEN | ERFÜLLT? |
---|---|
Darstellung | |
Schriftgrösse, normal/fett stimmen überein | $\square$ |
gewisse Zellen eingefärbt | $\square$ |
passende Zeilenhöhe & Spaltenbreite | $\square$ |
Spalten für einzelne Noten haben alle gleiche Breite | $\square$ |
Zelleninhalte horizontal richtig (z.T. links, z.T. mittig) ausgerichtet | $\square$ |
Zelleninhalte vertikal mittig ausgerichtet | $\square$ |
passende Rahmen mit untersch. Dicken | $\square$ |
Durchschnitt mit 2 NKS angezeigt (Stichwort: Zelle formatieren) | $\square$ |
Logik | |
für jedes Fach einzeln Mittelwert berechnet | $\square$ |
Mittelwert-Berechnung funktioniert für 1-20 Noten (also nicht nur für die gerade eingetragenen) | $\square$ |
Zeugnisnote auf 0.5 Noten gerundet, Noten wie $5$ werden ohne NKS dargestellt | $\square$ |
Theorie
Durchschnitt / Mittelwert bestimmen
Berechne mit =AVERAGE(...)
(dt. =MITTELWERT()
) den Mittelwert oder Durchschnitt mehrerer Zellen.
Runden
=ROUND()
: normales Runden, z.B.=ROUND(3.14159,2)
rundet auf 2 Nachkommastellen=MROUND(...)
(de:=VRUNDEN(...)
): Runden auf Vielfaches von Zahl, z.B.=MROUND(5.28,0.5)
rundet auf $5.5$
Teil II
Ziele
- Verzweigungen (IF) verwenden
- mit bedingten Formatierungen arbeiten
- Berechnungen nur ausführen, wenn dafür benötigte Zellen Werte beinhalten (COUNT)
Tipps:
- Durchschnittsnoten sollen nur berechnet und angezeigt werden, falls Noten vorliegen. Liegen in einem Fach keine Note vor, sollen die Zellen „Durchschnitt“ und „Zeugnisnote“ leer sein und nicht den Fehler „#DIV/0“ anzeigen. Dazu kann man die COUNT-Funktion verwenden (siehe Tipps unten). Mit dieser kann man zählen, wie viele Noten vorliegen. Falls keine Noten vorliegen (Wert also 0 ist), so gibt man den leeren String
""
aus. Anderenfalls berechnet man den Durchschnitt. Für diese Fallunterscheidung benötigen wir die IF-Funktion (siehe Theorie unten), In Pseudocode sieht das etwa wie folgt aus:=IF(<Anzahl Noten = 0>,"",<Berechnung Durchschnitt>).
Kriterien
Darstellung | Erfüllt? |
---|---|
die gerundeten Zeugnisnoten mit formatierten Bedingungen einfärben (rot falls UG, grün falls G) |
Logik | Erfüllt? |
---|---|
Berechnete Noten werden nur angezeigt, wenn Noten vom Fach vorhanden sind | $\square$ |
Mittelwerte von „Durchschnitte“ und „Zeugnisnoten“ der einzelnen Fächer berechnen | $\square$ |
Berechnung der Plus- und Minuspunkte | $\square$ |
Berechne Summe der Plus- und Minuspunkte | $\square$ |
Berechnete Werte werden nur angezeigt, wenn überhaupt Noten vorliegen | $\square$ |
Theorie
Bedingte Formatierung
Die Formatierung einer Zelle (z.B. Hintergrundfarbe) kann man vom Inhalt abhängig machen. Z.B. kann eine Zelle die Hintergrundfarbe rot haben, falls der Wert darin kleiner als 4 ist.
Vorgehen: Rechte Maustaste auf Zelle → „Weitere Aktionen für Zellen aufrufen“ → „Bedingte Formatierung“ → Einstellungen vornehmen
IF-Verzweigungen
Soll der Inhalt einer Zelle von einer Bedingung abhängen, verwenden wir die IF-Funktion (dt. WENN). Diese hat immer die Form:
`=IF(<Bedingung>,<Zelleninhalt falls erfüllt>,< Zelleninhalt falls nicht>`
Dies entspricht dem if-else in Python (siehe unten).
Beispiel: =IF(B2>=4,"Genügend","Ungenügend")
, in der Zelle wird „Genügend“ oder „Ungenügend“ angezeigt, je nachdem, welchen Wert die Zelle B2 hat.
Für eine Verzweigung mit mehreren Bedingungen verwendet man die IFS-Funktion:
`IFS(<Bedingung 1>,<Wert 1>,<Bedingung 2>,<Wert 2>,...)`
Als ähnliche Alternative gibt es noch die SWITCH-Funktion.
Beachte: Das hier wird im Gegensatz zu den meisten Programmiersprachen ein einfaches Gleichheitszeichen verwendet, um Gleichheit zu überprüfen.
Das IF in Spreadsheets, entspricht in etwa dem if-else in Python:
if <Bedingung>: # Code falls Bedingung erfüllt else: # Code falls Bedingung nicht erfüllt
Anzahl Werte zählen
Mit dem folgenden Befehl zählt man, wie viele der angegebenen Zellen Zahlen beinhalten:
`=COUNT(<Zellenbereich>)`
Dies ist besonders nützlich, wenn man eine Berechnung nur dann durchführen will, wenn die dafür benötigten Zellen nicht leer sind.
Teil III
Ziele
- Zellen verbinden
- Benutzerdefinierte Zellenformatierungen
- Verknüpfen von zwei Bedingungen mit AND, OR
Kriterien
KRITERIEN | ERFÜLLT? |
---|---|
Darstellung | |
Zellen bei „Promotion“, in Legende und bei Name/Klasse/Semester passend zu grossen Zellen verbunden | $\square$ |
Text „(KEINE) PROMOTION“ wird vertikal dargestellt | $\square$ |
Legende eingefärbt | $\square$ |
Farbe der Zellen zur „Promotion“ mit bedingter Formatierung grün / rot eingefärbt | $\square$ |
Für Anzahl UGs wird benutzerdefinierte Zellenformatierungen verwendet | $\square$ |
Logik | |
Anzahl UG (siehe Theorie zu COUNTIF unten) | $\square$ |
Bei „Promotion“ wird je nach Noten „PROMOTION“ oder „KEINE PROMOTION“ angezeigt (siehe Tipps unten) | $\square$ |
$\square$ |
Bemerkungen:
- In einer ersten, vereinfachten Version unterscheiden wir nur zwischen den beiden Fällen „PROMOTION“ und „KEINE PROMOTION“:
- „PROMOTION“: Punktzahl 0 oder positiv (d.h. alle Minuspunkte doppelt kompensiert) und höchstens 3 UG.
- „KEINE PROMOTION“: sonst, also falls Punktzahl negativ oder mehr als 3 UG (eine der beiden Bedingungen reicht, so dass Promotion nicht erfüllt).
- Tipp: Dazu benötigt man AND oder OR (siehe Theorie unten).
- Den Fall „KNAPP PROMOVIERT“ implementieren wir später.
Theorie
Logische Operatoren
Mit den logischen Operatoren AND, OR und XOR kann man mehrere Bedingungen miteinander verknüpfen. Der folgende Ausdruck nimmt den Wert „True“ („False“) an, falls beide Bedingungen erfüllt sind:
`=AND(<Bedingung 1>,<Bedingung 2>`
Den OR-Operator benutzt man genau gleich, nur reicht es hier, dass eine der Bedingungen erfüllt ist. Typischerweise verwendet man diese logischen Operatoren in der IF-Funktion.
Beispiel: Mit dem folgenden Befehl kann man ermitteln, ob in beiden Zellen A1 und B1 positive Zahlen stehen:
=IF(AND(A1>=0,B1>=0),"beide Zellen positiv","mind. eine Zelle negativ")
Erinnerung: Diese logischen Operatoren entsprechen and
, or
und ^
in Python.
Zählen wenn Bedingung erfüllt
Mit den Befehl COUNTIF kann man in einem Bereich die Anzahl Zellen zählen, die eine bestimmte Bedingung erfüllen:
=COUNTIF(<Zellenbereich>,<Bedingung in Anführungs- & Schlusszeichen>)
Zum Beispiel zählt man mit dem Befehl =COUNTIF(A1:A10,">0")
die Anzahl Zellen im Bereich A1:A10, welche Werte grösser Null beinhalten.
Teil IV (optional)
Ziele
- Fallunterscheidungen mit mehr als zwei Fällen
- Bedingte Formatierungen mit benutzerdefinierten Formeln
Kriterien
KRITERIEN | ERFÜLLT? |
---|---|
Darstellung | |
Bedingte Formatierung für alle drei Fälle der Promotion | $\square$ |
Zelle Z6 mit Überschrift „Promotion“ wird auch bedingt formatiert (siehe Theorie unten) | $\square$ |
Logik | |
Auch Fall „KNAPP PROMOVIERT“ implementiert | $\square$ |
Theorie
Bedingte Formatierung mit benutzerdefinierter Formel
Die Formatierung einer Zelle kann vom Inhalt einer anderen Zelle abhängen. Verwende dazu eine bedingte Formatierung mit „Benutzerdefinierte Formel ist“. Ins Formel-Feld kann dann eine Formel getippt werden, die von einer anderen Zelle abhängt, in der Form =IF(<Bedingung>,1,0)
. Falls die Bedingung (nicht) erfüllt ist, nimmt nimmt der Befehl den Wert 1 (0) an und die bedingte Formatierung wird (nicht) aktiviert.
Erweiterungen
Erweitere deine Notentabelle weiter, z.B.:
- Gewichtungen implementieren (wie in KSR-Notentabelle)
- eigene Ideen
Zusatzaufgaben
Geburtstagsrechner
Mit Spreadsheets kann man ganz einfach Rechnungen mit Daten machen. Damit kannst du Fragen wie die folgenden ganz einfach beantworten.
- Wie viele Tage lebe ich bereits?
- Wie viele Tage ist meine Mama älter als ich?
- An welchem Datum wird (oder war) mein Papa genau doppelt so alt wie ich?
- Wie alt bin ich am 4.2.2042?
Arbeiten mit Daten
- Zahlen können als Daten interpretiert werden. Die Zahl $42$ entspricht dem Datum 10.02.1900, da dieses der 42. Tag nach dem Datum 30.12.1899 ist.
- Mit Nachkommazahlen kann man weiter Uhrzeiten der Daten angeben.
- Die Funktion
=TODAY()
gibt den Wert des heutigen Datums an (ändert sich jeden Tag).
Beispiel: Der 17.04.2023 entspricht der Zahl $45033$. Addiert man nun $365$ zu dieser Zahl, entspricht diese dem Datum 16.04.2024 (weil 2024 ein Schaltjahr ist).
Schreibe nun ein Programm, in dem man die Geburtsdaten zweier Personen eintippen kann: Person 1 ist älter als Person 2. Der Code berechnet und gibt aus:
- Altersunterschied in Tagen
- Altersunterschied in Jahren
- Anzahl Tage, die Person 1 schon lebt
- Datum, wann Person 1 doppelt so alt war/sein wird wie Person 2