lehrkraefte:blc:informatik:glf20:programmieren:listen2

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:listen2 [2020/11/18 16:33]
mirco.triner
lehrkraefte:blc:informatik:glf20:programmieren:listen2 [2020/11/20 08:53] (current)
mirco.triner
Line 39: Line 39:
  
 <question title="Was wird nach dem Ausführen des Programms auf der Konsole stehen? <question title="Was wird nach dem Ausführen des Programms auf der Konsole stehen?
-&lt;pre&gt;schulklasse = ['Anna','Max','Mia','Gustav']&lt;br&gt;schulklasse2b = schulklasse2a&lt;br&gt;schulklasse2a[3] = 'Hans'&lt;br&gt;print(schulklasse2b)" type="radio">Anna Max Mia Gustav|Anna Max Mia Hans|Hans|Anna Max Mia Gustav Hans</question>+&lt;pre&gt;schulklasse2a = ['Anna','Max','Mia','Gustav']&lt;br&gt;schulklasse2b = schulklasse2a&lt;br&gt;schulklasse2a[3] = 'Hans'&lt;br&gt;print(schulklasse2b)" type="radio">Anna Max Mia Gustav|Anna Max Mia Hans|Hans|Anna Max Mia Gustav Hans</question>
  
  
Line 62: Line 62:
 <WRAP todo> <WRAP todo>
 ===Kopfrechen-Trainer=== ===Kopfrechen-Trainer===
-Erstellen Sie ein Programm, welches den Benutzer nach einfachen Rechnungen fragt.+Erstellen Sie ein Programm, welches den Benutzer nach einfachen Rechnungen fragt. Verwendet werden soll die Addition und die Subtraktion.
 Speichern Sie dabei die Fragen und Antworten in einer Liste. Wählen Sie eine Abbruchbedingung (Beispielsweise Eingabe von 'q') aus, danach soll ausgegeben werden wie viele Fragen richtig beantwortet wurden. Speichern Sie dabei die Fragen und Antworten in einer Liste. Wählen Sie eine Abbruchbedingung (Beispielsweise Eingabe von 'q') aus, danach soll ausgegeben werden wie viele Fragen richtig beantwortet wurden.
 +</WRAP>
  
-*  Überlegen Sie sich, wo Probleme entstehen könnten+<WRAP todo> 
 +Erweitern Sie Ihr Programm, indem die eingegebenen Fragen und Antworten ausgewertet werden. Geben Sie folgendes aus: 
 + 
 +*  Anzahl beantworteter Fragen 
 + 
 +*  Anzahl richtig beantworteter Fragen 
 + 
 +*  Prozentzahl der richtigen Antworten 
 +</WRAP> 
 + 
 +<WRAP todo> 
 +Erweitern Sie das Programm mit den Funktionen der Multiplikation und der Division. Überlegen Sie sich zuerstwelche Probleme dabei auftreten können. Versuchen Sie die evaluierten Probleme bei der Implementierung zu umgehen.
 </WRAP> </WRAP>
  
Line 87: Line 99:
 <hidden Lösungvorschläge> <hidden Lösungvorschläge>
 <code> <code>
-#Ergänzen Sie die Liste der Schülerinnen und Schüler um fünf Namen.+#Versuchen Sie die Ausgabe so zu ändern, dass die Liste wie eine Matrix ausgegeben wird. In diesem Fall 5×3. 
 +from random import *
  
