Programmieren Formulierung eines Algorithmus in einer Programmiersprache



Ähnliche Dokumente
Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

IT-Basics 2. DI Gerhard Fließ

Formale Sprachen und Grammatiken

Informatikgrundlagen (WS 2015/2016)

VBA-Programmierung: Zusammenfassung

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen

Grundbegriffe der Informatik

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Was ist ein Compiler?

1 Mathematische Grundlagen

Prolog basiert auf Prädikatenlogik

Semantik von Formeln und Sequenzen

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München

Mathematische Grundlagen

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Einstieg in die Informatik mit Java

Theoretische Informatik I

Algorithmen mit Python

JetSym. Programmierung in Hochsprache ST nach IEC We automate your success.

SDD System Design Document

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Der Zwei-Quadrate-Satz von Fermat

Grundlagen der Informatik

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Einführung in PHP. (mit Aufgaben)

Schulinternes Curriculum für Informatik (Q2) Stand April 2015

Analysis I für Studierende der Ingenieurwissenschaften

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

ANSPRECHPARTNER. Film Mathematik statt Rechnen (Quelle: Hochschule Merseburg) Prof. Dr. Axel Kilian Fachbereich Informatik und Kommunikationssysteme

Einführung in die Informatik I

Virtuelle Fotografie (CGI)

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Praktische Informatik 1

Einführung in Eclipse und Java

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Grundlagen der Theoretischen Informatik, SoSe 2008

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Was können Schüler anhand von Primzahltests über Mathematik lernen?

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

Kapiteltests zum Leitprogramm Binäre Suchbäume

Seminar aus dem Bereich E-Learning

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand:

WS 2008/09. Diskrete Strukturen

Worum geht es in diesem Projekt?

Objektorientierte Programmierung OOP

Kapitel 1: Einführung. Was ist Informatik? Begriff und Grundprobleme der Informatik. Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

Programmieren was ist das genau?

Algorithmen und Berechnungskomplexität I

Grammatiken. Einführung

Java Kurs für Anfänger Einheit 5 Methoden

Die Softwareentwicklungsphasen!

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Guten Morgen und Willkommen zur Saalübung!

1 Vom Problem zum Programm

Grundbegriffe der Informatik

Anforderungen an die HIS

Programmieren Tutorium

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung

Mathematische Maschinen

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

SWE1 / Übung 2 ( )

Arbeiten mit den Mastercam Werkzeug-Managern

Software-Engineering

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Das Schulsystem in Deutschland (Band 2, Lektion 1)

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

BSV Ludwigsburg Erstellung einer neuen Internetseite

Informatik für Schüler, Foliensatz 21 Objektorientierte Programmierung

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

Gesucht und Gefunden: Die Funktionsweise einer Suchmaschine

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Lernmaterial für die Fernuni Hagen effizient und prüfungsnah

Prüfungsmodalitäten Bachelor-Studiengang Medieninformatik

SCHULVERSUCH INFORMATIK IN BADEN-WÜRTTEMBERG. Gerhard Liebrich Peter-Petersen-Gymnasium Mannheim

Binäre Suchbäume (binary search trees, kurz: bst)

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Was bisher geschah: Formale Sprachen

Kapitel 2. Methoden zur Beschreibung von Syntax

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Requirements Engineering Die Dinge von Anfang an richtig machen

Algorithmische Kryptographie

Online-Publishing mit HTML und CSS für Einsteigerinnen

Transkript:

Zum Titel der Vorlesung: Programmieren Formulierung eines in einer Programmiersprache Beschreibung einer Vorgehensweise, wie man zu jedem aus einer Klasse gleichartiger Probleme eine Lösung findet

Beispiel: Quadratwurzel einer natürlichen Zahl 1. Summiere die ungeraden Zahlen, bis Summe = Parameter 2. Ergebnis: Anzahl der Summanden Parameter: 16 1 = 1 + 3 = 4 + 5 = 9 + 7 = 16 = Ergebnis: 4

Parameter: legt konkretes Problem der Klasse fest Korrektheit: zwei Begriffe: partielle Korrektheit: Falls anhält, dann ist Ergebnis eine Lösung (obiger hält nicht für Parameter 17 an!) totale Korrektheit: hält immer an und ist partiell korrekt 1. Summiere die ungeraden Zahlen, bis Summe Parameter 2. Falls Summe=Parameter dann: Ergebnis: Anzahl der Summanden sonst: keine Quadratzahl (Details Vorlesung Semantik von Programmiersprachen )

