Programmiergrundkurs
|
|
- Alma Wetzel
- vor 6 Jahren
- Abrufe
Transkript
1 Programmiergrundkurs Aufgaben und Anleitung Lucas Mann Übersetzung in Python Als erstes machen wir uns damit vertraut, wie man in Python Algorithmen schreiben kann. Einen Algorithmus kannst du folgendermaßen definieren: 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 einzelnen 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() 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: 1
2 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" Wenn man zwei Werte vergleichen möchte (zum Beispiel in einem Wenn : ), hat man die folgenden Relationen zur Verfügung: Mathematisch = < > Python ==!= < > <= >= Außerdem gibt es die logischen Verknüpfungen not, and und or. Zum Beispiel überprüft if (a > 0 and b < 0) or (a < 0 and b > 0): ob a und b verschiedene Vorzeichen haben. Es folgt ein Beispiel für einen Algorithmus in Umgangsprache und seine Übersetzung in Python: 1. Eingabe: Eine ganze Zahl n. 2. Wenn n < 0: 2.1. Ausgabe: Ungültiges n. 3. Setze r = Wiederhole die folgenden Schritte solange, wie n > 0: 4.1. Erhöhe r um n Verringere n um Ausgabe: r. def gauss_summe(n): if n < 0: return "Ungueltiges n" r = 0 while n > 0: r = r + n n = n - 1 return r Zur Vorbereitung für die folgenden Aufgaben implementiere obigen Algorithmus wie folgt in Python: 1. Tippe obigen Code in eine Textdatei und gib dieser Datei den Namen algorithmen.py. 2. Öffne ein Terminal, gehe dort mittels cd Pfad zu dem Ordner, in dem sich die Codedatei befindet. 3. Tippe python3 ein, um Python zu starten. 4. Tippe from algorithmen import * ein, um deine Codedatei zu laden. 5. Nun kannst du alle Algorithmen in der Codedatei benutzen. Tippe zum Beispiel gauss_summe(4) ein; es erscheint das Ergebnis 10. Die folgenden Aufgaben verlangen von dir, die im Kurs behandelten Algorithmen in Python zu übersetzen. Aufgabe 1. Implementiere den Algorithmus teilt(a, b), welcher zurückgibt, ob die Zahl b durch die Zahl a teilbar ist. Benutze als Vorbild den im letztwöchigen Kurs erarbeiteten Algorithmus. Aufgabe 2. Implementiere den Algorithmus ist_prim(n), der zurückgibt, ob die Zahl n eine Primzahl ist. Aufgabe 3. Implementiere den Algorithmus fakultaet(n), welcher n! ausrechnet. Aufgabe 4. Implementiere alle Algorithmen, die in Hausaufgabenserie 12 vorkamen. 2
3 2 Neue Algorithmen Hier sind ein paar weitere Aufgaben, für die du dir nun deine eigenen Algorithmen überlegen musst. Aufgabe 5. Schreibe einen Algorithmus binomial(n, k), welcher den Binomialkoeffizienten ( n ) k berechnet. Zur Erinnerung: Es gilt ( ) n n! = k k!(n k)! n(n 1)(n 2)(n k + 1) =. k! Welche der beiden Formeln lässt sich leichter implementieren? Und welche erfordert weniger Rechenaufwand? Aufgabe 6. Schreibe einen Algorithmus, der die n-te Fibonacci-Zahl F n ausrechnet. Benutze dabei die folgenden drei Ansätze: a) Benutze die rekursive Vorschrift in einer Schleife. b) Benutze die explizite Darstellung F 0 = 0, F 1 = 1, F n = F n 1 + F n 2 für n 2 F n = φn (1 φ) n 5, wobei φ = der Goldene Schnitt ist. Tipp: Zur Berechnung von 5 benutze den Python-Code 5**.5. c) Die Vorschrift F n = F n 1 + F n 2 kannst du auch direkt implementieren, indem du deinen Algorithmus sich selbst aufrufen lässt (das nennt man Rekursion). Du musst dann allerdings aufpassen, dass der Algorithmus irgendwann beendet wird. Wie? 3 Listen Listen sind ein sehr wichtiger Datentyp in Python. Wie der Name sagt, ist eine Liste eine endliche geordnete Aneinanderreihung von irgendwelchen Werten (zum Beispiel die Liste aller Primzahlen von 1 bis 100). 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 Die folgende Tabelle zeigt ein paar wichtige Operationen mit Listen: Umgangssprache Python Setze den 5-ten Eintrag der Liste l auf Wahr l[5] = True Setze den a-ten Eintrag der Liste l auf den Wert in k l[a] = k Lies den 3-ten Eintrag der Liste l und speichere ihn in r r = l[3] Hänge den Text Python hinten an die Liste l an l.append("python") Erzeuge eine Liste mit 20 True-Einträgen l = [True] * 20 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". 3
4 Aufgabe 7. Schreibe einen Algorithmus primzahlen(n), der die Liste aller Primzahlen von 1 bis n ausgibt, indem du den bereits implementierten Algorithmus ist_prim(n) benutzt. Teste die Geschwindigkeit deines Algorithmus für große n und schätze seine Effizienz ein. Aufgabe 8. Die Collatz-Folge zu einem Startwert n 0 (natürliche Zahl) wird wie folgt schrittweise berechnet: Sei n die aktuelle Zahl (am Anfang also n = n 0 ). In jedem Schritt tue folgendes: 1. Wenn n gerade ist, nimm als nächste Zahl n Wenn n ungerade ist, nimm als nächste Zahl 3n + 1. Es ist eine unbewiesene Vermutung, dass diese Folge immer irgendwann bei 1 landet, egal mit welchem n 0 man beginnt. Schreibe einen Algorithmus collatz(n0), der die Collatz-Folge mit Startwert n0 berechnet, bis irgendwann 1 herauskommt, und der die Folge von n0 bis 1 als Liste ausgibt. 4 Ein richtiges Programm Nachdem wir nun viele interessante Algorithmen geschrieben haben, wollen wir abschließend einen kleinen Einblick darin bekommen, wie ein richtiges Programm in Python aussieht. Wenn du Code direkt beim Laden des Programm ausführen willst (statt nur eine Sammlung von Algorithmen zu haben), dann kannst du diesen Code außerhalb aller Algorithmen (am besten darunter) schreiben, also ohne Einrückung. Damit das Programm mit dem Nutzer interagieren kann, gibt es zwei wichtige Befehle: 1. Mit print(wert) wird der angegebene Wert ausgegeben. Möchtest du einen Text ausgeben, schreibe ihn in Anführungszeichen (wie bereits weiter oben erklärt), also zum Beispiel print("hallo"). Wenn du Werte in den Text einfügen willst, benutze format und geschweifte Klammern, zum Beispiel: r = print("anna ist {} und Bernd ist {} Jahre alt".format(r, 14)) Dadurch werden die an format übergebenen Werte anstelle der geschweiften Klammern ausgegeben (in der gleichen Reihenfolge). Natürlich kannst du statt direkten Werten (wie 10 und 14) auch die in Variablen (Speicherplätzen) gespeicherten Werte angeben. Das geht nicht direkt im Text! 2. Mit input(text) wird der Nutzer mittels der Nachricht text aufgefordert, etwas einzugeben. Das Ergebnis dieser Eingabe wird dann von input zurückgegeben und kann direkt in eine Variable gespeichert werden. Der Typ des Wertes ist dann aber automatisch Text ; um diesen Text in eine Zahl zu konvertieren, kannst du int(wert) benutzen. Hier ein Beispiel für ein Programm, das den Nutzer auffordert, ein n einzugeben und dann n! ausgibt: print("ich kann n! berechnen!") n = int(input("bitte gib n ein: ")) r = fakultaet(n) print("das Ergebnis ist {}".format(r)) Aufgabe 9. Wähle einen deiner Algorithmen aus und schreibe ein Python-Programm, welches diesen Algorithmus ausführt. Das heißt es sagt dem Nutzer was es tut, fragt dann die Eingabewerte ab und gibt schließlich das Ergebnis aus. 4
5 Der eleganteste Weg, das Programm auszuführen, ist den Befehl python3 datei.py einzutippen (also ohne das -i). Aufgabe 10. Schreibe das Spiel Zahlen raten : Der Computer wählt sich zu Beginn eine zufällige Zahl zwischen 1 und In jedem Zug darf der Spieler die Zahl raten und der Computer sagt ihm, ob seine Eingabe größer, kleiner oder gleich der zufälligen Zahl ist. Wenn der Spieler richtig rät, gibt der Computer die Anzahl der benötigten Versuche aus. Hinweis: Tue folgendes, um eine zufällige Zahl zwischen 1 und 1000 zu berechnen : Schreibe ganz oben in dein Programm die (uneingerückte!) Zeile import random, um die Zufallsalgorithmen in dein Programm zu laden. Um nun eine zufällige Zahl zu berechnen, benutze random.randint(1, 1000), also in etwa import random zahl = random.randint(1, 1000) 5 Zusatz Aufgabe 11. Gesucht sind die Lösungen zu folgendem Kryptogramm: E I NS + E I NS = ZW E I. Dabei steht jeder Buchstabe für eine Ziffer. Der Einfachheit halber erlauben wir, dass zwei verschiedene Buchstaben die gleiche Ziffer haben (Zusatz: Schaffst du es auch sonst?). Schreibe einen Algorithmus kryptogramm(), welcher alle Lösungen des Kryptogramms berechnet und in einer Liste zurückgibt. Benutze dafür die brute force -Methode (= rohe Gewalt), d.h. gehe alle Möglichkeiten für die Belegungen der 6 Buchstaben durch und überprüfe jeweils, ob die Gleichung erfüllt ist. Tipp: Du musst wahrscheinlich for-schleifen ineinander verschachteln. Dein Algorithmus könnte also folgendermaßen anfangen: def kryptogramm(): for e in range(0, 10): for i in range(0, 10): Aufgabe 12. In Aufgabe 7 hast du einen Algorithmus programmiert, der dir die Primzahlen von 1 bis n ausgibt (für ein gegebenes n). Allerdings ist dieser Algorithmus sehr ineffizient und läuft für großes n nicht mehr in akzeptabler Zeit. Ein wesentlich schnellerer Algorithmus, der das gleiche Ergebnis erzeugt, ist das Sieb des Eratosthenes. Die Idee ist folgende: Zu Beginn wird eine Liste l mit n Einträgen angelegt, wobei erstmal alle Einträge True sind. Nun werden die folgenden Schritte wiederholt: Suche den kleinsten Index k 2, sodass der k-te Eintrag von l den Wert True hat. Dann ist k eine Primzahl, speichere k also in eine separate Primzahlliste. Nun gehe alle Vielfachen von k durch und setze die entsprechenden Einträge in l auf False. a) Überlege dir, warum dieser Algorithmus funktioniert. Vergleiche obige Beschreibung mit der Erklärung auf Wikipedia; ist das der gleiche Algorithmus? b) Implementiere den Algorithmus eratosthenes(n) nach obigem Vorbild. Vergleiche die Geschwindigkeit dieses Algorithmus mit dem bereits implementierten primzahlen(n). 5
6 Tipp 1: Um eine Liste mit n Einträgen True zu erzeugen, kannst du l = [True] * n benutzen (siehe oben). Tipp 2: Um alle Vielfachen einer Zahl durchzugehen, kannst du eine for-schleife benutzen. Man kann nämlich range sogar drei Parameter übergeben, wobei der dritte Parameter dann die Schrittweite ist. Zum Beispiel: for k in range(a, b, c): Eine solche Schleife wird für alle k der Form a, a + c, a + 2c, a + 3c, wiederholt, solange diese Zahlen kleiner als b sind. Aufgabe 13. Das Ziel dieser Aufgabe ist es, die bekannte Kreiszahl π zu berechnen. a) Mithilfe elementarer Analysis kann man zeigen: ( π = ) 11 ± Schreibe einen Algorithmus pi(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? b) 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 pi2(n), welcher eine Näherung für π nach diesem Verfahren berechnet. Berechne pi2(4) und vergleiche die Genauigkeit (und Geschwindigkeit) dieser Rechnung mit pi(10000). Was fällt auf? Tipp: Um die Wurzel aus einer Zahl x zu berechnen, kannst du x**.5 benutzen. Bemerkung: Der zweite 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 pi2(4) bestimmen. Natürlich gibt es Methoden, die Rechengenauigkeit zu erhöhen. Bei Interesse bitte nachfragen. Aufgabe 14. Schreibe einen kleinen Taschenrechner, welcher die vier Grundrechenarten sowie Potenzen und Binomialkoeffizienten berechnen kann. Das Programm nimmt als Eingaben zwei Zahlen a und b und eine Operation und gibt das Ergebnis der entsprechenden Rechnung aus. Die Operation wird als Text angegeben und kann +, -, *, /, ^ oder b sein. Tipp: Benutze input(text), um die beiden Zahlen und die Operation vom Nutzer abzufragen. Bei den Zahlen musst du noch int() darumschreiben, um den eingegebenen Text in eine Zahl umzuwandeln (wie zuvor), bei der Operation nicht (denn diese soll ja als Text behandelt werden). 6
Programmierkurs Aufgaben und Anleitung
Programmierkurs Aufgaben und Anleitung Lucas Mann 19.04.2017 1 Wiederholung Wir wiederholen kurz, wie man in Python Algorithmen schreiben und ausführen kann. 1.1 Programmstruktur Ein Algorithmus (oft auch
MehrProgrammierkurs 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
MehrEinfü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/
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
Mehr06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen
06 While-Schleifen While-Schleifen 1/7 Wiederholung: Schleifen Eine Schleife ist eine Struktur, welche den Computer anweist, eine Liste von Befehlen mehrmals auszuführen. Falls Du ein Verfahren hast, das
MehrPrimzahlen und Programmieren
Primzahlen Wir wollen heute gemeinsam einen (sehr grundlegenden) Zusammenhang zwischen Programmieren und Mathematik herstellen. Die Zeiten in denen Mathematiker nur mit Zettel und Stift (oder Tafel und
MehrSchleifen: Immer wieder dasselbe tun
Schleifen: Immer wieder dasselbe tun Bei einer Schleife werden Anweisungen immer wieder ausgeführt, solange die Bedingung wahr ist. Dafür muss man eine Variable immer wieder ändern, solange bis eine Überprüfung
MehrSFZ 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
MehrJavaScript. 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
MehrInformatik 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
MehrVorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python
Vorsemesterkurs Informatik Übungsaufgaben Tag 4a - Python Aufgabe 1: Listen Mache dich im Python-Interpreter mit dem Umgang mit Listen vertraut. Kapitel 2.6 im Skript (s.40) enthält nützliche Informationen.
MehrPraktikum 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
MehrAufgabenblatt: 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
MehrFunktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben
MehrZweiter Teil des Tutorials. Workspace M-files Matrizen Flow Control Weitere Datenstrukturen Gemeinsames Beispiel erarbeiten
Zweiter Teil des Tutorials Workspace M-files Matrizen Flow Control Weitere Datenstrukturen Gemeinsames Beispiel erarbeiten Workspace Im Workspace sind die Variablen mit ihrem jeweiligen Wert gespeichert.
MehrEffiziente 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
MehrEine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate
COMA Eine Einführung Quellcode: Anweisung(en)1 Wiederhole: T.Bosse Anweisung(en) 2 Einfache Schleifen (z.b. for-loop) Wiederhole: Falls (Bedingung) wahr, tue: Anweisung(en) 2 sonst führe Verzweigungen
MehrAutor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH
Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrFunktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.
MehrÜbersicht Shell-Scripten
!!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,
MehrC++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.
C++ Teil 3 3.3 Schleifen Man kann bestimme en in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. for-schleife for-schleife while-schleife do-while-schleife for ( Ausdruck1;
MehrFolgen und Funktionen in der Mathematik
Folgen und Funktionen in der Mathematik Anhand von einigen exemplarischen Beispielen soll die Implementierung von mathematischen Algorithmen in C/C++ gezeigt werden: Reelle Funktionen in C/C++ Diese wird
MehrGreenfoot: 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
Mehr1 Stückweise konstante Funktionen (ca =10 Punkte)
Einführung in die wissenschaftliche Programmierung Klausur Seite 1/5 Name, Vorname, Unterschrift: Matrikelnummer: 1 Stückweise konstante Funktionen (ca. 4+2+4=10 Punkte) In dieser Aufgabe soll eine Klasse
MehrAufgabe 1 (12 Punkte)
Aufgabe 1 (12 Punkte) Schreiben Sie eine Klasse public class ZinsesZins, die zu einem gegebenen Anfangskapital von 100,00 die Kapitalentwicklung bei einer jährlichen nachschüssigen Verzinsung in Höhe von
MehrTag 3 Repetitorium Informatik (Java)
Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn 26. Oktober 2015 Programme und Algorithmen Programmiersprache = Kunstsprache mit genau definierter Syntax (was ist ein zulässiger
MehrBrainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen
Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit
MehrInformatik für Schüler, Foliensatz 3 Vorhandene Funktionen und Wiederholschleifen
Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 23. September 2009 1/17 Informatik für Schüler, Foliensatz 3 Vorhandene Funktionen und Wiederholschleifen Prof. G. Kemnitz Institut
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man
MehrEinfü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ß
MehrGreenfoot: 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
MehrPython Einführung. Monica Selva Soto. 24 März Mathematisches Institut
Mathematisches Institut mselva@math.uni-koeln.de 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
MehrBash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 07.01.2013 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
MehrInformatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2017 1 und der Typ bool Typ bool Typ bool Vergleichsoperationen
MehrEinführung in Python Übung 1
Einführung in Python Übung 1 Rebecca Breu, Bastian Tweddell Oktober 2007 Login: XXXloginXXX Passwort: XXXpasswortXXX Bitte das Passwort ändern (passwd)! Datentypen I Aufgabe 1 (Erste Schritte, Zahlen)
MehrÜbung zu Einführung in die Informatik # 11
Übung zu Einführung in die Informatik # 11 Tobias Schill tschill@techfak.uni-bielefeld.de 22. Januar 2016 Aktualisiert am 22. Januar 2016 um 11:36 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* Aufgabe
MehrShell-Scripting Linux-Kurs der Unix-AG
Shell-Scripting Linux-Kurs der Unix-AG Andreas Teuchert 8. Juli 2014 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich
MehrNachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.
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: ( / 25 Pkt.) Gegeben ist das folgende
MehrCollatz-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
MehrGrundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs
Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Über diesen Kurs 2. Der Python Interpreter 3. Python Scripte 4. Grundlagen der Sprache 5. Das erste Programm 6. Operatoren
MehrKapitel. Platzhalter. Was sind Platzhalter?
Kapitel 3 Was sind? sind ganz wichtige Elemente bei der Programmierung. Alle Programme, die du schon kennst (wie beispielsweise die Textverarbeitung WORD oder ein Programm zum Verschicken von E-Mails),
MehrÜ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
MehrIntensivü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
MehrPython für Linguisten
Python für Linguisten Dozentin: Wiebke Petersen & Co-Dozent: Valentin Heinz 4. Foliensatz bedingte Anweisungen Input, Output Petersen & Heinz Python 1 Vergleichsoperatoren und Boolsche Werte numerische
MehrBash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 13.06.2012 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
MehrProbeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten
Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges
MehrSchritt 1. Schritt 1. Schritt 3. - Analysieren des Problems und Spezifizierung einer Lösung.
I. Programmierung ================================================================== Programmierung ist die Planung einer Abfolge von Schritten (Instruktionen), nach denen ein Computer handeln soll. Schritt
MehrShell-Scripting Linux-Kurs der Unix-AG
Shell-Scripting Linux-Kurs der Unix-AG Benjamin Eberle 1. Februar 2016 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri 2009-11-05 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Übersicht Variablen Datentypen Werte Operatoren und Ausdrücke Kontrollstrukturen: if, while
MehrArrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss
Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt
MehrProgrammieren 1 C Überblick
Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
MehrÜbung 1 (Entwurf von Algorithmen) Beispiellösung
Lernziele: Übung 1 (Entwurf von Algorithmen) Beispiellösung Vertiefen der Kenntnisse über den Entwurf von Algorithmen, einfache Algorithmen. Aufgabe 1: Sortieren eines Kartenstapels Ein Stapel ungeordneter
MehrFunktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
MehrBash-Scripting Linux-Kurs der Unix-AG
Bash-Scripting Linux-Kurs der Unix-AG Zinching Dang 02. Juli 2013 Was ist ein Bash-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich bei
MehrGirls Day 2017 Programmierung
Girls Day 2017 Programmierung Anke Brocker Quality Management Würselen, 27. April 2017 www.lancom-systems.de Programmierung 27.04.2017 - Übersicht Programmieren mit der Arduino IDE Die Arduino IDE Der
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrVorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 4A
Fachbereich Informatik und Mathematik Institut für Informatik Vorsemesterkurs Informatik Sommersemester 2017 Aufgabenblatt Nr. 4A zu Aufgabe 1 (Verzeichnisse) a) Öffnen Sie eine Shell und finden Sie durch
MehrKapitel 1: Informationsverarbeitung durch Programme
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung
Mehr(6) Verknüpfen der GUI mit dem Spiel
Das einzige was eurer App jetzt noch fehlt ist die Verknüpfung eurer GUI mit dem Spiel Schiffe Versenken. Damit auch alles perfekt funktioniert werdet ihr als Vorbereitung einige neue Elemente und Variablen
Mehrwarren d. und carter SANDE Hello W rld! LERN MIT MIR SPIELE PROGRAMMIEREN! PROGRAMMIEREN FÜR KIDS UND ANDERE ANFÄNGER Erratum
warren d. und carter SANDE Hello W rld! LERN MIT MIR SPIELE PROGRAMMIEREN! PROGRAMMIEREN FÜR KIDS UND ANDERE ANFÄNGER Erratum Warren D. und Carter Sande Hello World Programmieren für Kids und andere Anfänger
MehrDie Formel für die Standardabweichung lautet (ohne die Wurzel haben wir die Varianz):
Mittelwert und Standardabweichung Klasse: StandardDeviation Schreiben Sie ein Programm StandardDeviation, das von den zufällig erzeugten Werten eines Arrays beliebiger Größe den Mittelwert und die Standardabweichung
MehrFunktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
MehrInhalt Kapitel 2: Rekursion
Inhalt Kapitel 2: Rekursion 1 Beispiele und Definition 2 Partialität und Terminierung 3 Formen der Rekursion Endständige Rekursion 4 Einbettung 29 Beispiele und Definition Rekursion 30 Man kann eine Funktion
MehrKontrollstrukturen und Funktionen in C
Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren
MehrKlausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 8 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 ( / 10 Pkt.) a) Geben
MehrPraktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3
Michael Jugovac Dominik Kopczynski Jan Quadflieg Till Schäfer Stephan Windmüller Dortmund, den 30. Oktober 2014 Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Es können 12 (+5
MehrModul 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
MehrVom Algorithmus zum Programm
Vom Algorithmus zum Programm Lernziele: Vertiefen der Kenntnisse über den Entwurf von Algorithmen und deren Übertragung in ein C- Programm Aufgabe 1: Pythagoreisches Tripel a) Entwickeln Sie einen Algorithmus,
MehrIntroduction 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
MehrVorsemesterkurs 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
MehrProgrammiervorkurs WS 2012/2013. Schleifen und Methoden
Programmiervorkurs WS 2012/2013 Schleifen und Methoden 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.:
MehrÜbungen zum Vorkurs Mathematik für Studienanfänger Ein leeres Produkt ist gleich 1, eine leere Summe 0. ***
Universität Bonn Mathematisches Institut Dr. Michael Welter Übungen zum Vorkurs Mathematik für Studienanfänger 2010 Einige Zeichen und Konventionen: IN := {1, 2, 3, 4,...} Die Menge der natürlichen Zahlen
MehrÜbungsblatt 2. Java Vorkurs (WS 2015)
Übungsblatt 2 Java Vorkurs (WS 2015) Aufgabe 1 Logische Operatoren Manchmal ist es wichtig zwei Werte miteinander zu vergleichen. Dazu gibt es in Java folgende Vergleichsoperatoren: Text Math. Zeichen
MehrProgrammierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.
MehrProgrammieren in C (Übungsblatt 1)
21.02.2017 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
Mehr1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren
1 und der Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2015 27. Oktober 2015 B. Nebel Info I 3 / 21 Der Vergleichsoperatoren
MehrExplizite Formeln für rekursiv definierte Folgen
Schweizer Mathematik-Olympiade Explizite Formeln für rekursiv definierte Folgen Aktualisiert: 6 Juni 014 In diesem Skript wird erklärt, wie man explizite Formeln für rekursiv definierte Folgen findet Als
MehrProgrammieren in C (Übungsblatt 1)
23.02.2016 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung
Mehr1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?
1.8 Kontrollstrukturen 75 1.8.5 Wiederholungen Häufig muss die gleiche Teilaufgabe oft wiederholt werden. Denken Sie nur an die Summation von Tabellenspalten in der Buchführung oder an das Suchen einer
MehrÜbungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
MehrINFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
MehrProf. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015
Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I
MehrGleichungen in GeoGebra-CAS Quelle: https://wiki.geogebra.org/de/befehle
Gleichungen in GeoGebra-CAS Quelle: https://wiki.geogebra.org/de/befehle Hinweis Mit spitzen Klammern werden die Objekte gekennzeichnet, die du selber ausfüllen sollst. Sie dürfen bei der Übergabe nach
Mehr6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (
6 Ein- und Ausgabe Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig ( Drucken war hoffnungslos übertrieben); heute lernen wir, wie wir die Ergebnisse unserer Programme abspeichern können, um sie
MehrProgrammieren mit dem TI-92
Sieglinde Fürst Programmieren mit dem TI-92 Programmieren Formeln für Flächeninhalte Inhalte Programm zur Addition zweier Zahlen Programm zur Flächenberechnung eines Dreiecks, Parallelogramms, Trapezes
MehrShell-Scripting Linux-Kurs der Unix-AG
Shell-Scripting Linux-Kurs der Unix-AG Benjamin Eberle 6. Juli 2016 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,
MehrC++ 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
MehrBeispiel 19. December 4, 2009
Beispiel 9 December 4, 2009 Computermathematik (für Informatik) 4. Übungsblatt (Musterlösung) 2. 2. 2009 Die heutigen Übungen sollen mit dem Computeralgebrasystem Sage gelöst werden. Die Lösung der Beispiele
MehrMathematik für Naturwissenschaftler I WS 2009/2010
Mathematik für Naturwissenschaftler I WS 2009/2010 Lektion 8 10. November 2009 Kapitel 2. Konvergenz von Folgen und Reihen Definition 27. Eine (reelle bzw. komplexe) Zahlenfolge ist eine R- bzw. C-wertige
MehrInformatik I Übung, Woche 40
Giuseppe Accaputo 2. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 2 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 3 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung
MehrÜbungen zu Algorithmen
Institut für Informatik Universität Osnabrück, 08.11.2016 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~ainf Lukas Kalbertodt, B.Sc. Testat bis 16.11.2016, 14:00 Uhr Nils Haldenwang, M.Sc. Übungen
Mehr