Algorithmus: Kochrezept

Ähnliche Dokumente
C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C - PRÄPROZESSOR. Seminar effiziente C Programmierung WS 2012/13. Von Christian Peter

Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Grundlagen. Kapitel 1

Kurze Einführung in die Programmiersprache C++ und in Root

C/C++ Programmierung

FACHHOCHSCHULE MANNHEIM

Objektorientierung: Klassen und Objekte

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Einführung in die C-Programmierung

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

3. Methodik der Programmerstellung

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen.

Unterlagen. CPP-Uebungen-08/

Programmiersprachen Einführung in C

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Compiler Präprozessor Header Files

Kapitel 1: Einführung

Das erste C++ Programm

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik

Einführung in C ++ und die Objektorientierte Programierung

Grundlagen der Programmentwicklung

Einstieg in die Informatik mit Java

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE

2 Eine einfache Programmiersprache

Vorsemesterkurs Informatik

Programmiersprachen und Übersetzer

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung

Software-Entwicklung mit C++ Programmieren ST1

VBA-Programmierung: Zusammenfassung

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

HDNUM. Peter Bastian (IWR) Numerik November / 158

Übungspaket 12 Der Datentyp char

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

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

Einführung in die Programmierung Wintersemester 2016/17

Historien AB"C" Einführung in die Programmierung mit C/C++ Dipl. Ing. (FH) Hans-Peter Kiermaier. Dr. Bjarne Stroustrup Entwickler von C++

Java Programmierung auf der Konsole / unter Eclipse

Elementare Datentypen in C++

Der C-Präprozessor. Lukas Stabe

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Java I Vorlesung Imperatives Programmieren

Compiler und Präprozessor (1) Erstellen eines Projektes

Funktionale Programmiersprachen

Programmierkurs II. C und Assembler

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

SOFTWAREENTWICKLUNG FÜR

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

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

8. Referenzen und Zeiger

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Vorlesung Informatik I

2. Programmierung in C

Einführung in die Programmierung mit VBA

Vorkurs Informatik WiSe 17/18

Prinzipien der Softwareentwicklung S. Strahringer

Programmieren I + II Regeln der Code-Formatierung

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen

Einführung in die Computerlinguistik Einführung in Perl (1)

Kurzeinführung in C99

Grundlagen der Informatik 0

Einführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Funktionales C++ zum Ersten

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Grundlagen der Informatik - 6. Praktikum

6. Grundlagen der Programmierung

Elementare Konzepte von

Vorkurs C++ Programmierung

C-Programme kompilieren mit Visual Studio Express

Zählen von Objekten einer bestimmten Klasse

7. Übung Informatik II - Objektorientierte Programmierung

Objektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen

Algorithmen zur Datenanalyse in C++

Programmieren für Physiker: C++ SS 2016

C++ - Lernen und professionell anwenden

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Klausur in Programmieren

PIC16 Programmierung in HITECH-C

Vorlesung Informatik II

Berechenbarkeit und Komplexität Vorlesung 11

Transkript:

Algorithmus: Kochrezept Ziel: Menü mit drei Gängen für 4 Personen Grundlegende Spezifikation: 1. Vorspeise: Badische Flädlesuppe 2. Hauptgericht: Überbackene Schinkenröllchen mit Spargel 3. Dessert: Vanilleeis mit heißen Himbeeren Getränke: Sekt, Bier, Wein, Wasser etc. Verfeinerung der Eigenschaften: - (selbst gemachte/vorgefertigte) Fleischbrühe mit/ohne Fett - welche Art von Pfannkuchen (Flädlen), welche Mengen - viel/wenig Spargel, welche Gewürze, welcher Käse - frische/eingefrorene Himbeeren, welches Vanilleeis - welcher Wein, welches Bier etc.

Algorithmus: Kochrezept - Erreichen von Teilzielen Suppe gekocht, Pfannkuchen gebacken, Spargel gekocht - Einhaltung der Reihenfolge Vorspeise vor Hauptgericht, Hauptgericht vor Dessert Auflauf erst in Backofen, wenn Auflaufform gefüllt ist... - Einhaltung zeitlicher Rahmenbedingungen Spargel 12 min. kochen lassen, Auflauf 25 min. in Backofen... - Parallelisierung von Aufgaben Suppe kochen und gleichzeitig Pfannkuchen backen, Schinkenröllchen richten und Spargel abkochen... Eine Person richtet Vorspeise, andere das Hauptgericht - Informationsaustausch der beteiligten Personen/Verarbeitungseinheiten reichst Du mir den Käse, machst Du den Auflauf weiter, wie viele Pfannkuchen sind es schon?...

Algorithmus/Daten/Strukturen Essenz dieses Beispiels: - ein Algorithmus muss nicht notwendigerweise durch eine Maschine ausgeführt werden, - mit einem Algorithmus können Organisationsabläufe beschrieben werden, - mit einem Algorithmus kann die Bearbeitung von Strukturen beschrieben werden, - Strukturen beschreiben Beziehungen zwischen Daten, oder fassen Daten zusammen - Daten lassen sich durch Strukturen organisieren, - die Erkennung von Strukturen muss geübt werden, d.h. die passende Organisation von Daten muss gefunden werden.

