Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m323:learningunits:lu02:aufgaben:dataclass1 [2024/08/28 09:24] – [Aufgabenstellung] kmaurizi | modul:m323:learningunits:lu02:aufgaben:dataclass1 [2026/08/18 10:21] (aktuell) – Kompetenz-Tags auf neue Kompetenzmatrix ZH gesetzt admin | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== LU02.A10 - Immutable | + | ====== LU02.A10 - Immutable |
| <WRAP center round todo 60%> | <WRAP center round todo 60%> | ||
| - | Erstellen | + | Implementieren |
| </ | </ | ||
| ==== Aufgabenstellung ==== | ==== Aufgabenstellung ==== | ||
| - | - Definieren Sie eine '' | + | Im Rahmen der funktionalen Programmierung ist es von entscheidender Bedeutung, Datenstrukturen unveränderlich |
| - | - Implementieren | + | |
| - | - Implementieren Sie eine Funktion '' | + | |
| - | - Implementieren Sie eine Funktion '' | + | |
| - | - Schreiben Sie ein Programm, das mehrere Noten hinzufügt, den Durchschnitt berechnet und den Studenten " | + | |
| - | ==== Code Vorlage ==== | + | - Definieren Sie eine '' |
| + | - Implementieren Sie eine Funktion '' | ||
| + | - Die neue Instanz soll das aktualisierte Datum in der Liste '' | ||
| + | - Implementieren Sie eine zweite Funktion '' | ||
| + | - Nutzen Sie die Funktionen, um mehrere Änderungen an einer Instanz von '' | ||
| - | <code python> | ||
| - | from dataclasses import dataclass, field | ||
| - | from typing import List | ||
| - | @dataclass(frozen=True) | + | ==== Schritt für Schritt ==== |
| - | class Student: | + | |
| - | name: str | + | |
| - | grades: List[int] | + | |
| - | graduated: bool = False | + | |
| - | def add_grade(student: | + | |
| - | """ | + | - Implementieren Sie die Funktion |
| - | Returns a new Student instance with the added grade. | + | - Implementieren Sie die Funktion |
| - | """ | + | - Führen Sie mehrere Funktionsaufrufe durch, um die Änderungen zu testen und die Liste der Service-Daten zu überprüfen. |
| - | new_grades = student.grades + [grade] | + | |
| - | return Student(name=student.name, | + | |
| - | + | ||
| - | def calculate_average(student: | + | |
| - | """ | + | |
| - | Returns the average of the student's grades. | + | |
| - | """ | + | |
| - | if not student.grades: | + | |
| - | return 0.0 | + | |
| - | return sum(student.grades) / len(student.grades) | + | |
| - | + | ||
| - | def graduate_student(student: | + | |
| - | """ | + | |
| - | Graduates the student if the average grade is 70 or above. | + | |
| - | """ | + | |
| - | average = calculate_average(student) | + | |
| - | if average >= 70: | + | |
| - | return Student(name=student.name, | + | |
| - | return student | + | |
| - | + | ||
| - | if __name__ == '__main__': | + | |
| - | student = Student(name='John Doe') | + | |
| - | student = add_grade(student, 85) | + | |
| - | student = add_grade(student, 75) | + | |
| - | student = add_grade(student, 60) | + | |
| - | + | ||
| - | print(f'Noten: {student.grades}') | + | |
| - | average = calculate_average(student) | + | |
| - | print(f'Durchschnitt: | + | |
| - | + | ||
| - | student = graduate_student(student) | + | |
| - | print(f' | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Schritt für Schritt ==== | + | |
| - | | + | ---- |
| - | | + | < |
| - | - Implementieren Sie die Funktion '' | + | {{tag> |
| - | - Implementieren Sie die Funktion '' | + | [[https:// |
| - | | + | |