lehrkraefte:blc:informatik:glf20:programmieren:while

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:glf20:programmieren:while [2020/10/28 11:22]
mirco.triner
lehrkraefte:blc:informatik:glf20:programmieren:while [2020/10/30 13:21] (current)
mirco.triner
Line 22: Line 22:
  
 <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.+Die folgenden Codeblöcke führen zum gleichen Ergebnis: 
 +<code> 
 +counter += 1 
 +</code> 
 +<code> 
 +counter = counter + 1 
 +</code> 
 +</WRAP> 
 + 
 +<WRAP alert> 
 +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. Speichern Sie deshalb Ihr Programm, bevor Sie es ausführen.
 </WRAP> </WRAP>
  
Line 31: Line 41:
 </WRAP> </WRAP>
  
 +<WRAP info> 
 +Zufallszahl - Python kann selbständig eine Zufallszahl generieren 
 +<code> 
 +from random import * 
 +x = randint(1, 100) 
 +print x 
 +</code> 
 +Der oben aufgeführte Code gibt eine ganze Zahl zwischen 1 und 100 aus. 
 +</WRAP>
  
 <WRAP todo> <WRAP todo>
Line 49: Line 67:
 </WRAP> </WRAP>
  
-<WRAP todo> 
-Schreibe ein Programm, welches eine Liste bestehend aus ganzen Zahlen aufsteigend sortiert. Der Benutzer soll per Eingabe entscheiden, welche Elemente in die Liste kommen und er soll so viele Elementen eingeben können, wie er will. Wenn er mit der Eingabe fertig ist, soll er mit einem Befehl (zum Beispiel q) die Eingabe beenden. 
-</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 ===== ===== Lösungsvorschläge =====
 <hidden Lösungvorschläge> <hidden Lösungvorschläge>
 <code python> <code python>
-for i in range(1,101): +#Bankautomat 
-    if i % 3 ==  and 5 == 0: + 
-        print("fizz buzz") +print("Guten Tag") 
-    elif 3 == 0: +cash = inputInt("Welcher Betrag soll ausbezahlt werden?"
-        print("fizz") + 
-    elif 5 == 0: +while cash > 0
-        print("buzz")+    if cash//1000 > 0
 +        print("%d x 1000.-" % (cash//1000)) 
 +        cash cash%1000 
 +    elif cash//200 > 0: 
 +        print("%d x 200.-% (cash//200)) 
 +        cash = cash%200 
 +    elif cash//100 > 0: 
 +        print("%d x 100.-" % (cash//100)) 
 +        cash cash%100 
 +    elif cash//50 > 0: 
 +        print("%d x 50.-% (cash//50)
 +        cash = cash%50 
 +    elif cash//20 > 0: 
 +        print("%d x 20.-" % (cash//20)) 
 +        cash cash%20 
 +    elif cash//10 > 0: 
 +        print("%d x 10.-% (cash//10)
 +        cash = cash%10
     else:     else:
-        print(i)+        print("und noch ein wenig Münz") 
 +        cash = 0 
 </code> </code>
  
 <code python> <code python>
-inputInt("Temperatur in Grad Celsius"+from random import * 
-text   "%d°C ist " % t +to_be_guessed randint(1, 100
-if (t<15)    +guess 0 
-    text += "kalt  # eine Abkürzung für text = text + "kalt+while guess != to_be_guessed
-elif t<25+    guess input("Neue Zahl: "
-    text += "warm"+    if guess > 0: 
 +        if guess > to_be_guessed: 
 +            print "Zahl zu gross
 +        elif guess to_be_guessed: 
 +            print "Zahl zu klein" 
 +    else: 
 +        print "Schade, Sie geben also auf!" 
 +        break
 else: else:
-    text += "heiss" +    print "Glückwunsch! Das war's!"
- +
-print(text+".")+
 </code> </code>
  
 <code python> <code python>
-Definition der Koeffizienten +#Zahl zwischen 1-100 
-a,b,c 0,0,0 +to_be_guessed input("Neue Zahl: ") 
-print("Gleichung %.2fx^2%+.2fx%+.2f = 0% (a,b,c))+guess = 50 
 +counter = 1
  
-if a==0 # Lineare Gleichung +while guess !to_be_guessed
-    if b==0 # Gleichung ohne x +    if(guess > to_be_guessed)
-        if c==0: +        guess //2
-            print("Wahre Aussage, L=R, jedes x ist Lösung"+
-        else: +
-            print("Falsche Aussage, keine Lösung")+
     else:     else:
-        print("Lineare Gleichung, eine Lösung: x=%f" % (-c/b)+        if((to_be_guessed guess% 2 == 1): 
-else: # Quadratische Gleichung +            guess +1 
-    d b*b-4*a*c  # Diskriminante +        else: 
-    if (d<0): +            guess += ((to_be_guessed guess) /2) 
-        print("Keine reelle Lösung"+    print("Round: %d, Guess %d" % (counterguess)) 
-    elif d==0: +    counter += 1 
-        print("Genau eine Lösung x=%f" % (-b/(2*a))) + 
-    else: +print(to_be_guessed) 
-        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" % (x1x2))+
 </code> </code>
 </hidden> </hidden>
  • lehrkraefte/blc/informatik/glf20/programmieren/while.1603880566.txt.gz
  • Last modified: 2020/10/28 11:22
  • by mirco.triner