Programmierkurs Aufgaben und Anleitung

Größe: px
Ab Seite anzeigen:

Download "Programmierkurs Aufgaben und Anleitung"

Transkript

1 Programmierkurs Aufgaben und Anleitung Lucas Mann Wiederholung Wir wiederholen kurz, wie man in Python Algorithmen schreiben und ausführen kann. 1.1 Programmstruktur Ein Algorithmus (oft auch als Funktion bezeichnet) wird folgendermaßen definiert: def mein_algorithmus(a, b): Schritt2 Dabei ist mein_algorithmus der Name des Algorithmus und a und b sind die Eingabewerte (auch Parameter genannt). Natürlich kann dein Algorithmus auch mehr (oder weniger) Eingabewerte haben. Die folgende Tabelle zeigt, wie die grundlegenden Schritte eines Algorithmus aus der Umgangssprache in Python übersetzt werden: Umgangssprache Python Eingabe: a, b. Kein extra Schritt, da in der Algorithmusdefinition enthalten (s.o.) Ausgabe: r. return r Wenn a > 2: Sonst, wenn a < 0: Sonst: if a > 2: elif a < 0: else: Wiederhole solange, wie n > 0: while n > 0: Für k im Bereich(1, n): for k in range(1, n + 1): Setze a = 0 a = 0 Erhöhe x um n x = x + n oder x += n Wende Algorithmus alg auf die Werte n und 3 an. alg(n, 3) Speichere das Ergebnis des Algorithmus alg, angewendet auf a, in r. r = alg(a) Ausgabe: Ergebnis des Algorithmus abc. return abc() 1

2 1.2 Konstanten In Python gibt es verschiedene Arten von Werten, zum Beispiel Zahlen, Wahrheitswerte und Texte. Die nächste Tabelle zeigt, wie du verschiedene Arten von Werten im Code eintippst: Werttyp Beispielwerte In Python Ganze Zahl 0, 5, 14 0, 5, -14 Reelle Zahl 3, Wahrheitswert Wahr, Falsch True, False Text Hello World "Hello World" Zeichen d d Liste [ 1, 2, Wahr, 5 ] [1, 2, True, 5] 1.3 Operatoren Operatoren berechnen einen neuen Wert aus einem oder zwei vorhandenen Werten. Bei diesen Werten kann es sich um Zahlen, Wahrheitswerte und Texte handeln, wobei abhängig vom Werttyp unterschiedliche Operatoren möglich sind. Wir fassen im Folgenden einiger dieser Operatoren zusammen: Operator In Python Beschreibung +,,,/ a+b, a-b, Grundrechenarten Ganzzahldivision a // b Wie Division, aber Nachkommastellen des Ergebnisses werden abgeschnitten Modulo a % b Berechnet a mod b Potenz a ** b Berechnet a b Minimum, Maximum min(a, b), max(a, b) Berechnet den kleineren bzw. größeren Wert zweier Zahlen; kann auch auf eine Liste angewendet werden, z.b. min(l) Betrag abs(a) Berechnet a Gleich, ungleich a == b, a!= b Überprüft, ob a und b den gleichen Wert haben Zahlvergleiche a < b, a >= b, Vergleicht die Größe zweier Zahlwerte Und, oder, nicht a and b, Verknüpft zwei Wahrheitswerte a or b, not a Listenzugehörigkeit x in l Ist Wahr, wenn x in der Liste l ist Zum Beispiel berechnet if (a > 0 and b < 0) or (a < 0 and b > 0): ob a und b verschiedene Vorzeichen haben; in diesem Fall bekommt obiger Ausdruck den Wert Wahr, sonst Falsch. 1.4 Listen Eine Liste ist eine endliche Folge von Werten, wobei die Werte innerhalb einer Liste auch verschiedene Typen haben können (in den meisten Fällen hat man aber eine Liste von lauter gleichen Typen, zum Beispiel alles Zahlen). Listen werden mit eckigen Klammern geschrieben, also zum Beispiel l1 = [1, 1, 2, 3, 5, 8] l2 = ["Hallo", True, 1, -3.2] l3 = [] # leere Liste 2

