Aufgabensammlung Inf-Prog1

Als pdf oder txt herunterladen
Als pdf oder txt herunterladen
Sie sind auf Seite 1von 18

Aufgaben Informatik-Programmieren 1

Zusammenstellung Prof. Dr. Roland Büchi


Aufgabe 1
Schreiben Sie ein Python-Programm, welches als Eingabe den Vornamen erfragt und als Ausgabe einen
Begrüssungstext ausgibt, welcher diesen Vornamen enthält.

Lösung zu 1
x = input ("Wie heisst du? ")
print ("Hallo " + x + "! Wie geht's dir?")

Aufgabe 2
Welche Ausgabe liefert folgendes Python-Programm?

a = 1; b = 2; c = 3
c = c + a + b
a = c - a - b
b = c - a - b
c = c - a - b
print("a = " + str(a))
print("b = " + str(b))
print("c = " + str(c))

Lösung zu 2
Die folgende Tabelle zeigt die Belegung der Variablen vor bzw./ nach den angegebenen Anweisungen:

Das Programm liefert also die Ausgabe


a = 3
b = 1
c = 2

Aufgabe 3
Seit Jahrtausenden versuchen die Menschen, die Kreiszahl _, die definiert ist als Kreisumfang dividiert durch
Kreisdurchmesser, möglichst exakt zu bestimmen.
So rechneten die Babylonier ca. 2000 v. Chr. mit dem Wert 3 1/8
in Ägypten ist seit ungefähr der gleichen Zeit der Wert (16/9) ^2 überliefert
in China wurde seit ca. 250 n. Chr. √10 benutzt
und in Europa ist seit Archimedes (ca. 250 v. Chr.) 3 1/7 eine bekannte Näherung.

Bestimmen Sie diese Werte und berechnen Sie die jeweilige Abweichung von dem auf 15 Dezimalstellen
exakten Wert, wie er in der Konstanten math.pi zur Verfügung gestellt wird. Dazu muss die Bibliothek math
importiert werden.
Hinweis: Die Wurzelfunktion können Sie in Python mittels math.sqrt( einzusetzender Wert) aufrufen.
Lösung zu 3

import math
pi_babylon = 3.0 + (1.0/8.0)
pi_aegypten = 16.0*16.0 / (9.0*9.0)
pi_china = math.sqrt(10.0)
pi_europa = 3.0 + 1.0/7.0

print ("math.pi: " + str(math.pi))


print ("Babylon: " + str(pi_babylon))
print ("\t\t\t Abweichung: " + str(math.pi - pi_babylon))
print ("Aegypten: " + str(pi_aegypten))
print ("\t\t\t Abweichung: " + str(math.pi - pi_aegypten))
print ("China: " + str(pi_china))
print ("\t\t\t Abweichung: " + str(math.pi - pi_china))
print ("Europa: " + str(pi_europa))
print ("\t\t\t Abweichung: " + str(math.pi - pi_europa))

Aufgabe 4
Ihnen wird folgender Handytarif angeboten:
Der Basispreis beträgt 22,98 CHF/Monat, darin sind 30 freie Gesprächsminuten enthalten. Jede darüber
hinausgehende Gesprächsminute kostet 0,248 CHF.
Schreiben Sie ein Python-Programm, das den Rechnungsbetrag berechnet. Die Anzahl der Gesprächsminuten
soll im Programm erfragt werden.

Lösung zu 4

preis_pro_einheit = 0.248
grundgeb = 22.98
dauer = float(input("Geben Sie die Anzahl Minuten ein: "))
if dauer > 30.0:
betrag = (dauer - 30.0)*preis_pro_einheit + grundgeb
else:
betrag = grundgeb
print("Rechnungsbetrag: " + str(betrag) + " CHF")

Aufgabe 5

n = int(input("Gib eine Zahl ein "))


# berechnung mit for-Schleife
summe_for = 0
for i in range(n+1):
summe_for = summe_for + i

