Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:algorithmen_ii [2024-12-05 14:24] hofgf_informatik:algorithmen_ii [2024-12-16 11:19] (aktuell) – [Auftrag zu Primzahlen] hof
Zeile 15: Zeile 15:
    * Teil 3: Schreibe eine Funktion `max3(a, b, c)`, die das Maximum von drei Zahlen zurückgibt. _Verwende dazu die `max2` Funktion!_    * Teil 3: Schreibe eine Funktion `max3(a, b, c)`, die das Maximum von drei Zahlen zurückgibt. _Verwende dazu die `max2` Funktion!_
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
 <code python> <code python>
Zeile 27: Zeile 27:
     return max2(max2(a, b), c)     return max2(max2(a, b), c)
  
-print(max3(input('a'), input('b'), input('c')))+print(max3(int(input('a')), int(input('b')), int(input('c'))))
 </code> </code>
 ++++ ++++
Zeile 35: Zeile 35:
    * Teil 1: Drei Zahlen sollen eingegeben werden und danach in absteigender Reihenfolge der Grösse ausgegeben werden.    * Teil 1: Drei Zahlen sollen eingegeben werden und danach in absteigender Reihenfolge der Grösse ausgegeben werden.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 102: Zeile 102:
    - Entscheiden ob eine beliebige Zahl eine Zweierpotenz ist oder nicht    - Entscheiden ob eine beliebige Zahl eine Zweierpotenz ist oder nicht
  
-<nodisp 2>+++++Hinweise:
 +  * $7*3 = 0 + 3 + 3 + 3 + 3 + 3 + 3 + 3$ 
 +  * Wir benötigen eine Schleife, die 7 mal 3 zum Resultat addiert. 
 +  * Ausserhalb der Schleife deklarieren wir eine Variable, die das Resultat enthält und zu Beginn 0 ist, z.B. `result = 0`. 
 +  * Wie lautet die Rechnung für das Hoch-Rechnen mit Multiplikation? Und was ist der Initialwert von `result`? 
 +++++ 
 + 
 +<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 165: Zeile 172:
 ++++ ++++
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung:| ++++Lösung:|
 <code python> <code python>
Zeile 192: Zeile 199:
      * Eine Funktion, die herausfindet (_zurückgibt_), ob eine Zahl `t` ein Teiler ist der Zahl `n`.      * Eine Funktion, die herausfindet (_zurückgibt_), ob eine Zahl `t` ein Teiler ist der Zahl `n`.
      * Wieviele Parameter hat die Funktion `is_divisor`?      * Wieviele Parameter hat die Funktion `is_divisor`?
 +
  
 === Auftrag zu Primzahlen === === Auftrag zu Primzahlen ===
Zeile 197: Zeile 205:
    * in 2er-Gruppen auf Papier (kein Python!)    * in 2er-Gruppen auf Papier (kein Python!)
    * Vorgehen:    * Vorgehen:
-     * Algorithmus überlegen, in 2er-Gruppe besprechen, Notizen machen: Variablen? Schleifen?+     * Algorithmus für Primzahltest überlegen, in 2er-Gruppe besprechen, Notizen machen: Variablen? Schleifen?
      * Mit Lehrperson besprechen      * Mit Lehrperson besprechen
      * In Python: Funktion `is_prime(n)` implementieren      * In Python: Funktion `is_prime(n)` implementieren
Zeile 234: Zeile 242:
     # Es reicht, bis zur Wurzel von n zu testen - gäbe es einen grösseren Teiler t so dass     # Es reicht, bis zur Wurzel von n zu testen - gäbe es einen grösseren Teiler t so dass
     # t*x == n, dann müsste x kleiner sein als Wurzel(n) und wir hätten x bereits gefunden.     # t*x == n, dann müsste x kleiner sein als Wurzel(n) und wir hätten x bereits gefunden.
-    while <= math.sqrt(n): +    while <= math.sqrt(n): 
-        if is_divisor(n, i):+        if is_divisor(n, t):
             # Wir haben einen Teiler gefunden -> keine Primzahl, beenden.             # Wir haben einen Teiler gefunden -> keine Primzahl, beenden.
             return False             return False
-        + 1+        + 1
     # Keinen Teiler gefunden -> wir haben eine Primzahl!     # Keinen Teiler gefunden -> wir haben eine Primzahl!
     return True     return True
Zeile 274: Zeile 282:
         while is_divisor(remainder, factor):         while is_divisor(remainder, factor):
             remainder = remainder / factor             remainder = remainder / factor
-            print factor+            print(factor)
             # yield factor             # yield factor
                  
Zeile 280: Zeile 288:
         factor = next_prime(factor)         factor = next_prime(factor)
  
-prime_factors(input())+prime_factors(int(input()))
 </code> </code>
 ++++ ++++
  • gf_informatik/algorithmen_ii.1733408662.txt.gz
  • Zuletzt geändert: 2024-12-05 14:24
  • von hof