3 Die folgende Tabelle zeigt ein paar wichtige Operationen mit Listen: Umgangssprache Setze den 5-ten Eintrag der Liste l auf Wahr Setze den a-ten Eintrag der Liste l auf den Wert in k Lies den 3-ten Eintrag der Liste l und speichere ihn in r Nimm die Unterliste von l1 der Indizes im Bereich von a bis b 1 und speichere sie in l2 Nimm die Unterliste von l1 der Indizes von a bis zum Ende und speichere sie in l2 Hänge den Wert 3,1414 hinten an die Liste l an Hänge die Listen l1 und l2 aneinander und speichere das Ergebnis in l3 Sortiere die Liste l aufsteigend Invertiere die Reihenfolge der Elemente in l Speichere die Länge der Liste l in x Python l[5] = True l[a] = k r = l[3] l2 = l1[a:b] l2 = l1[a:] l.append(3.1415) l3 = l1 + l2 l.sort() l.reverse() x = len(l) Es ist dabei wichtig zu wissen, dass die Nummern der Einträge immer bei 0 anfangen zu zählen. In obiger Liste l2 ist also l2[1] = True und l2[0] = "Hallo", ferner ist l1[2:4] = [2, 3] und l2[1:] = [True, 1, -3.2]. Beachte, dass Texte sehr ähnlich zu Listen sind: Ein Text ist im Wesentlichen eine Liste von Zeichen. Daher funktionieren einige der Operationen von Listen auch mit Texten. Ist zum Beispiel a = "Hello World!", so ist a[4] = o und a[2:8] = "llo Wo". 1.5 Beispiel Es folgt ein Beispiel für einen Algorithmus in Umgangsprache und seine Übersetzung in Python: 1. Eingabe: Eine ganze Zahl n. 2. Setze n = n. 3. Setze r = [] (eine leere Liste). 4. Wiederhole die folgenden Schritte solange, wie n > 0: 4.1. Hänge an r den Wert n mod 10 an Teile n durch 10 und schneide alles hinter dem Komma ab. 5. Ausgabe: r. def number_to_digits(n): n = abs(n) r = [] while n > 0: r.append(n % 10) n = n // 10 return r Implementiere obigen Algorithmus wie folgt in Python: 1. Tippe obigen Code in eine Textdatei und gib dieser Datei den Namen digits.py. 2. Öffne ein Terminal, gehe dort mittels cd Pfad zu dem Ordner, in dem sich die Codedatei befindet. 3. Tippe python3 -i digits.py ein, um Python zu starten und deine Codedatei zu laden. 4. Nun kannst du alle Algorithmen in der Codedatei benutzen. Tippe zum Beispiel number_to_digits(143) ein; es erscheint das Ergebnis [3,4,1]. 3

4 2 Spielereien mit Ziffern und Listen Nachdem du das Beispiel aus dem letzten Kapitel implementiert hast, hast du einen Algorithmus number_to_digits in der Datei digits.py, welcher zu einer ganzen Zahl die Liste ihrer Ziffern bestimmt. Ausgehend von diesem Beispiel wollen wir den Umgang mit Listen noch ein bisschen üben. Löse dafür die folgenden Aufgaben, indem du weitere Algorithmen zu der Datei digits.py hinzufügst, die natürlich den Algorithmus number_to_digits verwenden dürfen. Aufgabe 1. Implementiere die folgenden Algorithmen: (a) num_digits(n): Gibt die Anzahl der Ziffern der ganzen Zahl n zurück. (b) cross_sum(n): Berechnet die Quersumme der ganzen Zahl n. Benutze dafür zunächst eine Schleife. Als zweite Variante kannst du die Operation sum(l) benutzen, welche die Summe der Elemente einer Liste berechnet. (c) even_digits(n) Gibt Wahr zurück, wenn die ganze Zahl n nur gerade Ziffern besitzt, sonst Falsch. (d) is_palindrom(n) Bestimmt, ob die ganze Zahl n ein Palindrom ist, also ob sie sich nicht ändert, wenn man die Reihenfolge ihrer Ziffern umkehrt (zum Beispiel ist ein Palindrom). Aufgabe 2. Schreibe den Algorithmus digits_to_number. Dieser nimmt eine Liste von Ziffern und berechnet die zugehörige ganze Zahl. Mit dessen Hilfe kannst du die folgenden Algorithmen implementieren: (a) invert_digits(n): Berechnet diejenige Zahl, die beim Umkehren der Reihenfolge der Ziffern von n entsteht. Für n = 524 ergibt sich also das Ergebnis 425. (b) sort_digits(n): Sortiert die Ziffern der Zahl n absteigend und gibt die resultierende Zahl zurück. Für n = ergibt sich also Aufgabe 3. Sei k eine positive ganze Zahl. Ein k-stelliger Kaprikar-Schritt transformiert eine k-stellige Zahl n wie folgt: Berechne die beiden Zahlen, die durch Sortieren der Ziffern von n in aufsteigender bzw. absteigender Reihenfolge entstehen und subtrahiere sie voneinander. Dadurch entsteht eine neue Zahl n. Für vierstellige Zahlen gilt: Wiederholt man diesen Prozess oft genug, so landet man immer bei der Zahl 6174, der sogenannten Kaprikar-Konstante. (a) Implementiere einen Algorithmus kaprikar_step(n, num_digits), welcher eine Zahl n und eine Anzahl an Ziffern nimmt und dann den Kaprikar-Schritt ausführt. Der Parameter num_digits ist notwendig, da n auch weniger als die gewünschte Anzahl an Ziffern haben darf in diesem Fall sind die verbleibenden Ziffern mit 0 aufzufüllen. Zum Beispiel ist die Zahl 728 im vierstelligen Modus als 0728 zu lesen. Hinweis: Du musst als erstes den Algorithmus number_to_digits anpassen, sodass diese Funktion einen zweiten Parameter num_digits nimmt, der die Anzahl der zu berechnenden Ziffern angibt. Benenne den neuen Algorithmus am besten um, damit der alte verfügbar bleibt. (b) Implementiere den Algorithmus kaprikar(n, num_digits), welcher den Kaprikar- Schritt auf die Startzahl n so lange anwendet, bis n sich nicht mehr ändert und den dann erhaltenen Wert zurückgibt. Teste für verschiedene Zahlen n, ob man tatsächlich immer irgendwann 6174 erhält. 4