# Berechnung mit while-Schleife

Ergänzen Sie das Programm an dieser Stelle, sodass die while Schleife dasselbe Resultat ergibt, wie die for-
Schleife.

print("Summe von 1 bis " + str(n))


print("Ergebnis for- Schleife: " + str(summe_for))
print("Ergebnis do-while-Schleife: " + str(summe_while))
Lösung zu 5
summe_while = 0
i = 1
while i <= n:
summe_while = summe_while + i
i+=1

Aufgabe 6
Die Euler’sche Zahl e hat folgende Reihendarstellung:

Schreiben Sie ein Python-Programm, das den Wert dieser Summe berechnet und ausgibt.
a) bis zum 100. Reihenglied
b) bis der neue Summand < 0.00000001 ist.

Lösung zu 6

# Loesung fuer Teilaufgabe a)


e = 0.0
summand = 1.0
for k in range(100):
summand = summand/(k+1)
e = e + summand
print("Naeherung fuer e nach "
+ str(k+1) + " Iterationen: " + str(e))

# Loesung fuer Teilaufgabe b)


e = 0.0
summand = 1.0
k = 1
while (summand >= 0.00000001):
summand = summand/k;
e = e + summand;
k = k+1;
print("Naeherung fuer e nach "
+ str(k) + " Iterationen: " + str(e))

Aufgabe 7
Die harmonische Reihe ist definiert als unendliche Summe
Implementieren Sie eine Funktion ‘berechne_reihe’, die die harmonische Reihe bis zu einer vorgegebenen
Anzahl von Reihengliedern berechnet. Sie können Ihre Funktion in diese Testumgebung einbetten, welche
beispielsweise einen Aufruf mit der Zahl k verlangt.

def # hier kommt die Lösung hin

n = int(input("Zahl: "))
sum = berechne_reihe(n)
print (sum)

Lösung zu 7

def berechne_reihe(n):
s = 0.0
for k in range (n):
s = s + 1.0/(k+1);
return s

n = int(input("Zahl: "))
sum = berechne_reihe(n)
print (sum)

Aufgabe 8
Für ein Seminar muss jeder Teilnehmer eine schriftliche Hausarbeit anfertigen und einen mündlichen Vortrag
halten. Dafür sind jeweils maximal 10 Punkte erhältlich. Zur Ermittlung der Gesamtpunktzahl wird die
Punktzahl der Hausarbeit mit 3, die des Vortrags mit 2 multipliziert. Das folgende Python-Programm soll die
Gesamtpunktzahl eines Studenten berechnen, der für die Hausarbeit 5 Punkte, für den Vortrag 8 Punkte erhalten
hat. Was geschieht?
Wie kann man den Fehler beheben?

def bewerten (h,v,s):


h = h * 3
v = v * 2
s = h + v

hausarbeit = 5
vortrag = 8
summe = 0
bewerten (hausarbeit, vortrag, summe)
print ("Erreichte Punkte: " + str(summe))

Lösung zu 8
Da Kopien der Werte der Parameter an das Unterprogramm übergeben werden (call by value), bleiben die
Inhalte der Speicherzellen im aufrufenden Programm unverändert. Übergabeparameter sind also nicht geeignet,
um Werte an das aufrufende Programm zurückzuliefern. Stattdessen muss ein eigener Rückgabewert vereinbart
werden.

def bewerten (h,v):


h = h * 3
v = v * 2
return h + v

hausarbeit = 5
vortrag = 8
summe = bewerten (hausarbeit, vortrag)
print ("Erreichte Punkte: " + str(summe))

