lehrkraefte:blc:informatik:glf20:programmieren:division

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:informatik:glf20:programmieren:division [2020/10/28 10:33]
mirco.triner created
lehrkraefte:blc:informatik:glf20:programmieren:division [2020/10/30 13:27] (current)
mirco.triner
Line 1: Line 1:
 ====== Ganzzahlige Division - Modulo ====== ====== Ganzzahlige Division - Modulo ======
  
-Schleifen, werden benötigt, um einen Codeblock, den man auch als Schleifenkörper bezeichnet, wiederholt auszuführen. In Python gibt es zwei Schleifentypen: die while-Schleife und die for-Schleife.  
  
 <WRAP info> <WRAP info>
-Die meisten Schleifen enthalten einen Zähler oder ganz allgemein Variablendie im Verlauf der Berechnungen innerhalb des Schleifenkörpers ihre Werte ändern. Ausserhalbd.hnoch vor dem Beginn der Schleifewerden diese Variablen initialisiert.  +*  Die ganzzahlige Division ist eine Operationwelche ausgibtwie oft eine Zahl in einer Anderen Platz hatBeispielsweise hat vier in zehn zwei Mal Platz. 
-  * Zähler werden ausserhalb der Schleife initialisiert. +<code>//</code> 
-Vor jedem Schleifendurchlauf wird geprüftob ein Ausdruck, in dem diese Variable oder Variablen vorkommenwahr istDieser Ausdruck bestimmt das Endekriterium der SchleifeSolange die Berechnung dieses Ausdrucks "True" liefert wird der Rumpf der Schleife ausgeführt. Nachdem alle Anweisungen des Schleifenkörpers durchgeführt worden sindspringt die Programmsteuerung automatisch zum Anfang der Schleife, also zur Prüfung des Endekriteriums zurück und prüft wieder, ob diese nochmals erfüllt ist+ 
-Wenn ja, geht es wie oben beschrieben weiter, ansonsten wird der Schleifenkörper nicht mehr ausgeführt und es wird mit dem Rest des Skriptes fortgefahren. Das nebenstehende Diagramm zeigt dies schematisch. +*  Der Modulo-Operator bezeichnet hingegen den Restwelcher bei einer ganzzahligen Division übrig bleibt. In unserem Beispiel wäre das zwei
-  * Solange das Kriterium erfüllt ist (TRUE) wird der Code innerhalb der Schleife ausgeführt.+<code>%</code> 
 + 
 + Der Variablentyp des Resultats einer ganzzahligen Divisionoder dem Resthängt vom Input abSind beide Zahlen Integer, so ist auch das Resultat ein IntegerIst eine der Inputvariablen Floatso ist auch das Resultat Float.
 </WRAP> </WRAP>
  
Line 14: Line 15:
 Kopieren, testen und verstehen Sie folgenden Code: Kopieren, testen und verstehen Sie folgenden Code:
 <code python> <code python>