5 3 Berechnung von π Das Ziel dieses Abschnittes ist es, die bekannte Kreiszahl π zu berechnen. Dazu werden wir uns verschiedene Methoden ansehen. Implementiere die folgenden Algorithmen in der Datei pi.py. Aufgabe 4. Die sogenannte Monte-Carlo-Methode benutzt Wahrscheinlichkeitstheorie, um π auszurechnen. Betrachte einen Viertelkreis mit Radius 1 innerhalb eines Quadrates mit Seitenlänge 1. Ist P ein zufälliger Punkt in dem Quadrat, dann ist die Wahrscheinlichkeit dafür, dass P im Viertelkreis liegt, genau π 4. Das Ziel ist es nun, diese Wahrscheinlichkeit empirisch zu berechnen, indem man sehr viele Punkte zufällig generiert und dann die Anzahl der Punkte im Kreis durch die Anzahl aller Punkte berechnet. Schreibe einen Algorithmus pi_montecarlo(n), welcher die oben beschriebene Wahrscheinlichkeitsberechnung mit n zufälligen Punkten durchführt und die daraus gewonnene Näherung für π zurückgibt. Zum Generieren von Zufallszahlen kannst du das Modul random benutzen: Schreibe dazu an den Anfang der Datei die Zeile from random import random. Nun kannst du mit random() eine Zufallszahl zwischen 0 und 1 erzeugen. Teste den Algorithmus für große n Wie gut ist die Näherung? Aufgabe 5. Mithilfe elementarer Analysis kann man zeigen: ( π = ) 11 ± Schreibe einen Algorithmus pi_analysis(n), welcher die ersten n Additionen/Subtraktionen dieser Formel ausrechnet und somit eine Näherung für π bestimmt. Teste die Formel für große n wie gut ist die Näherung? Aufgabe 6. Ein wesentlich besserer, aber leider auch komplizierter Weg zur Berechnung von π ist folgendermaßen gegeben: Als erstes berechnet man zwei Zahlenfolgen (a n ) und (b n ) durch folgende rekursive Vorschrift: a 0 = 1, b 0 = 0.5, a k = a k 1 + b k 1, b k = a k 1 b k 1, für k 1. 2 Zu gegebenem n berechnen wir nun s n = 2 0 (a 0 b 0 ) (a 1 b 1 ) (a 2 b 2 ) (a 3 b 3 ) n (a n b n ) 2. Dann ist eine gute Näherung für π gegeben durch π (a n + b n ) 2 1 s n, wobei die Näherung besser wird, je größer man n wählt. Implementiere den Algorithmus pi(n), welcher eine Näherung für π nach diesem Verfahren berechnet. Berechne pi(4) und vergleiche die Genauigkeit (und Geschwindigkeit) dieser Rechnung mit pi_analysis(10000). Was fällt auf? Tipp: Um die Wurzel aus einer Zahl x zu berechnen, kannst du x**.5 benutzen. Bemerkung: Dieser Algorithmus ist so schnell, dass man sehr leicht an die Rechengenauigkeit von Python herankommt. In der Tat lässt sich aufgrund dieser Rechengenauigkeit kein genauerer Wert als pi(4) bestimmen. Natürlich gibt es Methoden, die Rechengenauigkeit zu erhöhen. Bei Interesse bitte nachfragen. 5