Aufgabe 9
Ein Mobilfunkanbieter stellt Ihnen 3 Tarife zur Wahl:
Tarif 1 kostet 11,75 CHF Grundgebühr im Monat, zusätzlich kostet jede Gesprächsminute 50 Rappen.
Tarif 2 kostet 19,25 CHF Grundgebühr, dafür schlägt die Gesprächsminute aber nur mit 25 Rappen zu Buche.
Tarif 3 hat eine monatliche Grundgebühr von 22,75 CHF, darin sind 30 Gesprächsminuten pro Monat frei. Erst
jede darüber hinaus gehende Minute kostet dann 0,375 CHF.
Schreiben Sie ein Python-Programm, das für jeden Tarif die Monatsrechnung (für 10 bzw. 20, 30, 40, . . .
100Minuten Gespräche im Monat) erstellt und ausgibt. Definieren Sie für jeden Tarif eine eigene Funktion.

Lösung zu 9

def tarif1(min):
return 11.75 + min * 0.5

def tarif2(min):
return 19.25 + min * 0.25

def tarif3(min):
if (min <= 30):
return 22.75
else:
return 22.75 + (min - 30) * 0.375

for minute in range (10,100,10):


print ("Minuten: " + str(minute))
print ("Tarif 1: " + str(tarif1(minute)))
print ("Tarif 2: " + str(tarif2(minute)))
print ("Tarif 3: " + str(tarif3(minute)))
print ()

Aufgabe 10
Erzeuge 100 Zufallszahlen zwischen 0 und 1 und ermittle aus diesen 100 Zufallszahlen die größte
Zahl (das Maximum).
Die Funktion random.random() aus dem Modul random liefert eine (Pseudo-) Zufallszahl vom Typ float
zwischen 0 und 1. Die beiden Endwerte kommen nicht vor, die Zahlen sind ansonsten gleichmäßig im
Intervall verteilt.
a) Gib die Funktion zur Lösung dieser Aufgabe an.
b) Gib einen Programmcode an, der diese Methode aufruft und die Zahl ausgibt.

Lösung zu 10
a)
import random
def ermittle_zahl():
max = 0
for i in range (100):
zahl = random.random()
if (max < zahl):
max = zahl
return max

b)
groesste_zahl = ermittle_zahl()
print (groesste_zahl)
Aufgabe 11
a.) Welche Ausgabe produziert das folgende Programm:

for i in range (1,10):


for j in range (1,10):
print (str(i * j) + " ", end = "")
print()

b.) Schreibe ein Programm, das die Formatierung der Ausgabe verbessert.

Lösung zu 11

a.)
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

b.)
for i in range (1,10):
for j in range (1,10):
tmp = i * j
if (tmp < 10):
print (" ", end = "")
print (str(i * j) + " ", end = "")
print()

1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

Aufgabe 12
Schreibe ein Programm, das in einer „for“-Schleife insgesamt 100 Sternchen („*“) hintereinander
ausdruckt. Übergib als Kommandozeilenparameter einen „int“-Wert, der festlegt, nach wieviel Zeichen
ein Zeilenvorschub erfolgen soll. So soll z.B mit dem Eingabewert 4 die folgende Bildschirmausgabe erfolgen:

*************************
*************************
*************************
*************************
Lösung zu 12
neue_zeile = int(input("Wieviele Sternchen bis zur neuen Zeile ? "))
for i in range(1,101):
print ("*", end = "")
if ((i % neue_zeile) == 0):
print()

Aufgabe 13
Schreibe ein Programm, das die ganzen Zahlen von 1 bis n (n > 1) miteinander multipliziert. Das
Programm erwartet als Input den Parameter n und berechnet das Produkt 1*2*3*...*n.
Das Resultat soll auf die Standardausgabeeinheit ausgegeben werden.

Lösung zu 13

def fakultaet(n):
erg = 1
for i in range (1,n+1):
erg *= i
return erg

eingabe = int(input("Wert? "))


print("Ergebnis: " + str(fakultaet(eingabe)))

Aufgabe 14
Schreibe ein Programm, das alle ungeraden Zahlen von 1 bis n (n > 2) addiert. Verwende dazu eine
„for“-Schleife. Das Programm soll als Eingabe den Wert von „n“ erhalten und das Resultat soll ausgegeben
werden.