-schulklasse = ['Anna','Max','Mia','Gustav','Paula','Hugo','Petra','Fritz','Emily'+liste = [] 
- +for i in range(5)
- +    temp = [] 
-#Schreiben Sie nun ein Programm, welches jeden zweiten Namen aus der Liste ausgibt. +    for in range(3): 
-#Option 1For-Schleife +        temp.append(randint(1,100)
- +    liste.append(temp)
-for student in range(0,len(schulklasse),2): +
-    print(schulklasse[student])+
  
 +#print(liste)
  
-#Option 2: While-Schleife +for i in range(5): 
- +    print(liste[i]) 
-counter = 0 +        
-while counter < len(schulklasse): +
-    print(schulklasse[counter]) +
-    counter += 2+
 </code> </code>
- 
 <code> <code>
-#Legen Sie eine Liste mit Namen “zahlen” an, die mindestens 10 Elemente enthält. +#Aufgabe 2a 
-zahlen = [3,7,1,67,98,34,76,56,90,32]+#Einfache Rechnungen mit + und - 
 +from random import *
  
 +liste = []
  
-#Geben Sie das siebte Element der Liste aus. +while True: 
-print(zahlen[6])+    listeElement = [] 
 +    funktion = randint(1,2) 
 +    if funktion == 1: 
 +        zahl1 = randint(1,100) 
 +        zahl2 = randint(1,100) 
 +        eingabe = input("%d + %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl1) 
 +            listeElement.append("+"
 +            listeElement.append(zahl2) 
 +            listeElement.append(eingabe) 
 +    else: 
 +        zahl1 = randint(1,100) 
 +        zahl2 = randint(1,100) 
 +        eingabe = input("%d - %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl1) 
 +            listeElement.append("-"
 +            listeElement.append(zahl2) 
 +            listeElement.append(eingabe) 
 +    liste.append(listeElement)
  
 +print(liste)
  
-#Geben Sie die Elemente zwei bis acht als Liste aus. 
-print(zahlen[1:7]) 
- 
- 
-#Geben Sie die Elemente zwei bis acht als einzelne Elemente aus 
-#Option 1: 
-counter = 1 
-while counter < 7: 
-    print(zahlen[counter]) 
-    counter += 1 
- 
-#Option 2: 
-for zahl in range(1,7): 
-    print(zahlen[zahl]) 
- 
- 
-#Fügen Sie die Zahlen 15, 23 und 95 zur Liste hinzu. 
-zahlen.append(15) 
-zahlen.append(23) 
-zahlen.append(95) 
- 
- 
-#Löschen Sie das dritte Element aus der Liste. 
-zahlen.pop(2) 
- 
- 
-#Löschen Sie die Zahl 23 aus der Liste. 
-zahlen.remove(23) 
 </code> </code>
 <code> <code>
-betrag = 480  oder   betrag=inputInt("Bitte Betrag eingeben") +#Aufgabe 2b 
-noten = [200,100,50,20,10] +#Auswertung zu + und - (dieser Code läuft nicht ohne die Berechnung aus Aufgabe 2a)
-for note in noten: +
-    if betrag>=note: +
-        anzahl = int(betrag/note) +
-        print("%d %ser Noten" % (anzahl,note)) +
-        betrag -= note*anzahl +
-         +
-if betrag>0: +
-    print("Es ist noch ein Betrag von %d übrig" % betrag)+
  
 +anzahlRichtigerAntworten = 0
 +
 +for element in liste:
 +    if element[1] == "+":
 +        resultat = element[0] + element[2]
 +        if resultat == element[3]:
 +            anzahlRichtigerAntworten += 1
 +    else:
 +        resultat = element[0] - element[2]
 +        if resultat == element[3]:
 +            anzahlRichtigerAntworten += 1
 +            
 +print(len(liste))
 +print(anzahlRichtigerAntworten)
 +print(anzahlRichtigerAntworten/len(liste)*100)
 </code> </code>
 <code> <code>
-betrag = 488.35  oder   betrag=inputInt("Bitte Betrag eingeben") +#Aufgabe 2c 
-noten = [200,100,50,20,10,5,2,1,0.5,0.2,0.1,0.05] +#Einfache Rechnungen mit +-* & 
-for note in noten: +#Mögliche Probleme
-    if betrag>=note: +#-Benutzer kann bei Divisionen nur eine gewisse Anzahl stellen eingeben 
-        anzahl = int(betrag/note) +#-einfache Rechnungen bedarfen bei der Multiplikation an kleineren Zahlen 
-        if(note > 5)+from random import 
-            print("%d %ser Noten" % (anzahl,note)) +
-        else: +
-            print("%d %ser Münzen" % (anzahl,note)) +
-        betrag -= note*anzahl +
-         +
-if betrag>0: +
-    print("Es ist noch ein Betrag von %d übrig" % betrag) +
-</code> +
-<code> +
-print("Guten Tag")+
 liste = [] liste = []
  
 while True: while True:
-    eingabe = input("Bitte geben Sie eine positive Zahl ein") +    listeElement = [] 
-    if eingabe == 'q'+    funktion = randint(1,4) 
-        break+    if funktion == 1: 
 +        zahl1 = randint(1,100) 
 +        zahl2 = randint(1,100) 
 +        eingabe = input("%d + %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl1) 
 +            listeElement.append("+"
 +            listeElement.append(zahl2) 
 +            listeElement.append(eingabe
 +    elif funktion == 2: 
 +        zahl1 = randint(1,100) 
 +        zahl2 = randint(1,100) 
 +        eingabe = input("%d - %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl1) 
 +            listeElement.append("-"
 +            listeElement.append(zahl2) 
 +            listeElement.append(eingabe) 
 +    elif funktion == 3: 
 +        zahl1 = randint(1,10) 
 +        zahl2 = randint(1,10) 
 +        eingabe = input("%d * %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl1) 
 +            listeElement.append("*"
 +            listeElement.append(zahl2) 
 +            listeElement.append(eingabe)
     else:     else:
-        liste.append(eingabe)+        zahl1 = randint(1,10) 
 +        zahl2 = randint(1,10) 
 +        eingabe = input("%d / %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl1) 
 +            listeElement.append("/"
 +            listeElement.append(zahl2) 
 +            listeElement.append(eingabe) 
 +    liste.append(listeElement) 
 +    
  
-print("Folgende Liste wird nun sortiert:"+anzahlRichtigerAntworten = 0
-print(liste)+
  
 +for element in liste:
 +    if element[1] == "+":
 +        resultat = element[0] + element[2]
 +        if resultat == element[3]:
 +            anzahlRichtigerAntworten += 1
 +    elif element[1] == "-":
 +        resultat = element[0] - element[2]
 +        if resultat == element[3]:
 +            anzahlRichtigerAntworten += 1
 +    elif element[1] == "*":
 +        resultat = element[0] * element[2]
 +        if resultat == element[3]:
 +            anzahlRichtigerAntworten += 1
 +    else:
 +        resultat = element[0] / element[2]
 +        resultat = round(resultat,2)
 +        if resultat == element[3]:
 +            anzahlRichtigerAntworten += 1
 +            
 +print(len(liste))
 +print(anzahlRichtigerAntworten)
 +print(anzahlRichtigerAntworten/len(liste)*100)
 </code> </code>
 <code> <code>
-#Ergänzung zur vorigen Aufgabe, Liste muss mitgegeben werden +#Aufgabe 2d 
-#Version 1 +#Einfache Rechnungen mit +-* & / inkl. Start und Endzeit
-for i in range(len(liste)): +
-    for j in range(i,len(liste)): +
-        if liste[i] > liste[j]: +
-            liste[i]liste[j] = liste[j]liste[i]+
  
-print(liste) +from random import * 
-</code>+import time 
 +from datetime import datetime
  
-<code> +liste = [] 
-#Ergänzung zur vorigen Aufgabe, Liste muss mitgegeben werden +start = datetime.now()
-#Version 2+
  
-sortedList = [] +while True: 
- +    listeElement = [] 
-while len(liste)>0+    funktion = randint(1,4) 
-    minValue liste[0] +    if funktion == 1: 
-    minIndex 0 +        zahl1 = randint(1,100) 
-    counter 0+        zahl2 = randint(1,100) 
 +        eingabe = input("%d + %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl1) 
 +            listeElement.append("+"
 +            listeElement.append(zahl2) 
 +            listeElement.append(eingabe) 
 +    elif funktion == 2: 
 +        zahl1 = randint(1,100) 
 +        zahl2 = randint(1,100) 
 +        eingabe = input("%d - %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl1) 
 +            listeElement.append("-"
 +            listeElement.append(zahl2) 
 +            listeElement.append(eingabe) 
 +    elif funktion == 3: 
 +        zahl1 = randint(1,10) 
 +        zahl2 = randint(1,10) 
 +        eingabe = input("%d * %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl1) 
 +            listeElement.append("*"
 +            listeElement.append(zahl2) 
 +            listeElement.append(eingabe) 
 +    else: 
 +        zahl1 randint(1,10) 
 +        zahl2 = randint(1,10) 
 +        eingabe = input("%d / %d"% (zahl1, zahl2)) 
 +        if eingabe == 'q': 
 +            break 
 +        else: 
 +            listeElement.append(zahl2) 
 +            listeElement.append("/"
 +            listeElement.append(zahl1) 
 +            listeElement.append(eingabe) 
 +    liste.append(listeElement)
          
-    for element in liste: +end datetime.now() 
-        if element < minValue: +anzahlRichtigerAntworten = 0
-            minValue element +
-            minIndex = counter +
-        counter += 1 +
-    sortedList.append(liste[minIndex]+
-    liste.pop(minIndex)+
  
-print(sortedList+for element in liste: 
-        +    if element[1] == "+": 
 +        resultat = element[0] + element[2] 
 +        if resultat == element[3]: 
 +            anzahlRichtigerAntworten += 1 
 +    elif element[1] == "-": 
 +        resultat = element[0] - element[2] 
 +        if resultat == element[3]: 
 +            anzahlRichtigerAntworten += 1 
 +    elif element[1] == "*": 
 +        resultat = element[0] * element[2] 
 +        if resultat == element[3]: 
 +            anzahlRichtigerAntworten += 1 
 +    else: 
 +        resultat = element[0] / element[2] 
 +        resultat = round(resultat,2
 +        if resultat == element[3]: 
 +            anzahlRichtigerAntworten += 1 
 +             
 +print(len(liste)) 
 +print(anzahlRichtigerAntworten) 
 +print(anzahlRichtigerAntworten/len(liste)*100) 
 +print(end - start)
 </code> </code>
  
  • lehrkraefte/blc/informatik/glf20/programmieren/listen2.1605713585.txt.gz
  • Last modified: 2020/11/18 16:33
  • by mirco.triner