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/20 08:03]
mirco.triner
lehrkraefte:blc:informatik:glf20:programmieren:listen2 [2020/11/20 08:53] (current)
mirco.triner
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 102: Line 114:
     print(liste[i])     print(liste[i])
                  
 +</code>
 +<code>
 +#Aufgabe 2a
 +#Einfache Rechnungen mit + und -
 +from random import *
 +
 +liste = []
 +
 +while True:
 +    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)
 +
 +</code>
 +<code>
 +#Aufgabe 2b
 +#Auswertung zu + und - (dieser Code läuft nicht ohne die Berechnung aus Aufgabe 2a)
 +
 +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>
 +#Aufgabe 2c
 +#Einfache Rechnungen mit +, -, * & /
 +#Mögliche Probleme:
 +#-Benutzer kann bei Divisionen nur eine gewisse Anzahl stellen eingeben
 +#-einfache Rechnungen bedarfen bei der Multiplikation an kleineren Zahlen
 +from random import *
 +
 +liste = []
 +
 +while True:
 +    listeElement = []
 +    funktion = randint(1,4)
 +    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:
 +        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)
 +    
 +
 +anzahlRichtigerAntworten = 0
 +
 +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>
 +#Aufgabe 2d
 +#Einfache Rechnungen mit +, -, * & / inkl. Start und Endzeit
 +
 +from random import *
 +import time
 +from datetime import datetime
 +
 +liste = []
 +start = datetime.now()
 +
 +while True:
 +    listeElement = []
 +    funktion = randint(1,4)
 +    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:
 +        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)
 +    
 +end = datetime.now()
 +anzahlRichtigerAntworten = 0
 +
 +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.1605855816.txt.gz
  • Last modified: 2020/11/20 08:03
  • by mirco.triner