Lösung zu 14
def ungerade_zahlen (n):
erg = 0
for i in range (n+1):
if ((i % 2) == 1):
erg += i
return erg

zahl = int(input("Gib eine Zahl ein: "))


print ("Ergebnis = " + str(ungerade_zahlen(zahl)))

Aufgabe 15
Erstellen Sie ein Programm, welches von einer eingegebenen natürlichen Zahl den kleinsten Teiler bestimmt und
angibt.

Lösung zu 15
def kleinster_teiler(n):
if ((n % 2) == 0):
return 2
else:
for i in range(n,2,-1):
if ((n % i) == 0):
teiler = i
return teiler

zahl = int(input("Gib eine Zahl ein: "))


print ("Der kleinste Teiler ist: " + str(kleinster_teiler(zahl)))
Aufgabe 16
Schreibe ein Programm, das folgende Ausgabe auf dem Bildschirm erzeugt:

*
***
*****
*******
*********
***********

Lösung zu 16

n = 6;
for i in range (n+1):
for k in range (1,n-i+1):
print (" ", end = "")
for j in range (0,i*2-1):
print("*", end = "")
print()

Aufgabe 17
Alle Glieder einer Fibonacci-Folge, deren Werte eine feste Größe «max_wert» nicht überschreitet,
sollen berechnet werden. In der Fibonacci-Folge 1, 1, 2, 3, 5, 8, 13, .... kann ab dem 3. Glied jedes
weitere Glied aus der Summe der beiden vorhergehenden Glieder berechnet werden. Die Ausgabe
der Folge soll so erfolgen:
*
*
**
***
*****
********
*************
*********************
max_wert soll den Wert 30 besitzen.

Lösung zu 17

max_wert = 30
a = 1
b = 1
c = 0
print("*")
while (c < max_wert):
for i in range (1,b+1):
print("*", end = "")
print()
c = a + b
a = b
b = c

Aufgabe 18
Schreibe ein Programm, daß alle 3 Ziffern umfassenden Zahlen ausgibt, die gleich der Summe ihrer
zur 3. Potenz erhobenen Ziffern ist, z.B. 153 = 13 + 53 + 33
Lösung zu 18

for i in range (10):


for j in range (10):
for k in range (10):
if (((i*i*i) + (j*j*j) + (k*k*k)) == (i*100+10*j+k)):
print (i*100+10*j+k)

Aufgabe 19
Zeichnen Sie das Struktogramm eines Algorithmus, welcher drei Zahlen z1, z2 und z3 einliest, diese der Grösse
nach sortiert und den Variablen g (gross), m (mittel) und k (klein) zuweist.

Lösung zu 19

Aufgabe 20
Alle 4 Jahre wird ein zusätzlicher Tag (Schalttag) im Kalenderjahr (der 29. Februar) eingefügt. Da das aber
etwas zu viel ist, verzichtet man alle 100 Jahre auf den Schalttag. Alle 400 Jahre weicht man von dieser
Verzichtregel ab und fügt den Schalttag doch ein. Zeichnen Sie das Struktogramm eines Algorithmus, welcher
eingegebene Jahreszahl daraufhin überprüft, ob es sich um ein Schaltjahr handelt oder nicht.

Lösung zu 20
Aufgabe 21
Ein Kapital K wird mit einem Zinssatz p verzinst. Es soll berechnet werden, wie viele Jahre es dauert, bis sich das
Kapital verdoppelt hat. Zeichnen Sie das Struktogramm und verwenden Sie eine kopfgesteuerte Schleife.

Lösung zu 21

Zu beachten ist hier, dass die Hilfsvariable K1 eingeführt wurde, mit der jeweils der aktuelle Wert des Kapitals
berechnet wird. Dieser wird dann in der Bedingung mit dem Anfangswert K verglichen.