6 4 Verschlüsselung In diesem Abschnitt beschäftigen wir uns mit einfachen Verschlüsselungsalgorithmen: der Cäsar- Verschlüsselung und der Vigenère-Verschlüsselung. Implementiere die folgenden Algorithmen in einer Datei encryption.py. Aufgabe 7. Die Verschlüsselungen ordnen den Zeichen des Alphabets üblicherweise Zahlwerte zu: A ist 0, B ist 1, C ist 2 und so weiter. Wir brauchen daher als erstes zwei Funktionen zum Umwandeln eines Zeichens in den zugehörigen Zahlwert und umgekehrt. Dafür kann man die folgenden Funktionen in Python verwenden: 1 Python-Code ord(c) chr(n) c = c.upper() c.isalpha() Bedeutung Konvertiert das Zeichen c in den zugehörigen ASCII-Wert Konvertiert den ASCII-Wert n in ein Zeichen Konvertiert das Zeichen c in den zugehörigen Großbuchstaben Überprüft, ob es sich bei c um einen Buchstaben handelt Schreibe die folgenden Algorithmen: (a) Der Algorithmus c2n(c) konvertiert den Buchstaben c in den zugehörigen Zahlwert. Beispielsweise sollen die folgenden Konvertierungen stattfinden: A 0, a 0, B 1, b 1, Z 25, z 25. Falls c kein Buchstabe ist, spielt der Rückgabewert keine Rolle. (b) Der Algorithmus n2c(n) konvertiert den Zahlwert n in den zugehörigen Großbuchstaben. Zum Beispiel: 0 A, 1 B, 25 Z. Aufgabe 8. Die Cäsar-Verschlüsselung funktioniert folgendermaßen: Der Schlüssel k ist ein Zahlwert zwischen 0 und 25. Bei der Verschlüsselung wird auf jeden Buchstaben des Klartextes der Schlüssel k addiert (modulo 26) und der sich ergebende Buchstabe in den Kryptotext übernommen. Bei der Entschlüsselung wird der Schlüssel k zeichenweise subtrahiert. (a) Schreibe den Algorithmus caesar_encrypt(text, key), welcher den Text text mit dem Schlüssel key verschlüsselt und das Ergebnis zurückgibt. Enthält der Text Zeichen, die keine Buchstaben sind, so werden diese Zeichen einfach ignoriert. Ferner gibt es keine Unterscheidung von Groß- und Kleinbuchstaben. Hinweis: Python sieht die Umlaute ebenfalls als Buchstaben an (sinnvollerweise), doch unsere Konvertierung c2n funktioniert nicht mit Umlauten. Probiere daher am besten nur Texte ohne Umlaute. (b) Schreibe den Algorithmus caesar_decrypt(text, key), welcher den Text text mit dem Schlüssel key entschlüsselt. (c) Wie sicher ist die Cäsar-Verschlüsselung? Lasse von einem Mitschüler einen Text verschlüsseln und versuche den verschlüsselten Text ohne Kenntnis des Schlüssels zu knacken. Aufgabe 9. Die Vigenère-Verschlüsselung funktioniert folgendermaßen: Der Schlüssel k ist ein Text. Dieser Text wird wiederholend unter den Klartext geschrieben. Ein Zeichen des Kryptotextes ergibt sich als Summe (modulo 26) des Klartextzeichens und des darunter befindlichen Schlüsselzeichens. 1 Der ASCII-Wert eines Zeichens ist eine eindeutige Zahl, die jedem Zeichen zugeordnet ist. Der ASCII-Wert von A ist zum Beispiel 65, der von B ist 66 und so weiter. Bei den Kleinbuchstaben ist es ähnlich: Der ASCII-Wert von a ist 97, der von b ist 98 und so weiter. 6

7 (a) Schreibe den Algorithmus vigenere_encrypt(text, key), welcher den Text text mit dem Schlüssel key verschlüsselt. Der Schlüssel ist hierbei ein Text, welcher nur Buchstaben enthält. (b) Schreibe den Algorithmus vigenere_decrypt(text, key), welcher den Text text mit dem Schlüssel key entschlüsselt. (c) Wie sicher ist die Vigenère-Verschlüsselung? Zusatz: Schreibe einen Algorithmus vigenere_hack(text, key_len), welcher den Text text entschlüsselt, indem er nur die Länge des Schlüssels verwendet, nicht den Schlüssel selbst. Diese Aufgabe ist deutlich schwieriger als die anderen Aufgaben und kann am besten von dir zu Hause probiert werden. 5 Die Türme von Hanoi Die Türme von Hanoi ist der Name des folgenden Rätsels: Gegeben sind drei Lagerplätze für Bausteine. Auf dem ersten Lagerplatz befinden sich zu Beginn n Bausteine, der Größe nach geordnet (der größte unten), die anderen beiden Lagerplätze sind leer. Die Aufgabe ist nun, alle Bausteine vom ersten auf den dritten Lagerplatz zu bewegen, indem man nacheinander einzelne Bausteine umstapelt. Dabei müssen jedoch zu jedem Zeitpunkt alle Bausteine auf allen Lagerplätzen der Größe nach geordnet sein. Schreibe die folgenden Algorithmen in der Datei hanoi.py. Aufgabe 10. Schreibe einen Algorithmus hanoi(n), der das Hanoi-Problem zu gegebener Bausteinzahl n löst. Gehe dazu wie folgt vor. Implementiere rekursiv den Algorithmus hanoi_move(x, y, z, k), welcher eine Lösung zu folgendem Problem findet: Bewege die oberen k Steine von Platz x nach Platz z und benutze dabei eventuell als Zwischenlager den Platz y. Das eigentliche Hanoi-Problem wird dann durch den Aufruf hanoi_move(1, 2, 3, n) gelöst. Tipp: Im Fall k = 1 ist hanoi_move(x, y, z, k) einfach. Verwende die Python-Funktion print, um einen Text auszugeben; hierbei kannst du den Text-Operator % benutzen, um Werte in den Text einzusetzen, zum Beispiel: print("bewege von {} nach {}"% (2, 3)). Im Fall k > 2 kannst du das Problem mittels Rekursion lösen; in diesem Fall sind drei Aufrufe von hanoi_move nötig. 6 Analytische Geometrie In diesem Abschntit wollen wir Python ein wenig analytische Geometrie beibringen. Dazu betrachten wir die folgenden Arten von Objekten: Punkte. Dargestellt durch eine Liste bestehend aus zwei Zahlen. Geraden. Dargestellt durch eine Liste von einem Punkt und einem zweiten Punkt (die Richtung der Gerade). Schreibe die folgenden Algorithmen in der Datei geometry.py. Aufgabe 11. Schreibe zunächst die Algorithmen point(x, y) und line(p, v), mit denen man Punkte und Geraden erstellen kann. 7

