Differences
This shows you the differences between two versions of the page.
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: | ||
< | < | ||
- | & | + | & |
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 ' | Speichern Sie dabei die Fragen und Antworten in einer Liste. Wählen Sie eine Abbruchbedingung (Beispielsweise Eingabe von ' | ||
+ | </ | ||
- | * Überlegen Sie sich, wo Probleme | + | <WRAP todo> |
+ | Erweitern Sie Ihr Programm, indem die eingegebenen Fragen und Antworten ausgewertet werden. Geben Sie folgendes aus: | ||
+ | |||
+ | * | ||
+ | |||
+ | * Anzahl richtig beantworteter Fragen | ||
+ | |||
+ | * Prozentzahl der richtigen Antworten | ||
+ | </ | ||
+ | |||
+ | <WRAP todo> | ||
+ | Erweitern Sie das Programm mit den Funktionen der Multiplikation und der Division. | ||
</ | </ | ||
Line 87: | Line 99: | ||
<hidden Lösungvorschläge> | <hidden Lösungvorschläge> | ||
< | < | ||
- | #Ergänzen | + | #Versuchen |
+ | from random import * | ||
- | schulklasse | + | liste = [] |
- | + | for i in range(5): | |
- | + | temp = [] | |
- | #Schreiben Sie nun ein Programm, welches jeden zweiten Namen aus der Liste ausgibt. | + | for j in range(3): |
- | #Option 1: For-Schleife | + | temp.append(randint(1,100)) |
- | + | | |
- | for student | + | |
- | | + | |
+ | # | ||
- | #Option 2: While-Schleife | + | for i in range(5): |
- | + | print(liste[i]) | |
- | counter = 0 | + | |
- | while counter < len(schulklasse): | + | |
- | print(schulklasse[counter]) | + | |
- | | + | |
</ | </ | ||
- | |||
< | < | ||
- | #Legen Sie eine Liste mit Namen “zahlen” an, die mindestens 10 Elemente enthält. | + | #Aufgabe 2a |
- | zahlen = [3, | + | #Einfache Rechnungen |
+ | from random import * | ||
+ | liste = [] | ||
- | #Geben Sie das siebte Element der Liste aus. | + | while True: |
- | print(zahlen[6]) | + | |
+ | funktion = randint(1, | ||
+ | if funktion == 1: | ||
+ | zahl1 = randint(1, | ||
+ | zahl2 = randint(1, | ||
+ | eingabe = input(" | ||
+ | if eingabe == ' | ||
+ | break | ||
+ | else: | ||
+ | listeElement.append(zahl1) | ||
+ | listeElement.append(" | ||
+ | listeElement.append(zahl2) | ||
+ | listeElement.append(eingabe) | ||
+ | else: | ||
+ | zahl1 = randint(1, | ||
+ | zahl2 = randint(1, | ||
+ | eingabe = input(" | ||
+ | if eingabe == ' | ||
+ | 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: | ||
- | |||
- | |||
- | #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) | ||
</ | </ | ||
< | < | ||
- | betrag = 480 | + | #Aufgabe 2b |
- | noten = [200, | + | #Auswertung zu + und - (dieser Code läuft nicht ohne die Berechnung aus Aufgabe 2a) |
- | for note in noten: | + | |
- | if betrag> | + | |
- | anzahl = int(betrag/ | + | |
- | print(" | + | |
- | betrag | + | |
- | + | ||
- | if betrag> | + | |
- | print("Es ist noch ein Betrag von %d übrig" | + | |
+ | 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/ | ||
</ | </ | ||
< | < | ||
- | betrag = 488.35 | + | #Aufgabe 2c |
- | noten = [200,100,50, | + | #Einfache Rechnungen mit +, -, * & / |
- | for note in noten: | + | #Mögliche Probleme: |
- | if betrag> | + | #-Benutzer kann bei Divisionen nur eine gewisse Anzahl stellen eingeben |
- | anzahl = int(betrag/note) | + | #-einfache Rechnungen bedarfen bei der Multiplikation an kleineren Zahlen |
- | | + | from random import |
- | | + | |
- | else: | + | |
- | | + | |
- | betrag -= note*anzahl | + | |
- | + | ||
- | if betrag> | + | |
- | print(" | + | |
- | </ | + | |
- | < | + | |
- | print(" | + | |
liste = [] | liste = [] | ||
while True: | while True: | ||
- | eingabe = input(" | + | |
- | if eingabe == ' | + | funktion = randint(1, |
- | break | + | if funktion == 1: |
+ | zahl1 = randint(1, | ||
+ | zahl2 = randint(1, | ||
+ | | ||
+ | if eingabe == ' | ||
+ | break | ||
+ | else: | ||
+ | listeElement.append(zahl1) | ||
+ | listeElement.append(" | ||
+ | listeElement.append(zahl2) | ||
+ | listeElement.append(eingabe) | ||
+ | | ||
+ | zahl1 = randint(1, | ||
+ | zahl2 = randint(1, | ||
+ | eingabe = input(" | ||
+ | | ||
+ | break | ||
+ | | ||
+ | listeElement.append(zahl1) | ||
+ | listeElement.append(" | ||
+ | listeElement.append(zahl2) | ||
+ | listeElement.append(eingabe) | ||
+ | elif funktion == 3: | ||
+ | zahl1 = randint(1, | ||
+ | zahl2 = randint(1, | ||
+ | eingabe = input(" | ||
+ | if eingabe == ' | ||
+ | | ||
+ | else: | ||
+ | listeElement.append(zahl1) | ||
+ | listeElement.append(" | ||
+ | listeElement.append(zahl2) | ||
+ | listeElement.append(eingabe) | ||
else: | else: | ||
- | | + | |
+ | zahl2 = randint(1, | ||
+ | eingabe = input(" | ||
+ | if eingabe == ' | ||
+ | break | ||
+ | else: | ||
+ | listeElement.append(zahl1) | ||
+ | listeElement.append("/" | ||
+ | listeElement.append(zahl2) | ||
+ | listeElement.append(eingabe) | ||
+ | liste.append(listeElement) | ||
+ | | ||
- | print(" | + | 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, | ||
+ | if resultat == element[3]: | ||
+ | anzahlRichtigerAntworten += 1 | ||
+ | | ||
+ | print(len(liste)) | ||
+ | print(anzahlRichtigerAntworten) | ||
+ | print(anzahlRichtigerAntworten/ | ||
</ | </ | ||
< | < | ||
- | #Ergänzung zur vorigen | + | # |
- | #Version 1 | + | #Einfache Rechnungen mit +, -, * & / inkl. Start und Endzeit |
- | for i in range(len(liste)): | + | |
- | for j in range(i, | + | |
- | if liste[i] > liste[j]: | + | |
- | liste[i], liste[j] = liste[j], liste[i] | + | |
- | print(liste) | + | from random import * |
- | </ | + | import time |
+ | from datetime import datetime | ||
- | < | + | liste = [] |
- | #Ergänzung zur vorigen Aufgabe, Liste muss mitgegeben werden | + | start = datetime.now() |
- | #Version 2 | + | |
- | sortedList | + | while True: |
- | + | listeElement | |
- | while len(liste)>0: | + | |
- | | + | if funktion == 1: |
- | | + | zahl1 = randint(1,100) |
- | | + | zahl2 = randint(1, |
+ | eingabe = input(" | ||
+ | if eingabe == ' | ||
+ | break | ||
+ | else: | ||
+ | listeElement.append(zahl1) | ||
+ | listeElement.append(" | ||
+ | listeElement.append(zahl2) | ||
+ | listeElement.append(eingabe) | ||
+ | | ||
+ | zahl1 = randint(1, | ||
+ | zahl2 = randint(1, | ||
+ | eingabe = input(" | ||
+ | if eingabe == ' | ||
+ | break | ||
+ | else: | ||
+ | listeElement.append(zahl1) | ||
+ | listeElement.append(" | ||
+ | listeElement.append(zahl2) | ||
+ | listeElement.append(eingabe) | ||
+ | | ||
+ | zahl1 = randint(1, | ||
+ | zahl2 = randint(1, | ||
+ | eingabe = input(" | ||
+ | if eingabe == ' | ||
+ | break | ||
+ | else: | ||
+ | listeElement.append(zahl1) | ||
+ | listeElement.append(" | ||
+ | listeElement.append(zahl2) | ||
+ | listeElement.append(eingabe) | ||
+ | | ||
+ | zahl1 = randint(1, | ||
+ | zahl2 = randint(1, | ||
+ | eingabe = input(" | ||
+ | if eingabe == ' | ||
+ | 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 | + | |
- | minIndex = counter | + | |
- | counter += 1 | + | |
- | sortedList.append(liste[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) | ||
+ | | ||
+ | anzahlRichtigerAntworten += 1 | ||
+ | |||
+ | print(len(liste)) | ||
+ | print(anzahlRichtigerAntworten) | ||
+ | print(anzahlRichtigerAntworten/ | ||
+ | print(end - start) | ||
</ | </ | ||