Aufgabe 22
Eine Liste mit der Bezeichnung zahlen enthält 10 Integerwerte. Es soll der größte Wert der Liste ermittelt und
ausgegeben werden.

Lösung zu 22
Für die Listenverarbeitung eignet sich eine zählergesteuerte Schleife. Zu Beginn sollte die Variable max mit einem
Wert belegt werden. Dazu eignet sich der 1. Wert der Liste. Es ist nicht ratsam mit dem Wert 0 zu initialisieren,
da die Liste ja nur aus negativen Werten bestehen könnte.

Aufgabe 23
Gegeben ist ein Array (eine Liste) mit einer Reihe ganzzahliger Komponenten:

x = [9, 8, 7, 6, 5, 4, 3, 2, 1]
Ergänze den Code, sodass die mit Ganzzahlen gefüllte Liste so umgestaltet wird, dass die Zahlen von der ersten
bis zur letzen Komponente eine aufsteigende Sortierung zeigen. Gib die Liste vor und nach der Sortierung in
einer Zeile aus.

x = [9, 8, 7, 6, 5, 4, 3, 2, 1]
print("Vor dem Sortieren:")
for i in range (len(x)):
print(str(x[i]), end = "")
print()
for i in range (len(x)):
for j in range (i+1,len(x)):
if (x[i] > x[j]): # Vergleich
temp = x[i]
x[i] = x[j]
x[j] = temp # x[i] mit x[j] tauschen
print("Nach dem Sortieren:")
for i in range (len(x)):
print(str(x[i]), end = "")
print()

Aufgabe 24
Fülle zwei Listen (Arrays) x und y mit drei Zufallszahlen im Wertebereich zwischen 1 und 5.
Laufe über das Array und gib x/y-Pärchen aus. Enthält z.B. x = [1, 2, 3] und y = [1, 4, 5] soll die Ausgabe auf
dem Bildschirm sein: (1,1) (2,4) (3,5)

Lösung zu 24
import random
x = []
y = []
length = 3;
for i in range(length):
x.append(random.randint(1,5))
y.append(random.randint(1,5))
for i in range (len(x)):
print("("+str(x[i])+","+str(y[i])+") ",end = "")
print()

Aufgabe 25
Mit der Funktion belegen, wird eine Liste mit der Länge 100 mit zufälligen Werten zwischen 0 und 9 belegt.
Schreiben Sie eine Funktion ‚zaehlen‘, die für jede der Zahlen 0 bis 9 zählt, wie oft sie in der Liste vorkommt
und diese Anzahlen in einer zweiten Liste der Länge 10 zurückgibt. Schreiben Sie eine Funktion ‚drucken‘,
welche diese Werte ausgibt. Rufen Sie die Funktionen anschliessend der Reihe nach auf und geben Sie die
Resultate aus.

import random
def belegen (liste):
for i in range(100):
feld.append(random.randint(0,9))
Lösung zu 25

import random
def belegen (liste):
for i in range(100):
liste.append(random.randint(0,9))

def drucken (liste):


for i in range(len(liste)):
print (str(liste[i])+" ", end = "")
print()

def zaehlen (liste):


ergebnis = []
for i in range (10):
ergebnis.append(0) # Initialisierung
for i in range (len(liste)):
ergebnis[liste[i]] = ergebnis[liste[i]]+1
return ergebnis

zufallszahlen = []
belegen(zufallszahlen)
drucken(zufallszahlen)
anzahl = zaehlen(zufallszahlen)
print()
drucken(anzahl)

Aufgabe 26

Schreibe eine Funktion remove_vocals, die aus einem String s die Vokale entfernt. Definiere den String „Hallo
Pythoraner“, übergebe diesen der Funktion remove_vocals und gib das Resultat aus

Lösung zu 26

def remove_vocals(string):
newstring = ""
for char in string:
c = char.upper()
print (c)
if ((c!='A')and(c!='E')and(c!='I')and(c!='O')and(c!='U')):
newstring = newstring + char
return newstring

