Übungsblatt 4 Name: Joe User (zusammen mit Bobby Brown) Tutor: ???? Email: juser@icp.uni-stuttgart.de ========== AUFGABE 4.1 (Variablennamen) ========== Warum erlauben Python und bash keine Variablennamen, die das Zeichen "-" enthalten? Weil das Zeichen '-' von Python als Subtraktionsoperator interpretiert wird. Wenn das Zeichen '-' auch in einer Variable vorkommen könnte, dann wäre z.B. folgender Codeausschnitt nicht eindeutig: a = b-c Soll dabei a auf den Wert von b minus c gsetzt werden, oder auf den Wert der Variablen "b-c"? ========== AUFGABE 4.2 (Pi-thon 1) ========== #!/usr/bin/python # # Berechnen von Pi via Monte-Carlo # # Der folgende Befehl erlaubt es, Zufallszahlen in Python zu erzeugen import random MAX_STEPS = 1000000 step = 0 sum = 0 # FEHLER: ':' fehlt while step < MAX_STEPS: # random.random() erzeugt eine Zufallszahl zwischen 0 und 1 x = random.random() y = random.random() # FEHLER: "then" ist falsche Syntax if x*x + y*y < 1.0: # FEHLER: "Sum" statt "sum" sum = sum + 1 # FEHLER: Einrueckung falsch step = step + 1 # FEHLER: "4" sorgt dafuer, dass Alles als Integer gerechnet wird! estimate = 4.0 * sum / MAX_STEPS # FEHLER: Verwendet Umlaute und Shell-Notation print 'Abschaetzung fuer pi nach', MAX_STEPS, 'Schritten:', estimate ========== AUFGABE 4.3 (Pi-thon 2) ========== #!/usr/bin/python # # Berechnen von Pi via Monte-Carlo # # Der folgende Befehl erlaubt es, Zufallszahlen in Python zu erzeugen import random MAX_STEPS = 1000000 step = 0 sum = 0.0 while step < MAX_STEPS: # random.random() erzeugt eine Zufallszahl zwischen 0 und 1 x = random.random() y = (1.0 - x*x) ** 0.5 sum = sum + y step = step + 1 estimate = 4.0 * sum / MAX_STEPS print 'Abschaetzung fuer pi nach', MAX_STEPS, 'Schritten:', estimate ========== AUFGABE 4.4 (Pi-thon 3) ========== #!/usr/bin/python # # Berechnen von Pi # MAX_STEPS = 1000000 step = 1.0 / MAX_STEPS sum = 0.0 x = 0.0 while x <= 1.0: y = (1.0 - x*x) ** 0.5 sum = sum + y x = x + step estimate = 4.0 * sum / MAX_STEPS print 'Abschaetzung fuer pi nach', MAX_STEPS, 'Schritten:', estimate