*********************** Algorithmische Aufgaben *********************** :Python: |*| |o| |o| |o| |o| :Informatik: |*| |*| |*| |*| |*| :Mathematik: |*| |*| |*| |o| |o| :Python-Module: keine Falls du dich mehr für Algorithmen in der Informatik interessierst und eigentlich keine weiteren Funktionalitäten von Python kennen lernen möchtest, ist dies das Projekt für dich. Die bearbeiteten Aufgaben dringen ins Herz der Informatik vor, wo du für komplexe Probleme einen eigenen Lösungsansatz entwickeln und umsetzen musst. In diesem Projekt wirst du nur Python-Befehle und Strukturen benötigen, welche wir schon kennen. Die bisher bekannten Schleifen und Verzweigungen sowie Eingabe und Ausgabe über :py:func:`input` und :py:func:`print` reichen vollkommen aus. Dies bedeutet aber nicht, dass dieses Projekt einfacher ist als die anderen. Denn hier geht es um das eigentliche Handwerk von Programmierern. Ein guter Programmierer zeichnet sich nicht nur dadurch aus, dass er viele Befehle einer Sprache kennt, sondern dass er komplexe Probleme selbständig mit Hilfe eines Programms lösen kann. Ganz im Sinne des folgenden Zitates: "Man versteht etwas nicht wirklich, wenn man nicht versucht, es zu implementieren [d.h. programmieren]." -- Donald E. Knuth, im Interview bei `heise.de`_, c't 5/2002, S. 190 .. _heise.de: http://www.heise.de/artikel-archiv/ct/2002/05/190_Der-Perfektionist Aufträge ======== 1. Auf `SPOJ`_ gibt es viele Aufgaben. Sie haben aber zwei Nachteile: Zum Teil sind sie sehr anspruchsvoll und alles ist auf englisch. Es gibt aber auch einige einfache Aufgaben. Versuche als Einstieg die folgenden Aufgaben zu lösen: * http://www.spoj.com/problems/FCTRL2/ * http://www.spoj.com/problems/ADDREV/ * http://www.spoj.com/problems/FCTRL/ Benutze diese Aufgaben, um herauszufinden, wie `SPOJ`_ deine Lösung automatisch korrigieren kann. 2. Auf der Seite der Schweizer Informatik-Olympiade `SOI`_ gibt es ein Archiv, in welchem alle Aufgaben der letzten Jahre gesammelt sind. Auch `Projekt Euler`_ bietet viele spannende Aufgaben. Such dir dort oder auf `SPOJ`_ weitere Aufgaben zum Lösen aus. Löse möglichst viele spannende Aufgaben. .. _SPOJ: http://www.spoj.com/ .. _SOI: http://www.soi.ch/ .. _Projekt Euler: https://projecteuler.net/ Dokumente ========= In diesem Projekt musst du ausschliesslich Programmcode verfassen und das Arbeitsjournal führen. Es gibt keine weiteren Dokumente. Achte darauf, dass der Programmcode gut kommentiert wird, so dass man nachvollziehen kann, wie dein Lösungsansatz funktioniert. Kopiere keinen Programmcode aus dem Internet, den du nicht verstehst. In jeder Programmdatei sollte ein Link vermerkt sein, welche Aufgabe mit diesem Programm gelöst wird. .. |*| image:: /images/star-full.png .. |o| image:: /images/star-empty.png