Eigenschaften von Algorithmen Endlichkeit der Beschreibung ( Terminierung!) Effektivität der Schritte (jeder Einzelschritt ausführbar, terminiert) Determiniertheit (evtl. verzichtbar) Wirkung jedes Schrittes eindeutig nächster Schritt eindeutig Alltägliche Algorithmen : Kochrezepte Bastelanleitungen Spielregeln selten exakt formuliert

Gibt es für alle (mathematisch formulierbare) Probleme Algorithmen? Nein! Es gibt Funktionen, zu denen es keine Algorithmen gibt! Definiere folgende Funktion: f : Java-Programme { {0, 1} 1 falls P anhält f (P) = 0 sonst Hierfür gibt es keinen! (Halteproblem, s. Vorlesung Theoretische Grundlagen der Informatik)

Zur Korrektheit sollte immer gegeben sein, aber: formal nicht nachprüfbar Aufgabenstellung nicht präzise kein allgemeingültiges Verfahren Testen kann nur Anwesenheit von Fehlern zeigen Beherrschung der Komplexität durch Strukturierung Zerlege große Programme in kleinere Einheiten (Module) Techniken zur Komposition

Programmiersprache Programmiersprache Programmiersprache: Hilfsmittel zur Formulierung von Algorithmen ausführbar auf einem Rechner Bearbeitung mit Werkzeugen (Transformation, Bibliothek, Versionsverwaltung) Aspekte: Syntax: Was sind zulässige Zeichenfolgen Bildungsgesetze Semantik: Was bedeuten die Zeichenfolgen? Interpretation der einzelnen Komponenten Pragmatik: Wie wendet man die Sprache an? Kodierungshinweise, Systemumgebung, Debugger,...

Programmiersprache Programmiersprache Anforderungen an Programmiersprachen: Universalität (Formulierung beliebiger Algorithmen) automatisch analysierbar (Compiler, Interpreter)

Vorlesung Programmierung Vorlesung Programmierung Unwichtig: bestimmte Sprache bis zur letzten Feinheit lernen effiziente Programme schreiben trickreiche Programme schreiben Wichtig: Gefühl für guten Stil entwickeln Techniken zur Beherrschung komplexer Zusammenhänge Denken in Strukturen und Algorithmen Wissen erwerben: was ist wichtig/unwichtig beim Lesen großer Programme

Vorlesung Programmierung Vorlesung Programmierung Methode: Analyse guter Programme Modifikation und Erweiterung von Programmen neue Programme erstellen + kritische Analyse!

Programmelemente Programmelemente elementare Ausdrücke (einfachste Einheiten) Mittel zur Kombination (Zusammensetzen von Ausdrücken) Mittel zur Abstraktion (Benennung komplexer Ausdrücke, ignoriere Details) Programmieren mit zwei Arten von Objekten: Prozeduren Daten Programmiersprache muss elementare Daten und Prozeduren beschreiben können Daten und Prozeduren kombinieren können

Programmiersprache in der Vorlesung Programmiersprache in der Vorlesung: Scheme LISP (LISt Processor, McCarthy 1958, rekursive Gleichungen als Modelle für Rechenprozesse) einfache Syntax flexibel, erweiterbar interaktiv Datentypen (dynamisch geprüft) automatische Speicherverwaltung Programme Daten ALGOL (ALGOrithmic Language) Blockstruktur lexikalische Variablenbindung

Scheme Scheme Informationen: viele, z.b. www.schemers.org/ Aktueller Standard: R 6 RS (Revised 6 Report, 2007) Verschiedene Erweiterungen: MIT Scheme, stk, scm, DrScheme Generelle Arbeitsweise mit Scheme-System: 1. Start 2. Warte auf Bereitzeichen > 3. Ausdruck eintippen 4. System wertet Ausdruck aus, druckt Ergebnis, meldet Fehler 5. zurück zu Schritt 2 Interaktive Umgebung: DrScheme www.informatik.uni-kiel.de/~mh/lehre/info1_09/ Übungen