lehrkraefte:sbt:informatik-glf2-23-4

Differences

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

Link to this comparison view

Next revision
Previous revision
lehrkraefte:sbt:informatik-glf2-23-4 [2023/03/10 07:00]
Karlheinz Schubert created
lehrkraefte:sbt:informatik-glf2-23-4 [2023/03/24 13:28] (current)
Karlheinz Schubert
Line 14: Line 14:
 Alle Bilder sind gleich häufig. [^1] Alle Bilder sind gleich häufig. [^1]
  
 +Repititiere, was über die Arbeit mit Listen in Python bekannt ist.
 +
 +<hidden Listenspielereien und print Befehle in Python2>
 +<code python listen.py>
 +"""
 + Wiederholung Listen in Python
 +"""
 +
 +animals = ["Tiger", "Loewe", "Regenwurm"]
 +print(animals)
 +print("----- Bei uns gibt es {} Tiere.".format(len(animals)))
 +for animal in animals:
 +    print("   Es gibt {}".format(animal))
 +print("-----")
 +
 +animals.append("Muecke")
 +print("----- Bei uns gibt es {} Tiere.".format(len(animals)))
 +for animal in animals:
 +    print("   Es gibt {}".format(animal))
 +print("-----")  
 +
 +newAnimal = input("Neues Tier: ")
 +if newAnimal not in animals:
 +    animals.append(newAnimal)
 +else:
 +    print("Das hatten wir schon!")
 +print("----- Bei uns gibt es {} Tiere.".format(len(animals)))
 +for animal in animals:
 +    print("   Es gibt {}".format(animal))
 +print("-----")
 +
 +animals.sort(reverse=True)
 +for animal in animals:
 +    print("   Es gibt {}".format(animal))
 +print("----- Bei uns gibt es {} Tiere.".format(len(animals)))
 +n = 2
 +print("Das {}. Tier der Liste ist {}".format(n+1, animals[n]))
 +
 +
 +vn = ["Paul","Heinrich","Karl-Wilhelm"]
 +nn = ["Ehrlich","Mai","Lange"]
 +
 +for index in range(0,3): 
 +    print("Hallo {:>12} {:20}!".format(vn[index],nn[index]))
 +    
 +# Zuweisen von Werten zu LIsten
 +names = ['Raj', 'Shivam', 'Shreeya', 'Kartik']
 +marks = [7, 9, 8, 5]
 +div = ['A', 'A', 'C', 'B']
 +id = [21, 52, 27, 38]
 +  
 +# Ueberschrift ausgerichtet drucken
 +print("{:<10}{:_^10}{: ^10}{:>5}".format('Name', 'Marks', 'Division', 'ID'))
 +  
 +# Werte ausgerichtet drucken
 +for i in range(0, 4):
 +    print("{:<10}{:_^10}{: ^10}{:>5}".format(names[i], marks[i], div[i], id[i]))
 +    
 +# Liste generisch erzeugen
 +Zahl = 0
 +Anzahl = 100
 +DieListe=[Zahl]*Anzahl     # erzeugt eine Liste gefüllt mit anzahl zahlen.
 +Laenge = len(DieListe)             # gibt die Länge der Liste listenname zurück.
 +print("Generierte Liste:\n{}\nMit Länge: {}".format(DieListe, Laenge))
 +
 +</code>
 +</hidden>
 </WRAP> </WRAP>
  
 <WRAP center round todo> <WRAP center round todo>
-1. Aufgabe+==== 1. Aufgabe ====
  
 Rein hypothetisch: Wie viel kostet es, das Album zu füllen, falls man nie eine Karte doppelt erwischt? Rein hypothetisch: Wie viel kostet es, das Album zu füllen, falls man nie eine Karte doppelt erwischt?
Line 23: Line 90:
 </WRAP> </WRAP>
 <WRAP center round todo> <WRAP center round todo>
-2. Aufgabe+==== 2. Aufgabe ====
  
 Realistisch: Wieviele Bilder muss ein einzelner kaufen, um sein Album zu füllen? Schreibe dazu eine Simulation. Realistisch: Wieviele Bilder muss ein einzelner kaufen, um sein Album zu füllen? Schreibe dazu eine Simulation.
Line 30: Line 97:
    * Schreibe eine Funktion sim, welche das Sammelbildproblem einmal simuliert und die Anzahl nötiger Bilder ausgibt.    * Schreibe eine Funktion sim, welche das Sammelbildproblem einmal simuliert und die Anzahl nötiger Bilder ausgibt.
    * Führe sim mehrmals durch und bestimme die durchschnittliche Anzahl nötiger Bildkäufe.    * Führe sim mehrmals durch und bestimme die durchschnittliche Anzahl nötiger Bildkäufe.
 +
 +<hidden Lösungsvorschlag>
 +<code python listen.py>
 +"""
 +Simulation Sammelbilder
 +A2) Wieviele Bilder muss ein einzelner kaufen, um sein Album zu füllen?
 +"""
 +from random import randint
 +
 +
 +def sim():
 +    zaehler = 0
 +    Sammelliste = []
 +    while len(Sammelliste) < 680:
 +        einBildchen = randint(1, 681)
 +        if einBildchen in Sammelliste:
 +            zaehler += 1
 +        else:
 +            Sammelliste.append(einBildchen)
 +            zaehler += 1
 +    return zaehler
 +
 +gesamtzahl = 0
 +anzahlSimulationen = 200
 +for index in range(0, anzahlSimulationen):
 +    x = sim()
 +    gesamtzahl += x
 +
 +print("-------------------------------------------------")
 +print("Anzahl Käufe etwa: {:.0f} ({} Simulationen)".format(
 +    gesamtzahl/anzahlSimulationen, anzahlSimulationen))
 +
 +
 +# Optimiere die sim Funktion!
 +</code>
 +</hidden>
 </WRAP> </WRAP>
 <WRAP center round todo> <WRAP center round todo>
-3. Aufgabe  +==== 3. Aufgabe ==== 
  
 Mit Tausch: Wir gehen nun davon aus, dass zwei Freunde miteinander eifrig tauschen. Versuche auch dieses Problem zu simulieren. Wie stark verringert sich die Zahl der jeweils gekauften Bilder? Mit Tausch: Wir gehen nun davon aus, dass zwei Freunde miteinander eifrig tauschen. Versuche auch dieses Problem zu simulieren. Wie stark verringert sich die Zahl der jeweils gekauften Bilder?
Line 39: Line 142:
 </WRAP> </WRAP>
 <WRAP center round todo> <WRAP center round todo>
-4. Aufgabe+==== 4. Aufgabe ====
        
 Mit Tauschbörse: Versuche das Problem mit Tauschen auf mehr als 2 Personen auszudehnen. Wie viele Bilder müssen im Schnitt bei 50 Personen gekauft werden, welche perfekt miteinander tauschen? Mit Tauschbörse: Versuche das Problem mit Tauschen auf mehr als 2 Personen auszudehnen. Wie viele Bilder müssen im Schnitt bei 50 Personen gekauft werden, welche perfekt miteinander tauschen?
  • lehrkraefte/sbt/informatik-glf2-23-4.1678428022.txt.gz
  • Last modified: 2023/03/10 07:00
  • by Karlheinz Schubert