zeichenkette = "Hallo Pythoraner"


ohne_vokale = remove_vocals(zeichenkette)
print (zeichenkette)
print (ohne_vokale)

Aufgabe 27

Schreibe eine Funktion speek_chinese(text), die einen übergebenen String verändert und die Buchstaben "r"/"R"
als "l"/"L" zurückgibt.
Lösung zu 27

def speek_chinese(text):
newstring = ""
for char in text:
if (char=='R'):
char = 'L'
elif (char=='r'):
char = 'l'
newstring = newstring + char
return newstring

def speek_chinese1(text):
text = text.replace('r','l')
text = text.replace('R','L')
return text

def speek_chinese2(text):
newstring = ""
for i in range (len(text)):
char = text[i]
if (text[i] == 'r'):
char = 'l'
elif (text[i] == 'R'):
char = 'L'
newstring = newstring + char
return newstring

print (speek_chinese("Riesenrad"))
print (speek_chinese1("Riesenrad"))
print (speek_chinese2("Riesenrad"))

Aufgabe 28

Die Quersumme einer Zahl bildet man durch die Addition jeder Ziffer der Zahl. Wenn die Zahl etwa 10938
lautet, so ist die Quersumme 1+0+9+3+8 = 21.Schreiben Sie eine Funktion sum_of_digits (String), welcher die
Zahl als String übergeben werden kann und welche die Quersumme als Integer zurückgibt.

Lösung zu 28

def sum_of_digits(valuestring):
result = 0
for i in range (len(valuestring)):
result = result + (int(valuestring[i]))
return result

text = "10938"
print (sum_of_digits(text))
Aufgabe 29
Ein Morse-Funkspruch besteht aus kurzen und langen Symbolen, die mit . und - angedeutet sind. Jeder
Buchstabe ist durch ein Leerzeichen getrennt. Kopiere die folgende Definition in ein Programm, welches eine
Zeichenkette in das Morse-Alphabet umsetzt.

// A .- N -. 0 -----
// B -... O --- 1 .----
// C -.-. P .--. 2 ..---
// D -.. Q --.- 3 ...--
// E . R .-. 4 ....-
// F ..-. S ... 5 .....
// G --. T - 6 -....
// H .... U ..- 7 --...
// I .. V ...- 8 ---..
// J .--- W .-- 9 ----.
// K -.- X -..-
// L .-.. Y -.--
// M -- Z --..

Lösung zu 29

# Morse Alphabet Definition


morse_alphabet = {
'A': ".- ",
'B': "-... ",
'C': "-.-. ",
'D': "-.. ",
'E': ". ",
'F': "..-. ",
'G': "--. ",
'H': ".... ",
'I': ".. ",
'J': ".--- ",
'K': "-.- ",
'L': ".-.. ",
'M': "-- ",
'N': "-. ",
'O': "--- ",
'P': ".--. ",
'Q': "--.- ",
'R': ".-. ",
'S': "... ",
'T': "- ",
'U': "..- ",
'V': "...- ",
'W': ".-- ",
'X': "-..- ",
'Y': "-.-- ",
'Z': "--.. ",
'0': "----- ",
'1': ".---- ",
'2': "..--- ",
'3': "...-- ",
'4': "....- ",
'5': "..... ",
'6': "-.... ",
'7': "--... ",
'8': "---.. ",
'9': "----. ",
}
text = input ("Gib einen Text ein: ").upper()
for char in text:
if char in morse_alphabet:
print(morse_alphabet[char], end = "")
print()

Aufgabe 30

Schreibe in das untenstehende Programm den Code einer Funktion word_wrap. Diese soll als Argumente eine
Teichenkette und eine Textlänge erhalten. Sie soll ohne Wörter zu trennen möglichst nahe bei der vorgegebenen
Textlänge, aber keinesfalls grösser als diese einen Zeilenumbruch einfügen. Die neue Zeichenkette soll sie
wieder zurückgeben. Hinweis: Eine neue Linie kann mit dem Einfügen von "\n" erzeugt werden.

