Kurs:Python/LG/Py2009/Aufgaben
Das Galileo Openbook enthält leider gar keine Aufgaben, was das Üben erschwert. Teilweise kann man die Programmieraufgaben für andere Sprachen zum Üben verwenden.
Datei-Input Techniken (Gailer 23)
BearbeitenDaten aus einer Datei lesen (Gailer 22)
BearbeitenDatei-Input und -Output (Gailer 21)
BearbeitenAufgabe 1 - Steuerzeichen
BearbeitenVersion „Bildschirmausgabe“
text = ""
for i in range (10):
text = text + "X"
print text
Version „Dateiausgabe“
text = ""
for i in range (10):
text = text + "X"
print text
frage = input ("Soll der Text in die Datei geschrieben werden? 1 = ja, 0 = nein: ")
if frage == 1:
fobj = open("ausgabe.txt", "w")
fobj.write(text)
fobj.close()
Die Datei ausgabe.txt
ist 10 Byte groß, das heißt jedes Zeichen ist ein Byte groß.
Aufgabe 2 — Mehr Steuerzeichen
Bearbeitentext = ""
for i in range (10):
text = text + "X"
for j in range (10):
print text
frage = input ("Soll der Text in die Datei geschrieben werden? 1 = ja, 0 = nein: ")
if frage == 1:
fobj = open("ausgabe.txt", "w")
for k in range (10):
fobj.write(text)
fobj.close()
print "Daten wurden in die Datei geschrieben."
Verbesserte Programm-Version:
text = ""
for i in range (10):
text = text + "X"
for j in range (10):
print text
frage = input ("Soll der Text in die Datei geschrieben werden? 1 = ja, 0 = nein: ")
if frage == 1:
fobj = open("ausgabe.txt", "w")
for k in range (10):
fobj.write(text + "\n")
fobj.close()
print "Daten wurden in die Datei geschrieben."
Protokoll:
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
Die Datei ausgabe.txt
ist 110 Byte groß. Es gehen also 10 Byte für Steuerzeichen drauf.
Aufgabe 3 — An eine bestehende Datei anhängen
Bearbeiteninp = open("ausgabe.txt", "a")
eingabe=raw_input("Bitte geben Sie Ihren Namen ein:")
inp.write(eingabe)
inp.close()
Aufgabe 4 — Eine wirklich kleine Datei
Bearbeitentext = ""
print "Text:", text
frage = input ("Soll der Text in die Datei geschrieben werden? 1 = ja, 0 = nein: ")
if frage == 1:
fobj = open("ausgabe.txt", "w")
fobj.write(text + "\n")
fobj.close()
print "Daten wurden in die Datei geschrieben."
Die Datei ausgabe.txt
hat eine Größe von 1 Byte. Wahrscheinlich steht in der Datei jetzt, wie der Name ist und welcher Dateityp vorliegt.
Aufgabe 5 — Text Editor
Bearbeiteneingabe_a=input("Moechten Sie eine Datei oeffnen oder eine neue Datei schreiben? \n neue Datei: 1 \t Datei lesen: 2 \n -> ")
if eingabe_a==1:
eingabe_b=raw_input("Geben Sie bitten den Dateinamen mit Endung ein:")
inp = open(eingabe_b, "w")
print " Sie koennen solange Ihren Text eingeben, bis Sie in einer Zeile |x| schreiben!"
running = True
while running:
eingabe_c = raw_input("schreiben:")
if eingabe_c.count("|x|"):
inp.close()
running = False
else:
inp.write(eingabe_c + "\n")
elif eingabe_a==2:
eingabe_d=raw_input("Bitte geben Sie den gesamten Pfad mit Endung ein:")
inp = open(eingabe_d, "r")
for line in inp.readlines():
print line
Beispielprogramm — Zahlenschloss (Gailer 20)
BearbeitenAufgabe 1/2 - Zahlenschloss
Bearbeiten# Zahlenkombination ist in den Variablen gespeichert.
code1 = 100
code2 = 10
code3 = 40
# eingabe1 = 0
# eingabe2 = 0
# eingabe3 = 0
# Eingabe
eingabe1 = input ("Geben Sie die erste Zahl ein: ")
eingabe2 = input ("Geben Sie die zweite Zahl ein: ")
eingabe3 = input ("Geben Sie die dritte Zahl ein: ")
# Pruefung der Eingabe und Rueckmeldung
if code1 - 3 < eingabe1 < code1 + 3 and code2 - 3 < eingabe2 < code2 + 3 and code3 - 3 < eingabe3 < code3 + 3:
print "Das Schloss oeffnet sich."
else:
print "Bitte lassen Sie das Zahlenschloss in Ruhe."
Aufgabe 3 - Ratespiel
BearbeitenDie erste Version:
import random
durchlauf = 0
zahl = random.randint(1,10)
while durchlauf != 3:
eingabe = input ("Geben Sie eine Zahl zwischen 1 und 10 ein: ")
if zahl == eingabe:
print "Glueckwunsch!"
break
else:
print "Leider nicht. Naechster Versuch."
durchlauf = durchlauf + 1
else:
print "Die gesuchte Zahl war", zahl
print "ENDE."
Eine verbesserte Version:
import random
durchlauf = 0
zahl = random.randint(1,10)
while durchlauf != 3:
eingabe = input ("Geben Sie eine Zahl zwischen 1 und 10 ein: ")
if zahl == eingabe:
print "Glueckwunsch!"
break
elif zahl != eingabe and durchlauf < 2:
print "Leider nicht. Naechster Versuch."
durchlauf = durchlauf + 1
else:
durchlauf = durchlauf +1
else:
print "Die gesuchte Zahl war", zahl
print "ENDE."
Aufgabe 4 - komplizierteres Ratespiel
BearbeitenJetzt mit einer for-Schleife realisiert.
import random
durchlaeufe = 3
zahl = random.randint(1,10)
for i in range (durchlaeufe):
eingabe = input ("Geben Sie eine Zahl zwischen 1 und 10 ein: ")
if zahl == eingabe:
print "Glueckwunsch!"
break
elif eingabe >= zahl + 3 or eingabe <= zahl - 3:
print "Kalt."
elif eingabe >= zahl + 2 or eingabe <= zahl - 2:
print "Warm."
else:
print "Heiss."
else:
print "Die gesuchte Zahl war", zahl
print "ENDE."
Aufgabe 5 - noch komplizierteres Ratespiel
Bearbeitenimport random
runden = 10
durchlaeufe = 3
ergebnis = 0
for j in range (runden):
zahl = random.randint(1,10)
print ""
print "Ich denke an eine Zahl zwischen 1 und 10."
print "Sie haben 3 Versuche die Zahl zu erraten!"
for i in range (durchlaeufe):
eingabe = input ("Geben Sie eine Zahl zwischen 1 und 10 ein: ")
if zahl == eingabe:
print "Glueckwunsch!"
ergebnis = ergebnis + 1
break
elif eingabe >= zahl + 3 or eingabe <= zahl - 3:
print "Kalt."
elif eingabe >= zahl + 2 or eingabe <= zahl - 2:
print "Warm."
else:
print "Heiss."
else:
print "Die gesuchte Zahl war", zahl
print ""
if ergebnis <= 7:
print "Sie Amateur."
elif ergebnis == 8:
print "Ok"
elif ergebnis == 9:
print "Superheld"
else:
print "Sie haben geschummelt und werden gemeldet."
print "ENDE."
Ergebnisgesteuerte Schleifen (Gailer 19)
BearbeitenRatenzahlung
Bearbeitenschuld = 1000.0
zins = 1.5
monat = 1
rueckbetrag = input ("Geben Sie den monatlichen Betrag ein: ")
while schuld >= 0:
schuld = schuld + (schuld / 100 * zins) - rueckbetrag
print "Monat: ", monat, "Saldo: ", round(schuld,2), "Gesamtbetrag: ", monat * rueckbetrag
monat = monat + 1
print "Ende"
Wirkstoffgehalt eines Arzneimittels
Bearbeitenmonat = 0
wirkstoffgehalt = 100.0
print "Monat: ", monat, "Wirkstoffgehalt: ", wirkstoffgehalt
while wirkstoffgehalt > 50.0:
monat = monat + 1
wirkstoffgehalt = wirkstoffgehalt * 0.96
if wirkstoffgehalt > 50.0:
print "Monat: ", monat, "Wirkstoffgehalt: ", round(wirkstoffgehalt, 2)
else:
print "Monat: ", monat, "Wirkstoffgehalt: ", round(wirkstoffgehalt, 2), "ABGELAUFEN"
print "ENDE"
Überwachungsgesteuerte Schleifen (Gailer 18)
BearbeitenAufgabe 1 — Meilen pro Gallone
BearbeitenWir ersetzen: Meilen > Kilometer; Gallonen > Liter.
print "Programm Liter pro Kilometer"
print "Geben Sie einen negativen Wert ein, um das Programm zu beenden."
while True:
anfang_stand = input ("Geben Sie den Anfangsstand (km) ein:")
end_stand = input ("Geben Sie den Endstand (km) ein:")
verbrauch = input ("Geben Sie den Verbrauch (l) ein:")
if anfang_stand < 0 or end_stand < 0 or verbrauch < 0:
print "Das Programm wurde beendet."
break
else:
print "Kilometer pro Liter:", (end_stand - anfang_stand) * 1.0 / verbrauch
Aufgabe 2 - Bereiche addieren
Bearbeitensumme_innen = 0
summe_aussen = 0
eingabe = 1
print "Bereiche addieren!"
untergrenze = input("Bitte geben Sie eine Untergrenze des Bereichs ein: ")
obergrenze = input("Bitte geben Sie eine Obergrenze des Bereiches ein: ")
while eingabe != 0:
eingabe = input("Daten eingeben: ")
if untergrenze < eingabe < obergrenze:
summe_innen = summe_innen + eingabe
else:
summe_aussen = summe_aussen + eingabe
print "Summe der Werte innerhalb des Bereichs: ", summe_innen
print "Summe der Werte ausserhalb des Bereichs: ", summe_aussen
Aufgabe 3 - Versandkosten-Kalkulator
Bearbeiten# Versandkosten-Kalkulator
# Version 1.0
gewicht = 1
versandkosten_normal = 3.0
versandkosten_extra = 10.0
versandkosten_extra_kg = 0.25
versandkosten = 0
print "Bitte geben Sie eine 0 ein, um das Programm zu beenden."
while gewicht != 0:
gewicht = input ("Bitte geben Sie das Gewicht der Sendung (Gramm) an: ")
if gewicht <= 500:
versandkosten = versandkosten_normal
elif gewicht > 500:
versandkosten = versandkosten_extra + (versandkosten_extra_kg * round((gewicht - 500)/100, 0))
print "Versandkosten:", versandkosten
print "ENDE"
Aufgabe 4 - Fläche von Rechtecken
Bearbeitenprint "CAD Programm"
print "Geben Sie viermal eine 0 ein, um das Programm zu beenden."
while True:
# Koordinaten eingebn. Koordinate 1 ( a | b ), Koordinate 2 ( c | d )
a = input ("Erster Eckpunkt X-Koordinate: ")
b = input ("Erster Eckpunkt X-Koordinate: ")
c = input ("Erster Eckpunkt X-Koordinate: ")
d = input ("Erster Eckpunkt X-Koordinate: ")
seite1 = c - a
seite2 = d - b
if a == b == c == d == 0:
break
elif seite1 == 0 or seite2 == 0:
break
else:
print "Breite:", seite1, "Hoehe:", seite2, "Flaeche:", seite1 * seite2
print "ENDE"
Beispiele von Zählschleifen (Gailer 17)
BearbeitenAufgabe 3 - Keil von Sternen
Bearbeiten# Referenzen
sterne = ""
zahl = input ("Anfangszahl der Sterne: ")
# Schleife 1 zur Ausgabe
for i in range (zahl):
for i in range (zahl):
sterne = sterne + "*"
print sterne
sterne = ""
zahl = zahl - 1
print "Ende"
Zählschleifen (Gailer 16)
BearbeitenAufgabe 1 — Integer addieren
Bearbeitensumme = 0
anzahl = input ("Wie viele Integer sollen addiert werden: ")
for i in range (anzahl):
addition = input ("Geben Sie einen Integer ein: ")
summe = summe + addition
print "Die Summe ist: %d." % (summe)
Aufgabe 2
Bearbeitenn = input ("Geben Sie eine Ganzzahl ein: ")
summe = 0
for i in range (1, n+1):
summe = summe + (1.0 / i)
print "Die Summe ist:", summe
Aufgabe 3
Bearbeitenimport math
print "Wieviele Zahlen moechten Sie eingeben?"
eingabe=int(raw_input())
summe=0
summequadrat=0
for i in range (1,eingabe+1):
print "Geben Sie eine Zahl ein:"
zahl=float(raw_input())
summe+=zahl
summequadrat+=(zahl*zahl)
durchschnitt=summe/eingabe
durchschnittquadrat=summequadrat/eingabe
SD=math.sqrt(durchschnittquadrat-durchschnitt*durchschnitt)
print "Die Standardabweichung ist: %.5f" % (SD)
Schleifen und die while-Anweisung (Gailer 15)
BearbeitenAufgabe 1
Bearbeitenstart = 0
ende = 0
start = input ("Startwert: ")
ende = input ("Endwert: ")
for i in range (start, ende):
print i
print ende
Die Zeile print ende
benötigen wir, weil die for-Schleife nie den Wert ende erreichen kann.
Aufgabe 2
BearbeitenEin Wort soll solange auf dem Bildschirm ausgegeben werden, wie das Wort Buchstaben hat.
import string
wort = raw_input ("Geben Sie ein Wort ein: ")
for c in wort:
print wort
print len(wort)
Erfüllt die Aufgabe und macht noch etwas mehr. *freu*
Aufgabe 3
Bearbeitenpunkte = "."
laenge = 30
wort = raw_input ("Geben Sie das erste Wort ein: ")
zahl = raw_input ("Geben Sie das zweite Wort ein: ")
laenge = laenge - len (wort) - len (zahl)
print laenge
for c in range(laenge-1):
punkte = punkte + "."
print wort + punkte + zahl
# turtle.....................153
# turtle.....................153 - Vergleich, das Programm arbeitet einwandfrei.
# Zeilenlaenge 30
......................
1234567890123456789012
Boolesche Ausdrücke (Gailer 14)
BearbeitenScheckgebühr
Bearbeiten# girokonto = 0
# sparkonto = 0
girokonto = input("Bitte geben Sie den Kontostand Ihres Girokontos ein: ")
sparkonto = input("Bitte geben Sie den Kontostand Ihres Sparkontos ein: ")
if sparkonto > 1500 and girokonto > 1000:
print "Ok."
else:
print "Wir berechnen eine Scheckgebuehr in Hoehe von 0,15 EUR."
Wettbewerb „Torten essen“
BearbeitenErst einmal die Angaben in Pfund in kg umrechnen:
pfund = 0.45359237 # 1 Pfund = 0.45359237 kg
wert = input ("Bitte geben Sie den Wert in Pfund ein: ")
wert = wert * pfund
print wert, "kg"
Man könnte noch optimieren: Man könnte die Zeile wert = wert * pfund
einsparen, indem man gleich schreibt: print wert * pfund, "kg"
. Runden wäre auch nicht schlecht:
pfund = 0.45359237 # 1 Pfund = 0.45359237 kg
wert = input ("Bitte geben Sie den Wert in Pfund ein: ")
print round(wert * pfund, 2), "kg"
Demnach müssen die Teilnehmer zwischen 106,5 kg und 120 kg schwer sein.
print "State Fair Pie Eating Contest"
gewicht = input ("Bitte geben Sie Ihr Gewicht in kg ein: ")
if 106.5 < gewicht < 120:
print "Sie duerfen in der Schwergewichtsklasse starten. Sie sind zugelassen."
else:
print "Sie muessen in einer anderen Klasse starten. Sie sind nicht zugelassen."
Reifendruck, Version 1
Bearbeiten# Reifendruck
reifendruck_vorne_links = 0
reifendruck_vorne_rechts = 0
reifendruck_hinten_links = 0
reifendruck_hinten_rechts = 0
# Eingabe
reifendruck_vorne_rechts = input ("Reifendruck: rechter Vorderreifen ")
reifendruck_vorne_links = input ("Reifendruck: linker Vorderreifen ")
reifendruck_hinten_rechts = input ("Reifendruck: rechter Hinterreifen ")
reifendruck_hinten_links = input ("Reifendruck: linker Hinterreifen ")
# Ausgabe
if reifendruck_vorne_rechts == reifendruck_vorne_links and reifendruck_hinten_rechts == reifendruck_hinten_links:
print "Reifendruck ist OK"
else:
print "Bitte fahren Sie zur naechsten Werkstatt. Der Reifendruck ist nicht in Ordnung."
Reifendruck, Version 2
Bearbeiten# Reifendruck
reifendruck_vorne_links = 0
reifendruck_vorne_rechts = 0
reifendruck_hinten_links = 0
reifendruck_hinten_rechts = 0
druck_min = 35
druck_max = 45
print "Reifendruck"
# Eingabe
while True:
print "- - - - Bitte machen Sie Ihre Angaben! - - - -"
reifendruck_vorne_rechts = input ("Reifendruck: rechter Vorderreifen ")
if druck_max < reifendruck_vorne_rechts or reifendruck_vorne_rechts < druck_min:
print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
continue
reifendruck_vorne_links = input ("Reifendruck: linker Vorderreifen ")
if druck_max < reifendruck_vorne_links or reifendruck_vorne_links < druck_min:
print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
continue
reifendruck_hinten_rechts = input ("Reifendruck: rechter Hinterreifen ")
if druck_max < reifendruck_hinten_rechts or reifendruck_hinten_rechts < druck_min:
print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
continue
reifendruck_hinten_links = input ("Reifendruck: linker Hinterreifen ")
if druck_max < reifendruck_hinten_links or reifendruck_hinten_links < druck_min:
print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
continue
# Ausgabe
if reifendruck_vorne_rechts == reifendruck_vorne_links and reifendruck_hinten_rechts == reifendruck_hinten_links:
print "Reifendruck ist OK"
break
else:
print "Bitte fahren Sie zur naechsten Werkstatt. Der Reifendruck ist nicht in Ordnung."
print "Ende"
Der Quellcode ist nicht sehr elegant.
Reifendruck, Version 3
Bearbeiten# Reifendruck
reifendruck_vorne_links = 0
reifendruck_vorne_rechts = 0
reifendruck_hinten_links = 0
reifendruck_hinten_rechts = 0
druck_min = 35
druck_max = 45
kontrolle_vorne = 0
kontrolle_hinten = 0
print "Reifendruck"
# Eingabe
while True:
print "- - - - Bitte machen Sie Ihre Angaben! - - - -"
reifendruck_vorne_rechts = input ("Reifendruck: rechter Vorderreifen ")
if druck_max < reifendruck_vorne_rechts or reifendruck_vorne_rechts < druck_min:
print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
continue
reifendruck_vorne_links = input ("Reifendruck: linker Vorderreifen ")
if druck_max < reifendruck_vorne_links or reifendruck_vorne_links < druck_min:
print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
continue
reifendruck_hinten_rechts = input ("Reifendruck: rechter Hinterreifen ")
if druck_max < reifendruck_hinten_rechts or reifendruck_hinten_rechts < druck_min:
print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
continue
reifendruck_hinten_links = input ("Reifendruck: linker Hinterreifen ")
if druck_max < reifendruck_hinten_links or reifendruck_hinten_links < druck_min:
print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
continue
# Kontrolle vorn
if reifendruck_vorne_rechts > reifendruck_vorne_links:
kontrolle_vorne = reifendruck_vorne_rechts - reifendruck_vorne_links
else:
kontrolle_vorne = reifendruck_vorne_links - reifendruck_vorne_rechts
# Kontrolle hinten
if reifendruck_hinten_rechts > reifendruck_hinten_links:
kontrolle_hinten = reifendruck_hinten_rechts - reifendruck_hinten_links
else:
kontrolle_hinten = reifendruck_hinten_links - reifendruck_hinten_rechts
# Ausgabe
if kontrolle_vorne > 3.0 or kontrolle_hinten > 3.0:
print "Bitte fahren Sie zur naechsten Werkstatt. Der Reifendruck ist nicht in Ordnung."
else:
print "Reifendruck ist OK"
break
print "Ende"
Das Programm wirkt auf mich etwas umständlich, weil lang. Ich vermute Redundanz. Außerdem startet das Programm nach einer Warnung
einen neuen Programmdurchlauf, was mir ebenfalls noch nicht gefällt.
Die if-Anweisung (Gailer 13)
BearbeitenDiscountpreise
Bearbeitenbetrag = input ("Geben Sie den Gesamtbetrag ein: ")
print "Discountpreis:", (betrag if betrag <= 1000 else betrag * 0.9)
Überprüfung der Bestellung
Bearbeitenpreis_schraube = 5
preis_mutter = 3
preis_u_scheibe = 1
# Kontrolle der Preise
# print preis_schraube, preis_mutter, preis_u_scheibe
while True:
print "Wir nehmen Ihre Bestellung auf!"
anzahl_schrauben = input ("Wie viele Schrauben bestellen Sie? ")
anzal_mutter = input ("Wie viele Muttern bestellen Sie? ")
anzahl_u_scheiben = input ("Wie viele Unterlegscheiben bestellen Sie? ")
if anzahl_schrauben > anzal_mutter:
print "Kontrollieren Sie Ihre Bestellung!"
ueberpruefung = input ("Ist Ihre Eingabe korrekt? 0 = ja, 1 = nein ")
if ueberpruefung == 0:
break
else:
continue
else:
print "Kontrolle ergab keine Besonderheiten."
break
rechnungsbetrag = (anzahl_schrauben * preis_schraube + anzal_mutter * preis_mutter + anzahl_u_scheiben * preis_u_scheibe) / 100.0
print "Sie haben", anzahl_schrauben, "Schrauben,", anzal_mutter, "Muttern,", anzahl_u_scheiben, "Unterlegscheiben bestellt."
print "Gesamtbetrag: ", rechnungsbetrag , "Euro."
Y2K Problem Detektor
BearbeitenErste Programmversion
while True:
print "Wir berechnen Ihr Alter!"
geburtsjahr = input("Geben Sie Ihr Geburtsjahr ein: ")
jahr = input ("Geben Sie das aktuelle Jahr ein: ")
alter = 0
if geburtsjahr <= 10:
alter = jahr - geburtsjahr
else:
alter = 100 - geburtsjahr + jahr
print alter
Elegantere Programmversion
while True:
print "Wir berechnen Ihr Alter!"
geburtsjahr = input("Geben Sie Ihr Geburtsjahr ein: ")
jahr = input ("Geben Sie das aktuelle Jahr ein: ")
print "Sie sind", (jahr - geburtsjahr if geburtsjahr <= 10 else jahr + 100 - geburtsjahr) , "Jahre alt."
Tuple: Auflisten von Daten
BearbeitenEin Tuple ist eine Aneinanderreihung von Werten, die durch ein Komma getrennt werden.
ein Tuple könnte zum Beispiel so aussehen:
Obstliste = ( "Apfel", "Banane", "Birne" )
Es wurden also drei Strings in dem Objekt Obst abgelegt. Wenn wir alle Obstsorten jetzt wieder aufrufen möchten, dann kann man das mit einer For-Schleife tun:
for Obst in Obstliste:
print Obst
dabei ist Obst ein Name, der nur für die For-Schleife gilt und mit dem das Obst abgerufen werden kann, das gerade an der Reihe ist.
Die Ausgabe wäre:
Apfel
Banane
Birne
Ein weiteres Beispiel. Wir möchten jetzt aus zwei Tuples Daten auslesen. Der eine Tuple beinhaltet fünf Namen. Der zweite Tuple beinhaltet eine Liste von Frauen. Jetzt möchten wir jedem Mann eine Frau zuordenen.
Vorschlag:
Jungs=("Peter", "Klaus")
Maedels=("Martina", "Laura")
for Junge in Jungs:
for Maedchen in Maedels:
print Junge, " und ", Maedchen
Nein, so wäre das nicht richtig! ;D
Ausgabe:
Peter und Martina
Peter und Laura
Klaus und Martina
Klaus und Laura