8 Aufgabe 12. Schreibe Algorithmen add(p1, p2) und subtract(p1, p2), welche die Addition und Subtraktion von je zwei Punkten durchführen und das Ergebnis zurückgeben. Schreibe analog mult(p, a), welches den Punkt p mit der Zahl a multipliziert und das Ergebnis zurückgibt. Schreibe schließlich lstinline{dot(p1, p2), welches das Skalarprodukt der beiden gegebenen Punkte berechnet und zurückgibt. Aufgabe 13. Implementiere die folgenden Algorithmen: (a) midpoint(p1, p2): Berechnet den Mittelpunkt der gegebenen Punkte. (b) focus(p1, p2, p3): Berechnet den Schwerpunkt des gegebenen Dreiecks. (c) orthogonal(l1, l2): Überprüft, ob die beiden gegebenen Geraden senkrecht aufeinanderstehen. Aufgabe 14. Implementiere den Algorithmus intersect(l1, l2), welcher den Schnittpunkt der beiden gegebenen Geraden berechnet. Falls die Geraden keinen Schnittpunkt haben, wird None zurückgegeben. 8

Programmiergrundkurs

Programmiergrundkurs Programmiergrundkurs Aufgaben und Anleitung Lucas Mann 13.01.2016 1 Übersetzung in Python Als erstes machen wir uns damit vertraut, wie man in Python Algorithmen schreiben kann. Einen Algorithmus kannst

Mehr

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Übung 2 Laura Kallmeyer Sommersemester 204, Heinrich-Heine-Universität Düsseldorf Offizielle Python Seite, auf der man jede Menge Dokumentation findet: http://www.python.org/

Mehr

Übungszettel 2a - Python

Übungszettel 2a - Python Vorsemesterkurs Informatik Übungsaufgaben Übungszettel 2a - Python Aufgabe 1: Python starten Teilaufgaben (a)-(c) beziehen sich auf das Arbeiten unter den Systemen, die auf den RBI-Rechnern installiert

Mehr

Programmieren lernen mit Groovy Kollektionen: Listen und Abbildungen

Programmieren lernen mit Groovy Kollektionen: Listen und Abbildungen Programmieren lernen mit Groovy Kollektionen: Listen und Abbildungen Seite 1 Listen Listen Definition def Listen-Variable = Listen-Wert def liste = [1,2,3,4,5,6,7,8,9] Der erste Index ist 0! liste[0] Zugriff

Mehr

Gruber I Neumann. Erfolg in VERA-8. Vergleichsarbeit Mathematik Klasse 8 Gymnasium

Gruber I Neumann. Erfolg in VERA-8. Vergleichsarbeit Mathematik Klasse 8 Gymnasium Gruber I Neumann Erfolg in VERA-8 Vergleichsarbeit Mathematik Klasse 8 Gymnasium . Zahlen Zahlen Tipps ab Seite, Lösungen ab Seite 0. Zahlen und Zahlenmengen Es gibt verschiedene Zahlenarten, z.b. ganze

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

SFZPy Sj. 17/18. Python Jupyter / Spyder. SFZ 16/17 W.Seyboldt

SFZPy Sj. 17/18. Python Jupyter / Spyder. SFZ 16/17 W.Seyboldt SFZPy Sj. 17/18 Python Jupyter / Spyder 1 Python Python ist eine Skriptsprache, man muss den Pythoncode nicht zuerst kompilieren, sondern kann den Code sofort ausführen (falls er richtig ist!). Entweder

Mehr

Greenfoot: Verzweigungen

Greenfoot: Verzweigungen Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

1 Berechnung von Summen (ca = 10 Punkte)

1 Berechnung von Summen (ca = 10 Punkte) Einführung in die wissenschaftliche Programmierung Klausur 26.02.2013 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Berechnung von Summen (ca. 5 + 4 + 1 = 10 Punkte) Gegeben sind natürliche

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

07 Funktionen (Teil I)

07 Funktionen (Teil I) 07 Funktionen (Teil I) Funktionen (Teil I) 1/8 Einführung Funktionen sind wiederverwendbare Code-Stücke, die Du in einem Programm überall einsetzen kannst und dir somit viel Kopierarbeit ersparen. PHP

Mehr

WS2018/ Oktober 2018

WS2018/ Oktober 2018 Einführung in die Programmierung Ronja Düffel WS2018/19 05. Oktober 2018 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen

Mehr

Programming 101. Carl Herrmann IPMB & DKFZ

Programming 101. Carl Herrmann IPMB & DKFZ Programming 101 Carl Herrmann IPMB & DKFZ Programmieren Kommandozeile Einfache Befehle Shell Skript aneinanderketten von Befehlen Schleifen Programmiersprache Komplexere Aufgaben Gemeinsamkeiten Alle Programmiersprachen

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 11 1 Aufgabe: Codeverständnis 1.1 Aufgabenstellung Notieren Sie, was der folgende Code ausgeben würde, wenn er so in einer

Mehr

Einführung in die Praktische Informatik. Übungsblatt 3. PD Dr. U. Köthe Heidelberg, 7. November Aufgabe 3.1 Gaußsche Osterregel [6 Punkte]

Einführung in die Praktische Informatik. Übungsblatt 3. PD Dr. U. Köthe Heidelberg, 7. November Aufgabe 3.1 Gaußsche Osterregel [6 Punkte] Einführung in die Praktische Informatik PD Dr. U. Köthe Heidelberg, 7. November 2016 Übungsblatt 3 Aufgabe 3.1 Gaußsche Osterregel [6 Punkte] Erstellen Sie ein Programm, das mit dem Algorithmus von Gauß

Mehr

Labor Software-Entwicklung 1

Labor Software-Entwicklung 1 Fakultät für Technik STUDIENGANG MEDIZINTECHNIK Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 2 C-Programmierung Mathematische Berechnungen Wintersemester 205/206 Seite von 5 Vorbemerkungen

Mehr

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen. Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

Polynome. Analysis 1 für Informatik

Polynome. Analysis 1 für Informatik Gunter Ochs Analysis 1 für Informatik Polynome sind reelle Funktionen, die sich ausschlieÿlich mit den Rechenoperation Addition, Subtraktion und Multiplikation berechnen lassen. Die allgemeine Funktionsgleichung

Mehr

Informatik I: Einführung in die Programmierung. Übungsblatt 3. Abgabe: Freitag, 15. November 2013, 18:00 Uhr

Informatik I: Einführung in die Programmierung. Übungsblatt 3. Abgabe: Freitag, 15. November 2013, 18:00 Uhr Informatik I: Einführung in die Programmierung Prof. Dr. Bernhard Nebel Dr. Christian Becker-Asano, Dr. Stefan Wölfl Wintersemester 2013/2014 Universität Freiburg Institut für Informatik Übungsblatt 3

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

9. Einführung in die Kryptographie

9. Einführung in die Kryptographie 9. Einführung in die Kryptographie Grundidee: A sendet Nachricht nach B über unsicheren Kanal. Es soll verhindert werden, dass ein Unbefugter Kenntnis von der übermittelten Nachricht erhält. Grundbegriffe:

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

WS2018/ Oktober 2018

WS2018/ Oktober 2018 Einführung in die Programmierung Ronja Düffel WS2018/19 02. Oktober 2018 RBI-Account Account für das Rechnernetz der Informatik RBI-Account HRZ-Account zum Arbeiten an und auf den Rechnern des Instituts

Mehr

Schnelle Multiplikation

Schnelle Multiplikation Informationsblatt für die Lehrkraft Schnelle Multiplikation $&*&*& 999 3 x 3 =? 10001110 π/3 7 X 6 14 666 x 987 Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse: Bearbeitungsdauer: Schnelle

Mehr

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 26. August 2009 1/17 Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe Prof. G. Kemnitz

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Fakultät für Informatik und Automatisierung, Technische Universität Ilmenau. Über Polynome mit Arithmetik modulo m.

Fakultät für Informatik und Automatisierung, Technische Universität Ilmenau. Über Polynome mit Arithmetik modulo m. 19 Fingerprinting Martin Dietzfelbinger Fakultät für Informatik und Automatisierung, Technische Universität Ilmenau Anhang: Über Polynome mit Arithmetik modulo m Dieser Abschnitt ergänzt Kapitel 19 Fingerprinting

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mariano Zelke Datenstrukturen 2/19 Das Teilfolgenproblem: Algorithmus A 3 A 3 (i, j bestimmt den Wert einer maximalen Teilfolge für a i,..., a j. (1 Wenn

Mehr

WS2017/ Oktober 2017

WS2017/ Oktober 2017 Ronja Düffel WS2017/18 05. Oktober 2017 mit Python Programmieren (vereinfacht) 1 Problem beschreiben und analysieren 2 Enwicklung und Beschreibung einer Lösung 3 Übertragung/Umsetzung in eine Programmiersprache

Mehr

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code: 7. Arrays Gelegentlich braucht man für ein Programm mehrere Attribute desselben Datentyps oder derselben Klasse. Beispiel: In der Highscore-Liste eines Spiels werden von den 10 besten Spielern die Namen

Mehr

Programmierpraktikum

Programmierpraktikum TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 05 (24.11.2016) Stefan Berktold [email protected] PRÄSENZAUFGABEN Heutige Übersicht

Mehr

Programmiertechnik 1 FOR-SCHLEIFEN

Programmiertechnik 1 FOR-SCHLEIFEN Programmiertechnik 1 FOR-SCHLEIFEN In diesem Dokument wollen wir uns mit Kontrollstrukturen befassen. Dazu sind im Folgenden einige Übungsaufgaben zu den Themen Schleifen (FOR, WHILE, DO) und Bedingungen

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Collatz-Folge. falls a i ungerade.

Collatz-Folge. falls a i ungerade. 14 Klausurtraining Heute gibt s nichts Neues mehr wir machen nochmal einen Streifzug durch die behandelten Themen unter besonderer Berücksichtigung von Aufgaben in der Art, wie sie in Klausuraufgaben vorzukommen

Mehr

2 Teil 2: Nassi-Schneiderman

2 Teil 2: Nassi-Schneiderman 2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der

Mehr

Objektorientiertes Programmieren (Java)

Objektorientiertes Programmieren (Java) Grundlagen Objektorientiertes Programmieren (Java) Java folgt gewissen Rechtschreibregeln die Syntax. Diese besagt, dass hinter jeden Befehl ein Semikolon( ; ) stehen muss, damit der Computer weiß, dass

Mehr

Übungsblatt 2. Java Vorkurs (WS 2017)

Übungsblatt 2. Java Vorkurs (WS 2017) Übungsblatt 2 Java Vorkurs (WS 2017) Aufgabe 1 Logische Operatoren Manchmal ist es wichtig zwei Werte miteinander zu vergleichen. Dazu gibt es in Java folgende Vergleichsoperatoren: Text Math. Zeichen

Mehr

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut Mathematisches Institut [email protected] 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php

Mehr

Diskrete Strukturen Wiederholungsklausur

Diskrete Strukturen Wiederholungsklausur Technische Universität München (I7) Winter 2013/14 Prof. J. Esparza / Dr. M. Luttenberger LÖSUNG Diskrete Strukturen Wiederholungsklausur Beachten Sie: Soweit nicht anders angegeben, ist stets eine Begründung

Mehr

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 4A

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 4A Fachbereich Informatik und Mathematik Institut für Informatik Vorsemesterkurs Informatik Sommersemester 2018 Aufgabenblatt Nr. 4A Aufgabe 1 (Haskell Interpreter: GHCi) a) Starten Sie den Haskell Interpreter

Mehr

Praktische Übung. Die Lernplattformen ILIAS ist mit Stud.IP verbunden, sodass Sie Lernmodule dieser Plattform

Praktische Übung. Die Lernplattformen ILIAS ist mit Stud.IP verbunden, sodass Sie Lernmodule dieser Plattform Informatik I Wintersemester 2016/2017 Prof. Dr. Carsten Damm Georg-August-Universität Göttingen Dr. Henrik Brosenne Institut für Informatik Übung 1 Praktische Übung Testate von Di., 01.11., 8-10 Uhr bis

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende

Mehr

Variablen und Datentypen

Variablen und Datentypen Programmieren mit Python Modul 1 Variablen und Datentypen Selbstständiger Teil Inhaltsverzeichnis 1 Überblick 3 2 Teil A: Geldautomat 3 2.1 Einführung.................................. 3 2.2 Aufgabenstellung...............................

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

Kap 7. Funktionen und Arrays

Kap 7. Funktionen und Arrays Kap 7. Funktionen und Arrays Elementare Algorithmen Allgemein Mathematik Text Eingabe ٧ Skalarprodukt wie Allgemein Ausgabe ٧ Länge ersetzen Summation Winkel Laenge Maximum ٧ Polynome berechnen ausschneiden

Mehr

schreiben, wobei p und q ganze Zahlen sind.

schreiben, wobei p und q ganze Zahlen sind. Schülerinfotag 1. Man zeige, dass keine rationale Zahl ist. Das heißt lässt sich nicht als p q schreiben, wobei p und q ganze Zahlen sind. Proof. Wir werden das Prinzip Beweis durch Widerspruch verwenden.

Mehr

SFZ FN Sj. 12/13. Python 4 Grundlagen. W.Seyboldt. Python, SFZ FN, Sj 12/13

SFZ FN Sj. 12/13. Python 4 Grundlagen. W.Seyboldt. Python, SFZ FN, Sj 12/13 SFZ FN Sj. 12/13 Python 4 Grundlagen 1 Python, SFZ FN, Sj 12/13 Python Methoden: def teilt(t, n): ''' Kommentar. ''' Berechnungen return var Statt der Variable var bei Return kann auch eine Methode oder

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

Informatik II Übung 3

Informatik II Übung 3 Informatik II Übung 3 Gruppe 2 Carina Fuss [email protected] 14.3.2018 Carina Fuss 14.3.2018 1 Übung 2 Nachbesprechung Übung 2 Vorbesprechung Übung 3 String vs. StringBuffer Syntaxdiagramme und Syntaxchecker

Mehr

Programmiervorkurs WS 2013/2014. Schleifen. Termin 3

Programmiervorkurs WS 2013/2014. Schleifen. Termin 3 Programmiervorkurs WS 2013/2014 Schleifen Termin 3 Ein Befehl soll mehrfach ausgeführt werden, z.b.: public class MyCounter { System.out.println(1); Ein Befehl soll mehrfach ausgeführt werden, z.b.: public

Mehr

PYTHON. 04 Funktionen II, Module

PYTHON. 04 Funktionen II, Module PYTHON 04 Funktionen II, Module Funktionen Funktionen enthalten Programm-Teile können später im Programm aufgerufen werden können beliebig oft aufgerufen werden (und man muss nur die Funktion aufrufen,

Mehr

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen Ludwig-Maximilians-Universität München München, 16.04.2018 Institut für Informatik Prof. Dr. Thomas Seidl Anna Beer, Florian Richter Algorithmen und Datenstrukturen SS 2018 Übungsblatt 1: Grundlagen Tutorien:

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016 to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Alexander Lochmann, Iman Kamehkhosh, Marcel Preuß, Dominic Siedhoff Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester

Mehr

WIEDERHOLUNG (BIS ZU BLATT 7)

WIEDERHOLUNG (BIS ZU BLATT 7) Universität Bielefeld SS 2016 WIEDERHOLUNG (BIS ZU BLATT 7) JULIA SAUTER Wir wiederholen, welche Aufgabentypen bis zu diesem Zeitpunkt behandelt worden sind. Auf der nächsten Seite können Sie sich selber

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

Über Polynome mit Arithmetik modulo m

Über Polynome mit Arithmetik modulo m Über Polynome mit Arithmetik modulo m Um den Fingerprinting-Satz über die Fingerabdrücke verschiedener Texte aus dem 37. Algorithmus der Woche ( http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo37.php

Mehr

Anleitung zum Ausführen der vier Grundrechenarten mit dem russischen Abakus ( Stschoty )

Anleitung zum Ausführen der vier Grundrechenarten mit dem russischen Abakus ( Stschoty ) Zahlen darstellen 1 Anleitung zum Ausführen der vier Grundrechenarten mit dem russischen Abakus ( Stschoty ) 1 Zahlen darstellen 1.1 Stschoty in Grundstellung bringen Der Stschoty wird hochkant gehalten

Mehr

Algorithmen und Programmierung. Zusatzaufgaben Java Tutorium 1

Algorithmen und Programmierung. Zusatzaufgaben Java Tutorium 1 TU Ilmenau, Fakultät IA FG Telematik/Rechnernetze Prof. Dr.-Ing. G. Schäfer http://www.tu-ilmenau.de/telematik/aup Algorithmen und Programmierung Zusatzaufgaben Java Tutorium 1 Aufgabe 1 (Zeitformatierung)

Mehr

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 5A. Lösung zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler)

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 5A. Lösung zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler) Fachbereich Informatik und Mathematik Institut für Informatik Vorsemesterkurs Informatik Sommersemester 2017 Aufgabenblatt Nr. 5A zu Aufgabe 1 (Fehler in Haskell-Quelltext: Parsefehler) Laden Sie von der

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

Programmiertechnik 1 FOR-SCHLEIFEN

Programmiertechnik 1 FOR-SCHLEIFEN Programmiertechnik 1 FOR-SCHLEIFEN In diesem Dokument wollen wir uns mit Kontrollstrukturen befassen. Dazu sind im Folgenden einige Übungsaufgaben zu den Themen Schleifen (FOR, WHILE, DO) und Bedingungen

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Erklären

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 4 Pkt.) Gegeben

Mehr

Tag 2 Repetitorium Informatik (Java)

Tag 2 Repetitorium Informatik (Java) Tag 2 Repetitorium Informatik (Java) Dozent: Daniela Novac Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Zeichen und

Mehr

Effiziente Algorithmen mit Python. D. Komm, T. Kohn

Effiziente Algorithmen mit Python. D. Komm, T. Kohn Effiziente Algorithmen mit Python D. Komm, T. Kohn Copyright c 2017, ABZ, ETH Zürich http://www.abz.inf.ethz.ch/ Version vom 7. September 2017. Effiziente Algorithmen mit Python 3 1 Effizienz Effizient

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Aufgabenblatt: Methoden - rekursiv

Aufgabenblatt: Methoden - rekursiv Aufgabenblatt: Methoden - rekursiv- Seite 1 Aufgabenblatt: Methoden - rekursiv (1.) Wird noch erstellt! Lösen Sie die folgenden Aufgaben indem Sie: - Basis und Rekursive Bedingung formulieren! - die vorgegebene

Mehr

Programmsteuerung mit PHP - if/else, elseif,switch

Programmsteuerung mit PHP - if/else, elseif,switch Programmsteuerung mit PHP - if/else, elseif,switch Bei der Programmierung geht es meist vor allem darum festzulegen, welche Aktionen wie oft unter welchen Bedingungen ausgeführt werden sollen. Hierzu steht

Mehr

Programmieren mit Python

Programmieren mit Python Programmieren mit Python Programmieren heisst: Dem Computer sagen, was er tun soll. Die Befehle muss man übrigens in einer Sprache geben, die der Computer versteht. Darum sind verschiedene Programmiersprachen

Mehr

Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Krytographie Techniken Symmetrische Verschlüsselung( One-time Pad,

Mehr