-counter 0 +4 
-while counter < 10: +y = 10 
-    print(counter+ 
-    counter += 1+print(y//x
 +print(y%x)
 </code> </code>
 +Ändern Sie die Werte von x und y.
 </WRAP> </WRAP>
  
 <WRAP info> <WRAP info>
-Bei einer While-Schleife kann es leicht passieren, dass die Schleife endlos weiterläuft. Im Gegensatz zu einer For-Schleife muss die Variable bei einer While-Schleife manuell verändert werden.+BREAK: Ein break in einer Schleife (Wiederholung) führt zu einem Abbruch der Schleife. Das heisst, dass die Schleife gleich zum nächsten Schritt weitergeht.
 </WRAP> </WRAP>
  
 +<WRAP info>
 +Negative Zahlen werden gleich wie positive Zahlen bei einer ganzzahligen Division behandelt.
  
-<WRAP todo> +*  Aus 10/3=3,3 wird bei der ganzzahligen Division 3. 3,3 wird in diesem Fall abgerundet. 
-Schreiben Sie ein Programm, bei welchem der Benutzer eine zufällige Zahl zwischen 1 und 100 erraten muss.+ 
 +*  Aus -10/3=-3,3 wird bei der ganzzahligen Division -4. -3,3 wird in diesem Fall ebenfalls gegen unten gerundet.
  
-Beispiel einer Ausgabe 
-<code text> 
-Neue Zahl: 15 
-Zahl zu gross 
-Neue Zahl: 
-</code> 
 </WRAP> </WRAP>
  
  
 <WRAP todo> <WRAP todo>
-Nun drehen wir den Spiess um. Schreiben Sie ein Programm, welches eine zufällige Zahl zu finden versucht. Versuchen Sie einen möglichst effizienten Algorithmus zu finden. 
-</WRAP> 
  
-<WRAP todo> +<quizlib id="quiz" rightanswers="[['a0']['a1']['a1']['a0'], ['a0'], ['a0']]" submit="Check Answers"> 
-Schreibe ein Programmwelches eine Liste bestehend aus ganzen Zahlen aufsteigend sortiert. Der Benutzer soll per Eingabe entscheidenwelche Elemente in die Liste kommen und er soll so viele Elementen eingeben könnenwie er willWenn er mit der Eingabe fertig ist, soll er mit einem Befehl (zum Beispiel qdie Eingabe beenden.+    <question title="&lt;pre&gt;1//2" type="radio">0|1|2</question> 
 +    <question title="&lt;pre&gt;23%7" type="radio">1|2|3</question> 
 +    <question title="&lt;pre&gt;2.3//1" type="radio">2|2.0</question> 
 +    <question title="&lt;pre&gt;-5//2" type="radio">-3|0|2</question> 
 +    <question title="&lt;pre&gt;5%2" type="radio">1|2|3</question> 
 +    <question title="Wie ist die Ausgabe nach dem Ausführen des Codes?&lt;pre&gt;for num in range(1014):&lt;br&gt;  for i in range(2, num):&lt;br&gt;    if num%i == 1:&lt;br&gt;      print(num)&lt;br&gt;      break" type="radio">10 11 12 13|11 13</question> 
 +</quizlib>
 </WRAP> </WRAP>
  
  
-<WRAP todo> 
-**FIZZ BUZZ!** Programmieren Sie ein Programm, das alle Zahlen von 1 bis 100 ausgibt, aber alle jene, die durch 3 teilbar sind durch ''fizz'' ersetzt, jene, die durch 5 teilbar sind durch ''buzz'' ersetzt und jene, die sowohl durch 3 als auch durch 5 teilbar sind durch ''fizz buzz'' ersetzt. 
-<hidden Verlangte Ausgabe bis 30> 
-<code text> 
-1 
-2 
-fizz 
-4 
-buzz 
-fizz 
-7 
-8 
-fizz 
-buzz 
-11 
-fizz 
-13 
-14 
-fizz buzz 
-16 
-17 
-fizz 
-19 
-buzz 
-fizz 
-22 
-23 
-fizz 
-buzz 
-26 
-fizz 
-28 
-29 
-fizz buzz 
-</code> 
-</hidden> 
-</WRAP> 
  
-===== Optionale, weitere Aufgaben ===== 
-  * Schreibe ein anderes Programm, welches eine Liste aus Zeichenketten alphabetisch sortiert. 
-  * Geben Sie alle Teiler einer Zahl aus. 
-  * Geben Sie die Primfaktorzerlegung einer Zahl aus. 
-  * Bestimmen Sie, ob eine gegebene Zahl eine Primazahl ist oder nicht. 
-  * Geben Sie die Primzahlen der Reihe nach aufsteigend aus. 
  
-===== Lösungsvorschläge ===== 
-<hidden Lösungvorschläge> 
-<code python> 
-for i in range(1,101): 
-    if i % 3 == 0  and  i % 5 == 0: 
-        print("fizz buzz") 
-    elif i % 3 == 0: 
-        print("fizz") 
-    elif i % 5 == 0: 
-        print("buzz") 
-    else: 
-        print(i) 
-</code> 
  
-<code python> 
-t = inputInt("Temperatur in Grad Celsius") 
-text  =  "%d°C ist " % t 
-if (t<15):     
-    text += "kalt"   # eine Abkürzung für text = text + "kalt" 
-elif t<25: 
-    text += "warm" 
-else: 
-    text += "heiss" 
  
-print(text+".") 
-</code> 
  
-<code python> 
-# Definition der Koeffizienten 
-a,b,c = 0,0,0 
-print("Gleichung %.2fx^2%+.2fx%+.2f = 0" % (a,b,c)) 
  
-if a==0:  # Lineare Gleichung + 
-    if b==0:  # Gleichung ohne x + 
-        if c==0: +
-            print("Wahre Aussage, L=R, jedes x ist Lösung"+
-        else: +
-            print("Falsche Aussage, keine Lösung"+
-    else: +
-        print("Lineare Gleichung, eine Lösung: x=%f" % (-c/b)) +
-else: # Quadratische Gleichung +
-    d = b*b-4*a*c  # Diskriminante +
-    if (d<0): +
-        print("Keine reelle Lösung"+
-    elif d==0: +
-        print("Genau eine Lösung x=%f" % (-b/(2*a))) +
-    else: +
-        d = d**0.5 # Wurzel aus der Diskriminante +
-        x1 = (-b-d)/(2*a) +
-        x2 = (-b+d)/(2*a) +
-        print("Zwei Lösungen x1=%f und x2=%f" % (x1, x2)) +
-</code> +
-</hidden>+
  • lehrkraefte/blc/informatik/glf20/programmieren/division.1603877639.txt.gz
  • Last modified: 2020/10/28 10:33
  • by mirco.triner