Programmiersprachen Maschinennahe Sprachen Maschinensprache: Binär und vom Prozessor abhängig Assembler: Abkürzung für Maschinenbefehle Höhere Programmiersprachen Prozedurale/Imperative Programmiersprachen Logische Programmiersprachen Funktionale Programmiersprachen Objektorientierte Programmiersprachen Skriptsprachen Auszeichnungssprachen

Programmiersprachen

Vorgehensweise klassisch 1) Genaue Formulierung der Aufgabenstellung 2) Abstraktion 3) Entwurf eines Algorithmus 4) Ist der entworfene Algorithmus korrekt? (zurück zu 3)? 5) Kodierung (Übersetzung in eine Programmiersprache) 6) Testen des Programms. (eventuell zurück zu 5 oder zu 3) 7) Effizienz? 8) Dokumentation

Vom Quelltext zum Maschinenprogramm cpp

Vom Quelltext zum Maschinenprogramm

C(++)-Programm Zeichenvorrat, aus dem der Quelltext bestehen darf: Alle Buchstaben ohne Umlaute, Sonderzeichen wie _.?[]( C/C++ ist case sensitive,d.h. Groß- und Kleinbuchstaben werden unterschieden. ProgrammStruktur ist ein anderes Wort als programmstruktur. Alle Objekte haben Namen, sog. Bezeichner. Bezeichner bestehen aus den Zeichen: A..Z, a..z, 0..9, _ und beginnen mit einem Buchstaben oder Unterstrich, nicht aber mit einer Ziffer!

C(++)-Programm Struktur des Quelltextes als eine Folge von Deklarationen (Vereinbarungen)/Definitionen: - Variablen - Konstanten - Funktionen - Datentypen Eine Funktion existiert immer: main-funktion. Hier beginnt und endet die Ausführung des Programms. C-Anweisungen enden mit einem Semikolon: ; Die Verteilung der Anweisung auf die Textzeilen ist ohne Bedeutung (Ausnahme: Präprozessorbefehle).

Hallo Welt! // Das erste C++ - Programm // Autor: Hacker, One // (C) by the author #include <iostream> // ein Praeprozessorbefehl // stellt die C++ Ein-/Ausgabe zur Verfügung void main() // eine Funktion ohne Argumente. { // hier beginnt das Hauptprogramm std::cout << Hello world << std::endl; } // hier endet das Hauptprogramm.

Präprozessor Der Präprozessor wird beim Kompiliervorgang vor dem Compiler, also vor dem eigentlichen Übersetzungsvorgang, gestartet. Der Präprozessor ersetzt nur Text oder lässt Text weg. Es erfolgt keine Übersetzung in Maschinencode. Das Resultat ist ein Text. Alles, was der Präprozessor entfernt, ist dem Compiler nicht zugänglich. Die Entscheidungen des Präprozessors erfolgen zur Übersetzungszeit und nicht zur Laufzeit!

Präprozessor Befehl #include <datei.h> #include "datei.h" #define name #define name rest Bedeutung Fügt die angegebene Datei an dieser Stelle komplett in den Quelltext ein. In den Standardverzeichnissen für Headerdateien. Oder.hpp,.hxx. In modernen Versionen kann man die Endung bei C++ weglassen. wie bei <>, aber Suche zuerst im momentanen Verzeichnis. Macht diesen Namen dem Präprozessor bekannt. Löscht überall im Quelltext (ab dieser Stelle) dieses Wort "name". wie oben, jedoch wird "name" nicht gelöscht, sondern durch "rest" (auch mehrere Wörter) ersetzt.

Präprozessor Befehl #if Bedingung...Teil ja #endif #if Bedingung... Teil ja #else... Teil nein #endif #if Bedingung1... Teil ja Bedingung1 #elseif Bedingung2... Teil ja Bedingung2 #else... Teil nein #endif Bedeutung Trifft die Bedingung zu, bleibt Teil ja als Text erhalten. Im anderen Fall wird der Text entfernt. Trifft die Bedingung zu, bleibt Teil ja als Text erhalten und Teil nein wird entfernt. Trifft die Bedingung nicht zu, bleibt Teil nein als Text erhalten und Teil ja wird entfernt. Trifft die Bedingung1 zu bleibt nur Teil ja Bedingung1 erhalten. Trifft Bedingung2 zu bleibt nur Teil ja Bedingung2 erhalten. Nur falls alle Bedingungen nicht zutreffen bleibt Teil nein erhalten.

Präprozessor Befehl #if defined name...teil ja #endif #if defined name... Teil ja #else... Teil nein #endif #ifdef name... Teil ja #endif #ifndef name... Teil ja #endif Bedeutung Ist name definiert, bleibt Teil ja als Text erhalten. Im anderen Fall wird der Text entfernt. Ist name definiert, bleibt Teil ja als Text erhalten und Teil nein wird entfernt. Ist name nicht definiert, bleibt Teil nein als Text erhalten und Teil ja wird entfernt. Übliche Kurzform Übliche Kurzform für die verneinte Form.