Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
de:modul:m319:learningunits:lu05:aufgaben:factorial [2025/06/23 07:45] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1de:modul:m319:learningunits:lu05:aufgaben:factorial [2025/06/23 07:45] (aktuell) – ↷ Seite von modul:m319:learningunits:lu05:aufgaben:factorial nach de:modul:m319:learningunits:lu05:aufgaben:factorial verschoben msuter
Zeile 1: Zeile 1:
 +====== LU05.A11: Factorial ======
 +<WRAP center round todo 60%>
 +Schreibe ein Programm, das die Fakultät einer Zahl berechnet.
 +</WRAP>
  
 +Die Fakultät von n, bezeichnet als ''n!'', wird berechnet als 1 * 2 * 3 * ... * n. Zum Beispiel ist die Fakultät von 4 24 oder 4! = 1 * 2 * 3 * 4 = 24. Außerdem wurde festgelegt, dass die Fakultät von 0 gleich 1 ist, also **0! = 1**.
 +
 +
 +<WRAP center round help 60%>
 +Fakultäten werden vor allem in der Wahrscheinlichkeitsrechnung verwendet, wenn verschiedene mögliche Ordnungen einer Menge untersucht werden. 
 +Zum Beispiel kann eine Gruppe von fünf Personen 5! verschiedene Reihen bilden, und ein Kartenspiel mit 52 Karten kann 52! verschiedene Reihenfolgen haben. 
 +Die Faktorrechnung kann auch zur Berechnung von [[https://de.wikipedia.org/wiki/Kombination_(Kombinatorik)|Kombinationen]] verwendet werden. 
 +Es ist zum Beispiel möglich, 52! / (5! * (52-5)!) verschiedene Blätter aus einem 52-Kartenspiel austeilen, und man kann 40! / (7! * (40 - 7)!) verschiedene 7er-Lotterielinien aus 40 Zahlen bilden.
 +</WRAP>
 +
 +
 +===== Auftrag =====
 +Erstelle die Programmlogik für das Programm:
 +  - Der Benutzer gibt eine natürliche Zahl ein.
 +  - Das Programm berechnet die Fakultät dieser Zahl und gibt das Resultat aus.
 +
 +Schreibe die Programmlogik einmal als ''while''-Schleife in ''main_while'' und einmal als ''for''-Schleife in ''main_for''.
 +
 +
 +==== Beispiel ====
 +
 +<code>
 +Give a number: **3**
 +Factorial: 6
 +</code>
 +Die interne Berechnung war hier 1 * 2 * 3 = 6
 +<code>
 +Give a number: **10**
 +Factorial: 3628800
 +</code>
 +Und nun war die interne Berechnung 1 * 2 * 3 * ... * 8 * 9 * 10 = 3628800
 +
 +
 +===== Vorgehen =====
 +
 +  - Akzeptiere das GitHub Classroom Assignment im Moodlekurs.
 +  - Klone das Repository in PyCharm.
 +  - Codiere die Programmlogik in ''main.py''.
 +  - Teste dein Programm mit den Testfällen in ''main_test.py''.
 +  - Führe einen Commit und einen Push durch.
 +
 +=== Abgabe ===
 +Die Abgabe erfolgt durch den Push ins GitHub Repository.
 +In Moodle ist keine Abgabe vorgesehen oder möglich.
 +
 +===== Vorlage =====
 +<code python>
 +def main_while():
 +    # Write your program here and remove the line "pass"
 +    pass
 +
 +def main_for():
 +    # Write your program here and remove the line "pass"
 +    pass
 +
 +
 +if __name__ == '__main__':
 +    main_while()
 +    main_for()
 +</code>
 +
 +Anmerkung: Kümmere dich ich im Moment nicht zu sehr um ''if %%__%%name%%__%% == '%%__%%main%%__'%%:''
 +Dieser Programmblock legt fest, welche Funktion beim Ausführen gestartet wird.
 +Wir werden dies im Verlauf des Moduls noch genauer betrachten.
 +
 +
 +
 +<nodisp>GitHub-Repo: https://github.com/templates-python/m319-lu05-a11-factorial</nodisp>
 +----
 +{{tag>M319-LU05}}
 +[[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Kevin Maurizi, Marcel Suter
 +
 +Diese Aufgabe ist eine übersetzte und angepasste Aufgabe von [[https://scott3142.uk/|Scott Morgan]], verwendet unter CC BY NC SA.