def word_wrap #...

# ...hier kommt der Code für die Funktion word_wrap hin

s = "Der Sehnsucht entgegen, sie erleben. "


s = s + "Wer kann das schon. Den Traeumen entgegen, "
s = s + "sie erleben. Wer macht das schon. Den Gefuehlen"
s = s + " entgegen, sie erleben. Wer wagt das schon."
s = s + "Der Liebe entgegen, sie erleben. Wer darf das schon."

print (word_wrap(s,30))

Lösung zu 30

def word_wrap(string,length):
wort = (string.split(" "))
result = ""
line = ""
for i in range (len(wort)):
if (len(line) + len(wort[i]) <= length ):
line += wort[i] + " "
else:
result += line + "\n"
line = wort[i] + " ";
return result + line

s = "Der Sehnsucht entgegen, sie erleben. "


s = s + "Wer kann das schon. Den Traeumen entgegen, "
s = s + "sie erleben. Wer macht das schon. Den Gefuehlen"
s = s + " entgegen, sie erleben. Wer wagt das schon."
s = s + "Der Liebe entgegen, sie erleben. Wer darf das schon."

print (word_wrap(s,30))
Aufgabe 31

Ergänze unteres Programmraster und schreibe den Code einer Funktion berg_hoehe. Diese soll als Argument
eine Liste erhalten, welche als Elemente abwechselnd jeweils zuerst den Namen eines Berges als String und
danach dessen Höhe als Integer enthält. Sie soll den Tupel mit dem Namen des höchsten Bergs und dessen Höhe
zurückgeben. Weiter soll der Code unten so ergänzt werden, dass der Name und die Höhe des höchsten Bergs
ausgegeben werden.

def berg_hoehe#...

# ...Hier kommt der Code für die Funktion hin

bergliste = ["Dom", 4545, "Saentis", 2502, "Dufourspitze", 4634,


"Matterhorn", 4478]
berg_und_hoehe = berg_hoehe(bergliste)

# ...Hier kommt der Code für die Ausgabe hin

Lösung zu 31

def berg_hoehe(liste):
max_hoehe = 0
for i in range (0,len(liste)-1,2):
if liste[i+1] > max_hoehe:
index = i
max_hoehe = liste[i+1]
return (liste[index],liste[index+1])

max_hoehe = 244
hoechsterberg = "Hallo"
return (hoechsterberg, max_hoehe)

bergliste = ["Dom", 4545, "Saentis", 2502, "Dufourspitze", 4634,


"Matterhorn", 4478]
berg_und_hoehe = berg_hoehe(bergliste)
berg,hoehe = berg_und_hoehe

print ("Der höchste Berg aus der Liste ist: " + berg)
print ("Die Höhe beträgt: " + str(hoehe))
Aufgabe 32

Schreibe ein Programm, welches 1000 Mal mit einem Würfel würfelt (random.randint(1,6))
Die 1000 Zahlen zwischen 0 und 6 sollen in einem Text-file random.txt gespeichert werden. Im File
random.txt soll anschliessend gezählt werden, wie oft die Zahl 6 gewürfelt wurde. Das Resultat soll dabei
ausgegeben werden.

Lösung zu 32

import random
filename = 'random.txt'
text = ""
anzahl6 = 0

for anzahlwuerfe in range(1000):


wuerfel = random.randint(1,6)
text = text + str(wuerfel)

f = open(filename,'w')
f.write (text)
f.close

f = open(filename,'r')
gelesenertext = str(f.readlines())
f.close

for char in gelesenertext:


if (char == '6'):
anzahl6 += 1
print ("Die 6 wurde "+str(anzahl6)+" Mal gewürfelt")

Das könnte Ihnen auch gefallen