Grundlagen der Informatik für Ingenieure

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Informatik für Ingenieure"

Transkript

1 Grundlagen der Informatik für Ingenieure Dr.-Ing. Eike Schallehn OvG Universität Magdeburg Fakultät für Informatik Institut für Technische und Betriebliche Informationssysteme 2017/2018 Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 1/715

2 Organisatorisches zu Vorlesung und Übung

3 Zum Inhalt Semester (Planung) Einführung: Begriffe und Geschichte der Informatik Grundlagen der Programmierung in C++ Technische Grundlagen der Informatik Daten, Informationen, Kodierung Grundlagen der Computergrafik Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 3/715

4 Zum Inhalt Semester (Planung) Objekorientierte Programmierung mit C++ Eigenschaften von Algorithmen Datenstrukturen Grundlagen von Datenbanken Grundlagen von Rechnernetzen Grundlagen des Software Engineering Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 4/715

5 Zugrundeliegende Literatur Grundlagen der Informatik für Ingenieure Einführung in die Programmierung mit C / C++ Von: Paul, Georg / Hollatz, Meike / Jesko, Dirk / Mähne, Torsten B.G. Teubner Verlag ISBN: Einführung in die Informatik für Naturwissenschaftler und Ingenieure Levi, Paul / Rembold, Ulrich Hanser Fachbuchverlag; Auflage: 4., aktualis. u. überarb. A. (Januar 2003) ISBN: Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 5/715

6 Zum Ablauf... Alle Infos, Folienkopien und Aufgabenblätter unter Veranstaltung besteht aus: Wintersemestersemester: wöchentliche Vorlesung 14-tägliche Übung Sommersemester: wöchentliche Vorlesung wöchentliche Übung Tutorien Schriftliche Klausur am Ende des Sommersemesters Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 6/715

7 Tutorien Tutorien dienen der selbständigen Arbeit an Übungsaufgaben und Erweiterung der Programmierkenntnisse Hilfestellung durch anwesende Tutoren auf Anfrage Besuch freiwillig, aber empfohlen, insbesondere für Programmierneulinge Termine entsprechend LSF bzw. auf der Webseite. Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 7/715

8 Prüfungen Zweistündige (Bearbeitungszeit 120 Minuten) schriftliche Prüfung in der vorlesungsfreien Zeit am Ende des Sommersemsters Inhaltlich abgedeckt durch Vorlesung und Übung Zuvor genannte Prüfungsvoraussetzung notwendige Bedingung für Zulassung Keine Hilfsmittel erlaubt! Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 8/715

9 Sprechstunde Eike Freitag, 10:00 Uhr in Raum 29/125 (Vorsicht! Versteckte Tür im Vorzimmer 29/126...) Weitere Termine nach Vereinbarung per möglich: Jederzeit auch gerne Anregungen, Kritik, technische oder organisatorische Fragen, Verbesserungsvorschläge, Hinweise zu Fehlern auf Folien, Probleme, etc. per oder nach der Vorlesung an mich! Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 9/715

10 Sprechstunde Sven Generell: in der Übung Probleme ansprechen Alternativ: per Mail schreiben und ggfs. Termin ausmachen, ich bin im Raum G zu finden. Weitere Termine nach Vereinbarung per möglich: Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 10/715

11 Alles klar?

12 Teil I Einführung

13 Überblick 1 Was ist Informatik? 2 Bereiche der Informatik 3 Geschichte der Informatik Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 13/715

14 Was ist Informatik? Informatik=? Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 14/715

15 Computer als Arbeitsmittel In der Informatik geht es genauso wenig um Computer wie in der Astronomie um Teleskope. Edsger Wybe Dijkstra Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 15/715

16 Der Begriff Informatik Kunstwort aus den 60ern Informatik Information + Technik oder Informatik Information + Mathematik oder Informatik Information + Automatik... Definition (Informatik) Informatik ist die Wissenschaft von der systematischen und automatischen Verarbeitung von Informationen, insbesondere mit Hilfe von Computern. Im Englischen: Computer Science + Information Science Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 16/715

17 Bereiche der Informatik Angewandte Informatik Entwicklung und Verwendung von speziellen Informationsverarbeitungslösungen für bestimmte Anwendungen: Ingenieurinformatik, Wirtschaftsinformatik, Geoinformatik, Bioinformatik, Medieninformatik, etc. Praktische Informatik Techniken der Programmierung und Entwicklung von Lösungen zur Informationsverarbeitung (Software): Programmiersprachen, Algorithmen, Datenstrukturen, Betriebssysteme, Datenbanken, etc. Technische Informatik Struktur, Aufbau und Funktionsweise von Computern (Hardware): Elektround Schalttechnik, Speicher, Prozessoren, Bussysteme, Schnittstellen und Peripherie Theoretische Informatik Theoretische und mathematische Modelle der Informationsverarbeitung: Entscheidbarkeit und Komplexität von Problemen, Eigenschaften von Berechnungsmodellen und Sprachen Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 17/715

18 Warum... Informatik für Ingenieure? 1 Grundlage und Ergebnis von Ingenieurtätigkeiten sind Informationen, welche in der Entwicklung, der Simulation und dem Test sowie im Betrieb von technischen Produkten verwendet werden. 2 Der Computer wird zunehmend zum Hauptarbeitsmittel von Ingenieuren, der unter dem Einsatz spezieller Software und Verfahren zur Lösung von Problemen im Ingenieurbereich eingesetzt wird. 3 Die Lösung konkreter Probleme in einem gegebenen Anwendungsszenario kann die Entwicklung spezieller Programme durch Informatiker in Kooperation mit Ingenieuren erfordern, wozu ein Austausch von Spezialisten aus beiden Bereichen möglich sein muss. Die Verarbeitung von Information und der Einsatz von Computern durch Ingenieure setzt ein grundlegendes Verständnis der informationstechnischen Grundlagen voraus.

19 Inhalte der Vorlesung Fokus auf Technische Informatik Grundlegendes Verständnis der Funktionsweise von Computern Praktische Informatik Grundprinzipien von Programmiersprachen Lösung von Problemen mittels des Computers Grundlagen der Software-Entwicklungen Betriebsysteme, Datenbanksysteme, Rechnernetze Angewandte Informatik Ingenieurtechnische Anwendungen und Problemstellungen Computergrafik als Grundlage von Computer Aided Design (CAD) Simulation Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 19/715

20 Typische Informatik-Anwendungen für Ingenieure Spezielle Anwendungen für Ingenieure Computer Aided Design (CAD) Computer Aided Manufacturing (CAM) Computer Aided Planning (CAP) Produktionsplanung und Steuerung (PPS) Produktdatenmanagement (PDM)... Allgemeine Anwendungen im Berufsalltag von Ingenieuren System zur Lösung mathematischer und statistischer Probleme Simulationssysteme Workflow-Systeme Enterprise Resource Planning (ERP)... Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 20/715

21 Warum... reicht es nicht, wenn ich als Ingenieur weiß, wie ich diese Systeme anwende? 1 Der effiziente Einsatz von Ingenieuranwendungen wird durch ein Verständnis der zugrunde liegenden Technologie erleichtert. 2 In Übergangsbereichen werden Spezialisten mit Fachwissen aus beiden Bereichen (Quereinsteiger oder Ausbildung im Übergangsbereich) benötigt, z.b. Entwicklung von Ingenieuranwendungen, Entwicklung von Produkten mit eingebetteten Systemen (Hard-, Software), Automatisierungstechnik, und Mechatronik. 3 Die Anwendungssysteme bieten Lösungen für allgemeine Problemstellungen, weshalb spezielle Verarbeitungsschritte über Erweiterungsschnittstellen ergänzt werden können.

22 Zusammenfassung: Überblick Informatik Ingenieurwissenschaften sind aus Sicht der Informatik Anwendungsbereich Informatik ist aus Sicht der Ingenieurwissenschaften Grundlage für aktuelle Lösungen Computer ist Hauptarbeitsmittel für Ingenieure (genau wie für Informatiker) Ingenieure verwenden von Informatikern entwickelte Anwendungssoftware Im folgenden: Wie entstand Informatik als Wissenschaft? Was sind die technischen Grundlagen der Datenverarbeitung? Wie werden Informationen zu verarbeitbaren Daten? Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 22/715

23 Geschichte der Informatik Entwicklung von Informationstechnik und Durchdringung des Alltags seit der 2. Hälfte des 20 Jahrhunderts explosionsartig Informationsgesellschaft Zunehmende Bedeutung und Wert von Informationen Schnelle Entwicklung von Technologien zur Verarbeitung und Kommunikation Historische Wurzeln der Informatik reichen zum Teil erheblich weiter Zurück Rechenautomaten programmierbare Maschinen Grundlagen aus Mathematik, Elektrotechnik, Linguistik, Kodierungs- und Informationstheorie Seit 50er Jahren: Relativ schnelle Folge von Rechnergenerationen Immer mehr Anwendungen der Informationstechnik in Wirtschaft und Privatbereich Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 23/715

24 Warum... Geschichte der Informatik? Mehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben. Die Vergangenheit ist ein Prolog Albert Einstein Unbekannt

25 Geschichte der Informatik bis 1950 vor 17. Jh v. Chr.: erste mechanische Rechenhilfen in Indien/China, z.b. bis heute benutzter Abakus auf Basis des Dezimalsystems Beschreibung von reproduzierbaren Rechenverfahren, z.b. größter gemeinsamer Teiler durch Euklid (300 v. Chr). Al-Chwarizmi (820) beschreibt Grundlagen von Rechenvorschriften, die nach ihm als Algorithmen bezeichnet werden (aus lateinischer Übersetzung Dixit Algorismi... - Al-Chwarizmi hat gesagt... ) Boethius (um 1500) und Adam Riese (ab 1518) veröffentlichen Vorschriften für das schriftliche Rechnen im Dezimalsystem Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 25/715

26 Geschichte der Informatik bis Jh. Erste mechanische Rechenmaschinen zur Erleichterung der durch technischen Fortschritt und zunehmende Industrialisierung häufigeren Rechenaufgaben Wilhelm Schickard (1623): Addition und Subtraktion für astronomische Berechnungen Pascal (1641): patentiert Pascaline als Rechenmaschine für Steuerwesen und Händler, welche ebenfalls Addieren und Subtrahieren kann Gottfried Wilhelm Leibniz (1673): Rechenmaschine für 4 Grundrechenarten Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 26/715

27 Geschichte der Informatik bis 1950 Abbildung: Blaise Pascals Pascaline Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 27/715

28 Geschichte der Informatik bis Gottfried Wilhelm Leibniz beschreibt erstmals Dualsystem (Binärsystem), welches im Gegensatz zum heute und damals gebräuchlichen Dezimalsystem (Ziffern 0 bis 9) als Ziffern nur 0 und 1 verwendet Ist heute Grundlage für elektronische Rechner (Speicher, Prozessoren), welche auf unterster Ebene nur die Schaltzustände an (1, Spannung liegt an) oder aus (0, Spannung liegt nicht an) kennen 1110 = x x x x x x 101 Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 28/715

29 Geschichte der Informatik bis Jh. Entwicklung mechanischer, programmgesteuerte Maschinen Programmsteuerung erlaubt durch Folge von Befehlen Durchführung komplexerer Berechnungen Joseph-Marie Jacquard (1805): Entwicklung eines lochkartengesteuerten Webstuhl Charles Babbage (1822): entwickelt Konzept für programmgesteuerte Analytical Engine mit Speicher, Steuereinheit und Verarbeitungseinheit, deren Konstruktion wegen hohem Aufwand jedoch nie vollendet wird Hollerith (1886): System zur Erfassung von Daten auf Lochkarten Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 29/715

30 Geschichte der Informatik bis 1950 Abbildung: Analytical Engine von Charles Babbage Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 30/715

31 Geschichte der Informatik bis George Boole entwickelt Boolsche Logik und Algebra, welche grundlegende logische Operatoren UND, ODER und NICHT umfasst Angewandt auf binäre Zustände (1=wahr, 0=falsch) bilden diese die Grundlage für Funktionsweise von heutigen Prozessoren Operationen wie Rechenoperationen im Binärsystem werden auf diese logischen Grundbausteine zurückgeführt Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 31/715

32 Geschichte der Informatik bis Alan Turing entwickelt basierend auf mathematischer Logik Automatenmodell (theoretische Turingmaschine) und schafft theoretische Grundlagen für Algorithmen Konzepte der Entscheidbarkeit, Komplexität und Berechenbarkeit von Problemen Begründet damit Theoretische Informatik und zeigt Grenzen der Informatik auf Unendliches, beschriebenes Band Schreib-/ Lese Kopf Programm- Tafel (Regeln) Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 32/715

33 Geschichte der Informatik bis Jh. Entwicklung erster elektronischer Rechenmaschinen Konrad Zuse (1941): mechanisch-elektronische, programmgesteuerte Rechenmaschine Z3 auf Basis des Dualsystems und erste High-Level-Programmiersprache Plankalkül ( ) Howard Hathaway Aiken (1944): erster ebenfalls relais-basierter Großrechner Mark I J. Presper Eckert und John W. Mauchly (1946): ENIAC erster voll elektronischer Rechner auf Basis von Röhrentechnologie Ab 1949: industrielle Produktion von elektronischen Rechnern Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 33/715

34 Geschichte der Informatik bis 1950 Abbildung: ENIAC - Electronic Numerical Integrator and Computer Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 34/715

35 Geschichte der Informatik bis John von Neumann entwirft grundlegende Von-Neumann-Architektur als bis heute aktuelle Referenz für Aufbau von speicherprogrammierbaren Rechnersystemen Prinzip des Stored Program, d.h. Programm ist mit Daten zusammen im Speicher des Rechners, erlaubt flexible Programmierung für verschiedene Anwendungen Zentrale Vearbeitungseinheit Rechenwerk Steuerwerk Bus Ein-/Ausgabe Speicherwerk Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 35/715

36 Entwicklung von Hardware seit 1950 Erste Rechnergeneration: Technologie auf Röhrenbasis Stapelverarbeitung Zweite Rechnergeneration: Transistoren Entwicklung erster Betriebssysteme und Compiler für Programmiersprachen Interaktivität durch Bildschirm-Terminals für Mainframes Dritte Rechnergeneration: Integrierte Schaltungen: Mikrochips Erste Kleinrechner und Netzwerke Vierte Rechnergeneration: Hochintegrierte Schaltungen: Mikroprozessoren Halbleiterspeicher Erste Super-Computer und Parallelverarbeitung Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 36/715

37 Entwicklung von Hardware seit 1950 Entwicklungen heute Zunehmender Integrationsgrad von Schaltungen Stetig wachsende Geschwindigkeit und Speicherkapazitäten Verbreitung von Multiprozessorsystemen Zunehmede Vernetzung Computer durchdringen alle Lebensbereiche Home Computer, PCs, Laptops, Handhelds Genutz für Anwendungsprogramme, Internet, Spiele, Unterhaltungsmedien Eingebettete Systeme Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 37/715

38 Entwicklung wichtiger Software/Technologien 1961 erstes Betriebssystem CTSS 1962 Erstes Computerspiel: Spacewar! 1968 Erste Grafische Benutzeroberfläche: NLS (on-line System) 1969 Unix als Mehrbenutzer-/Multitasking-Betriebssystem (freie Variante Linux 1991) 1969 Arpanet mit TCP/IP Grundlage für heutiges Internet 1970 Relationales Datenmodell bis heute Standard für Datenbanken 1985 Microsoft Windows 1.0 als grafische Oberfläche für MS/DOS wird schrittweise zum eigenständigen Betriebssystem ausgebaut (ca. ab Windows 95/Windows NT) 1990 Grundlagen des World Wide Web: HTML und erster Web Browser Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 38/715

39 Zusammenfassung: Geschichte der Informatik Wurzeln der Informatik Algorithmen Rechentechnik Mathematische Grundlagen reichen weit zurück Seit 1950 sprunghafte Entwicklung Aber: trotz stetiger Neuerungen Grundlagen heutiger Technik seit Jahrzehnten relativ stabil Informatik ist nicht so schnelllebig, wie man vielleicht denkt Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 39/715

40 Teil II Programmierung mit C++ (1) Grundlagen

41 Überblick 1 Grundlagen der Programmierung 2 Die Programmiersprachen C und C++ 3 Aufbau von C++ Programmen Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 41/715

42 Programmentwicklung: Problem Programm muss von Menschen geschrieben werden und auch für andere Menschen verständlich sein Programm muss vom Prozessor ohne Mehrdeutigkeiten und effizient ausgeführt werden können Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 42/715

43 Programmentwicklung: Lösung C++ #include <iostream> int main() { cout << Hallo! << endl; } Programmierer verfaßt Programm in sogenannter Hochsprache Machine Code Assembler FA CLI 33C0 XOR AX,AX 8ED0 MOV SS,AX BC007C MOV SP,7C00 8BF4 MOV SI,SP 50 PUSH AX 07 POP ES 50 PUSH AX 1F POP DS FB STI... Für die Ausführung durch den Prozessor wird das Programm auf eine dem Prozessor eigene Maschinensprache umgesetzt Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 43/715

44 Hochsprache vs. Maschinensprache Programm wird in sogenannten Hochsprachen geschrieben Für die Ausführung durch den Prozessor wird das Programm auf eine dem Prozessor eigene Maschinensprache umgesetzt Zwei Möglichkeiten: Compilierung von Programmen: spezielles Programm (Compiler) übersetzt Programm vor der Ausführung in Maschinensprache eines gegebenen Prozessors und testet dabei dessen syntaktische (aber nicht inhaltliche) Korrektheit Interpretation von Programmen: spezielles Programm (Interpreter) setzt Programmbefehle zur Ausführungszeit auf Prozessorbefehle um Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 44/715

45 Compiler vs. Interpreter /1 Compiler Allgemein schnellere Ausführung Ursprünglicher Code in der Regel nicht mehr rekonstruierbar Schutz des Quelltextes Breiter Einsatz für Programmierung von Betriebssystemen, Anwendungsprogrammen, etc. C, C++, Pascal/Delphi, FORTRAN und zahlreiche weitere Interpreter Langsamere Ausführung wegen Aufwand für Übersetzung Laufzeitfehler durch Syntaxfehler möglich Quelltext des Programmes bleibt sichtbar: kein Schutz, aber offen für beliebige Anpassungen durch dritte Aber: plattformunabhängige Programme (überall wo Interpreter läuft) Einsatz im Web, als Skriptsprachen zur Ausführungssteuerung, etc. Perl, PHP, JavaScript, Python und viele andere Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 45/715

46 Compiler vs. Interpreter /2 In letzten Jahren Mischformen populär, wie z.b. Java (Sun) und.net (Microsoft) Compiler übersetzt Programme in maschinennahen, aber plattformunabhängigen Code Laufzeitumgebung (JRE bei Java, CLR bei.net) übernimmt letzten Schritt der Umsetzung Zum Teil auch Compiler für interpretierte Sprachen vorhanden Technisch unproblematisch Dient der Steigerung der Performance und/oder dem Schutz der Quelltexte Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 46/715

47 Algorithmen Aber: was genau macht das Programm? Rückblick: Definition (Informatik) Informatik ist die Wissenschaft von der systematischen und automatischen Verarbeitung von Informationen, insbesondere mit Hilfe von Computern. Die systematische und automatische Verarbeitung wird durch den Begriff Algorithmus präzisiert. Definition (Algorithmus) Ein Algorithmus ist eine eindeutige Beschreibung eines in mehreren Schritten durchzuführenden Vorgangs zur Lösung einer bestimmten Klasse von Problemen. Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 47/715

48 Algorithmusbeispiel: Kuchen Backen Problem: Kuchen Backen Algoritmus: Backrezept Input: Eier, Mehl,... Output: Kuchen 1. Zutaten vermengen 2. Teig kneten 3. Teig in Backform 4. Backform in Backofen 5. Kuchen 1h backen 6. Kuchen entnehmen Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 48/715

49 Vom Problem zur Lösung Problemanalyse Algorithmus Programmierung Von der Entwicklung bis Zur Ausführung compilierter Programme Programm in Hochsprache Compilierung Programm in Maschinen- Sprache Ausführung Durch Prozessor Arbeitsschritt Ergebnis Prozess mit Ausgabe des Resultats Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 49/715

50 Die Programmiersprachen C und C++ C als Weiterentwicklung der Programmiersprache B Anfang 1971 für Unix entwickelt C++ als objektorientierte Erweiterung aus dem Jahr 1983 Andere populäre Sprachen wie Java, C#, Perl, PHP, etc. orientieren sich am Syntax von C/C++ C/C++ Heutzutage verbreitetste Sprachen zur Entwicklung von Anwendungsprogrammen und Betriebssystemen Compiler und Entwicklungsumgebungen existieren für alle Plattformen Beide Sprachen sind offiziell standardisiert, wobei Abweichungen vom Standard bei C++ häufiger (C-Programme deshalb besser portierbar zwischen verschiedenen Compilern oder Plattformen) Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 50/715

51 Eigenschaften von C und C++ C ist eine imperative Programmiersprache: ein Algorithmus ist dargestellt als Sequenz von hintereinander auszuführenden Befehlen C ist eine prozedurale Programmiersprache: zur Strukturierung des Quelltextes kann der Gesamtalgorithmus in inhaltlich zusammenhängende und an verschiedenen Stellen (durch Aufruf) verwendbare Prozeduren (in C Funktionen) zerlegt werden C++ ist eine objekt-orientierte Programmiersprache: zur weiteren Strukturierung können Daten von Objekten (Anwendungsobjekte wie Zeichenketten, Postadressen etc., aber auch z.b. Fenster der GUI oder Programmkomponenten) sowie die zugehörige Funktionalität als Methoden (objekt-spezifische Funktionen) in Klassen zusammengefaßt werden Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 51/715

52 Verhältnis/Unterschiede von C und C++ C++ konzipiert als kompatible Erweiterung (Obermenge) von C Eigentlich sollte jedes C-Programm auch von einem C++-Compiler übersetzt werden können Im Detail jedoch problematisch, z.b. Variablennamen in C-Programmen können Schüsselwörter in C++ sein, z.b. class, new, etc. Typkonvertierung wegen Objekt-orientierung unterschiedlich Standards entwickeln sich parallel weiter, aber gegenseitige Berücksichtigung C++ bietet alternative, objekt-orientierte Bibliotheken für Standardaufgaben, z.b. stdio vs. iostream Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 52/715

53 MATLAB Spezialsoftware für numerische und symbolische Mathematik Umfasst eigene Programmiersprache Bedeutung in zahlreichen ingenieurtechnischen Anwendungsfeldern und entsprechend auch in verschiedenen Studiengängen Erweiterung Simulink häufig Grundlage für Simulation in Ingenieuranwendungen MATLAB in dieser Vorlesung/Übung Kurze Hinweise im Handout bzgl. Syntax An einigen Stellen verwendet zu Illustrationszwecken MATLAB-Programmierung nicht Teil der Prüfung Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 53/715

54 MATLAB Entwicklungsumgebung

55 MATLAB als Programmiersprache Vollständige Programmiersprache Stark ausgerichtet auf Arbeit mit Feldern und Matrizen Zahlreiche vordefinierte Bibliotheken für mathematische Funktionen und Nutzerinteraktion Einfaches Typsystem, das, wo immer möglich, Typen automatisch impliziert Objektorientierung unterstützt ähnlich zu C++ Kopplung mit anderen Programmiersprachen möglich Intertpretierte Skriptsprache, aber Kompilierung möglich Hello World-Programm: disp( Hello, World! );

56 Aufbau von Programmen/Dateien Typen von Dateien Header-Dateien (.h): enthalten Deklarationen (auch Signatur, Prototyp, Rumpf) von Funktionen, Variablen, Konstanten und in C++ auch Klassendefinitionen eines Programms oder einer Bibliothek, welche in anderen Programm(datei)en genutzt werden können, in der Regel jedoch nicht deren Definition (Implementierung) /* Deklaration einer Funktion */ int sum(int x, int y); Code-Dateien (auch Source- oder Quelldateien,.cpp,.C,.c, etc.): enthalten die Definition von Funktionen (oder Methoden in C++) und ggf. die spezielle Funktion main als Einstiegspunkt für ein ausführbares Programm /* Definition einer Funktion */ int sum(int x, int y) { return x+y }; Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 56/715

57 Aufbau von Programmen/Dateien /2 Programme können aus zahlreichen Code- und Header-Dateien bestehen Header-Dateien als Schnittstelle zwischen verschiedenen Code Dateien: in einer inkludierten Datei deklarierte Funktionen können benutzt werden, sind aber in einer anderen Code-Datei implementiert Code-Dateien werden zuerst separat übersetzt Ergebnis: Objektdateien.obj oder.o Linker: statische Verbindung verschiedener Objektdateien zu einer Programmbibliothek oder zu einem ausführbaren Programm Standardbibliotheken der Programmiersprache oder des Betriebssystems sowie Teile komplexer Programme werden meist dynamisch (zur Laufzeit) gelinkt/geladen Windows: Dynamic Load Libraries (DLL) Unix: zum Beispiel Shared Objects (.so) Vermeidet Aufblähung ausführbarer Programme und ständige Neuübersetzung immer wieder verwendeter Programmteile Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 57/715

58 C++ Übersetzungsprozeß gif.h stdio.h math.h prog.cpp gif.cpp prog.obj Compiler gif.obj Als Teil des Betriebsystems oder der Laufzeitumgebung der Programmiersprache implementiert und vorübersetzt Linker prog.exe msvcrtxxx.dlll system32.dll Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 58/715

59 Struktur der Hauptdatei Im folgenden Fokus auf einfache Programme bestehend aus einer Hauptdatei: #include <...> /* Einzubettende Programmbibliotheken */ #define... /* Definitionen und Makros */ /* Globale Variablen */ int i; char c[] =...; /* Funktionen */ int f1(int a, int b) {... }; void f2() {...}; /* Hauptprogramm */ int main() {... } Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 59/715

60 Der Präprozessor Mit # beginnende Zeilen sind Anweisungen für den Präprozessor (Teilprogramm des Compilers) zur Durchführung einfacher Transformationen des Quelltextes vor der eigentlichen Übersetzung, z.b. #include-statements: Einbettung anderer Quelltextdateien (vor allem Header-Dateien von Programmteilen oder Standardbibliotheken) #include <...> /* Datei im INCLUDE-Pfad */ #include... /* relativer Pfad */ #define-statements: Festlegung von Werten für Ausdrücke, die z.b. im Quelltext in der Folge ersetzt werden können oder für die Steuerung des Präprozessors verwendet werden können #define MAXVERSUCHE 100 #define prompt Eingabe: Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 60/715

61 Programmblöcke Inhaltlich zusammengehörige Befehlsfolgen werden durch geschweifte Klammern {... } zu Programmblöcken zusammengefaßt Verwendung zum Beispiel für Definition von Funktionen int f(int x, int y) {...}; Steueranweisungen wie Schleifen while (<bedingung>) {...}; Innerhalb eines Programmblocks definierte Variablen, können nur dort verwendet werden Verwendung geschweifter Klammern auch zur Definition zusammengesetzter Datentypen ( z.b. struct, enum, union) sowie zur Definition von Klassen in C++ Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 61/715

62 Sequenzen Sequenzen von Befehlen (entsprechend imperativem Programmierparadigma) werden durch Verkettung mit Semikolon ; gebildet Dabei können einzelne Befehle Definition/Deklaration von Variablen Steueranweisungen (Schleifen, Bedingungen, Fehlerbehandlung, etc.) Ausdrücke (haben immer ein Ergebnis und einen Ergebnistyp) sein Literale Werte Variablen Funktionsaufrufe Komplexe Ausdrücke: Verknüpfung von Teilausdrücken durch Operatoren Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 62/715

63 Beispiel: Mittelwert (C++) #include <iostream> using namespace std; float mittelwert(float a, float b) { return (a+b)/2; } int main() { float x,y,m; cout << x = ; cin >> x; cout << y = ; cin >> y; m = mittelwert(x,y); cout << Mittelwert = << m << endl; return 0; } Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 63/715

64 MATLAB Beispiel: Mittelwert Datei mittelwert.m function m = mittelwert(a,b) m = (a+b)/2; end Datei mittelwertmain.m x = input( x = ); y = input( y = ); z = mittelwert(x,y); fprintf( Mittelwert: %f \n,z);

65 Variablendeklarationen Grundlegender Syntax: <datentyp> <variablennamen> [, <variablenname>...]; Datentyp ist: Basisdatentyp wie int, float, etc. (siehe Abschnitt Kodierung) Feld von Variablen eines Datentyps ( ) Zusammengesetzter, nutzerdefinierter Datentyp ( ) Nutzerdefinierter Objekttyp (C++ ) Zeiger auf Adresse eines Objektes oder Wertes von Datentyp ( ) Erlaubt Deklaration mehrerer Variablen eines Typs in einem Statement, z.b. int x, y, z; Erlaubt Zuweisung initialer Werte, z.b. int solution=42; Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 65/715

66 Ganzahlige C++ Datentypen Wertebereich unterschiedlich für verschiedene Plattformen, hier Win32 Ausführlicher im Abschnitt Kodierung ( ) Datentyp Speicherplatz Wertebereich char 1 Byte signed char 1 Byte short 2 Byte unsigned short 2 Byte int 4 Byte unsigned int 4 Byte 0... FFFFFFFF 16 long 8 Byte... unsigned long 8 Byte... Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 66/715

67 Gleitkommazahlen in C++ In C++ laut Standard zwei grundlegende Typen für Gleitkommazahlen Datentyp Speicherplatz Charakteristik Mantisse float 32 Bit 8 23 double 64 Bit Außerdem long double mit 80 Bit Ausführlicher im Abschnitt Kodierung ( ) Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 67/715

68 Zeichen und Zeichenketten in C++ /1 Zeichen werden in C++ durch Datentyp char abgebildet Mögliche Zustände werden für erweiterten ASCII Code benutzt (Kodierung ) Wird entsprechend Programmkontext als Zeichen oder Wert interpretiert Zeichenketten fester Länge in C durch Feld (Array ) mit bestimmter Größe, z.b. char login[9]; für Zeichenkette der Länge 8 und 1 Byte Ende-Markierung Zeichenketten beliebiger Länge in C durch Zeiger (Pointer ) auf Sequenz von Zeichen im Speicher mit Endemarkierung char* message = Hello, World! ; Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 68/715

69 Zeichen und Zeichenketten in C++ /2 Zeichenketten beliebiger Länge in C++ durch spezielle Klasse string (in der Vorlesung und Übung verwendet) #include <string> using namespace std; int main() { string m1 = Hello ; string m2 = World! ; string message = m1 + m2;... } Klasse bietet zusätzliche Funktionalität für Operatoren und Funktionen auf Zeichenketten an Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 69/715

70 Ausdrücke Zusammengesetzt aus Variablen, literalen Werten und Funktionsaufrufen Verbunden durch Operatoren Beispiele: x=1; /* Zuweisung eines literalen Wertes */ x++; /* Inkrementierung (postfix) */ x=x+1; /* Zuweisung und arithemtische Verknüpfung */ x=(x==4); /* Zuweisung und geklammerter Vergleich */ x=quadrat(x+1); /* Zuweisung und Funktionsaufruf */ x & 1; /* Logische Operation, Ergebnis ignoriert */ Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 70/715

71 Ausdrücke /2 Können durch Kombination und Klammerung beliebig komplex werden VORSICHT: Lesbarkeit! VORSICHT: Typ-Kompatibilität der Operanden Implizite Konvertierung manchmal unproblematisch, z.b. int float Teilweise Verlust von Information, z.b. float int durch Abschneiden der Nachkommastellen Nur zum Teil Fehlermeldungen oder Warnungen bei inkompatiblen Typen Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 71/715

72 Ausdrücke: Arithmetische Operatoren Operator Beispiel Bedeutung + x+y Addition - x-y Subtraktion * x*y Multiplikation / x/y Division % x%y Rest bei ganzzahliger Division ++ y=x++ Inkrementierung (postfix) x um eins erhöht y hat alten Wert von x y=++x Inkrementierung (prefix) x um eins erhöht y hat neuen Wert von x x Dekrementierung entsprechend x als pre- und postfix anwendbar Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 72/715

73 Ausdrücke: Zuweisungsoperatoren Operator Beispiel Bedeutung = x=7 Standardzuweisungsoperator += x+=7 Selbstzuweisung mit Addition entspricht x=x+7 -= x-=7 Selbstzuweisung mit Subtraktion *= x*=7 Selbstzuweisung mit Multiplikation /= x/=7 Selbstzuweisung mit Division %= x%=7 Selbstzuweisung des Divisionsrestes Ergebnis einer normalen oder prefix-zuweisung ist der neue Wert des linken Operanden Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 73/715

74 Ausdrücke: Vergleichsoperatoren Da in C lange ein boolean-datentyp fehlte, ist Ergebnis ganzzahliger Wert 1, wenn Vergleich erfolgreich (TRUE) 0, andernfalls (FALSE) Operator Beispiel Bedeutung == x==y Test auf Wertegleichheit!= x!=y Test auf Ungleichheit > x>y... größer als... < x<y... kleiner als... >= x>=y... größer als oder gleich... <= x<=y... kleiner als oder gleich Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 74/715

75 Ausdrücke: Logische Operatoren /1 Zwei Sichtweisen für logische Operationen 1 Bitweises Verknüpfen für Bytes 2 Logische Verknüpfungen von 1 (TRUE) und 0 (FALSE) kann auf 1. zurückgeführt werden Bei Operatoren für logische Verknüpfung: Abbruch (short cut) der Auswertung, wenn möglich Bei AND: Abbruch, wenn erste Bedingung FALSE, da Ergebnis nur FALSE sein kann Bei OR: Abbruch, wenn erste Bedingung TRUE, da Ergebnis nur TRUE sein kann Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 75/715

76 Ausdrücke: Logische Operatoren /2 Operator Beispiel Bedeutung!!x Logische Negation (NOT) && x&&y Logische Konjunktion (AND) x y Logische Disjunktion (OR) & x&y Bitweises AND x y Bitweises OR x y Bitweises XOR x Bitweise Negation Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 76/715

77 Ausdrücke: Sonstige Operatoren Zur Arbeit mit speziellen Datentypen wie zum Beispiel Feldern, Zeigern, Strukturen und Objekten ( ) Operator Beispiel Bedeutung [] a[7] Zugriff auf Position in Feld. window.size Zugriff auf Komponente einer Struktur oder eines Objektes * *i Dereferenzierung eines Zeigers & &i Bildung der Referenz (Zeiger) -> window->size Zugriff auf Komponente über Zeiger () (int)myfloat Explizite Typumwandlung (Casting) new w = new Window() Erzeugen eines neuen Objektes Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 77/715

78 Ein-/Ausgabe C++-style C++ definiert für Ein-/Ausgabe eigene Bibliothek iostream.h Verwendet außerdem Namensräume (iostream im Standardnamensraum std, d.h. für Verwendung #include <iostream> using namespace std; Basiert auf Datenströmen (Streams) Eingehende Datenströme: Input Streams Ausgehende Datenströme: Output Streams und deren Auswertung bzw. Manipulation Beliebige Datenströme sowie deren Operatoren und Funktionen sind als Klassen definiert Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 78/715

79 Ein-/Ausgabe C++-style: cin und cout iostream definiert Standardobjekte der Stream-Klassen für Standardeingabe (Tastatur) und Standardausgabe (Konsole) cout - Standardausgabe cin - Standardeingabe Arbeit mit Datenströmen vor allem über Shift-Operatoren, d.h. Verschieben von Daten auf oder aus Strömen >> - Verschieben von Daten aus dem Strom (Lesen) << - Verschieben von Daten auf den Strom (Schreiben) Ergebnis ist der Stream selbst, d.h. Operatoren können verkettet werden Beispiel cout << Eingabe << endl << x: ; cin >> x; Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 79/715

80 Ein-/Ausgabe C++-style: Stream-Manipulatoren Kontrolle der Streams bzgl. Darstellung von Werten und Formatierung über definierte Konstanten (Stream-Manipulatoren), z.b. Manipulator Bedeutung dec Integer als Dezimalzahl hex Integer als Hexadezimal fixed Float als Festkommazahl scientific Float als Halblogarithmisch endl Zeilenende flush Sofortige Buffer-Entleerung..... Beispiel: cout << Alter << dec << alter << endl; Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 80/715

81 Kommentare Natürlichsprachliche Beschreibung/Erklärung des Quelltextes oft hilfreich und erforderlich Werden vom Compiler bei der Übersetzung vollständig ignoriert /* Kommentar, gerne auch mal über mehrere Textzeilen */ x=x+1; // Kommentar bis zum Zeilenende Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 81/715

82 Zusammenfassung: Aufbau von Programmen Programme können aus zahlreichen Dateien bestehen Header-Dateien als Definition der Schnittstelle von Bibliotheken aus Funktionen, Variablen und Konstanten Code-Dateien enthalten Implementierung von Funtkionen aus Bibliotheken und/oder main-funktion Programmblöcke, z.b. Implementierung einer Funktionen, bestehenaus Sequenz von Befehlen Befehle sind Deklarationen, Steueranweisungen oder Ausdrücke Einfache Ausdrücke sind Funktionsaufrufe, Variablen oder literale Werte Komplexe Ausdrücke können durch Verknüpfung von Ausdrücken über Operatoren gebildet werden Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 82/715

83 Teil III Programmierung mit C++ (2) Steueranweisungen

84 Überblick 1 Bedingte Ausführung 2 Programmschleifen 3 Ausnahmebehandlung Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 84/715

85 Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken) nur wenn eine bestimmte Bedingung erfüllt ist Selektion, Verzweigung Programmschleifen: mehrfache Wiederholung von Programmteilen so lange oder bis eine bestimmte Bedingung erfüllt bzw. nicht mehr erfüllt ist Iteration, Schleife Fehlerbehandlung: Ausführung spezieller Programmteile im Fall eines Fehlers Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 85/715

86 Einfache Bedingte Ausführung if-anweisung gefolgt von geklammerter Bedingung als Einführung für einen einzelnen Befehl oder einen Programmblock if (<Bedingung>) <Befehl>; if (<Bedingung>) { <Befehlssequenz> }; Bedingung kann über logische Operatoren verknüpft werden und evaluiert entsprechend zu 0 (FALSE) oder andernfalls TRUE ( logische Operatoren) Ausführung entsprechend Ergebnis: TRUE: Ausführung des von if eingeleiteten Befehls oder Programmblocks FALSE: Programmteil der zum if-block gehört wird nicht ausgeführt und Ausführung danach fortgesetzt Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 86/715

87 Einfache Bedingte Ausführung: Beispiel (C++) #include <iostream> using namespace std; int main() { int x; cout << x = ; cin >> x; if (x >= 0) cout << Zahl ist positiv oder gleich 0. << endl; if (x == 42) { cout << Die Zahl ist 42. << endl; cout << Das ist hexadezimal << hex << 42 << endl; }; return 0; } Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 87/715

88 MATLAB Beispiel: Bedingte Ausführung x = input( x = ); if (x>=0) fprintf( Zahl ist positiv oder gleich 0. \n ); end if (x==42) fprintf( Die Zahl ist 42. \n ); fprintf( Das ist hexadezimal %s. \n, dec2hex(x)); end

89 Darstellung von Programmabläufen Zum Entwurf und zur Illustration von Algorithmen verschiedene formale und informale Beschreibungsmittel: Pseudocode: informale, textuelle Darstellung des Algorithmus zum Teil mit Mitteln der natürlichen Sprache Struktogramme: formale Darstellung von Programmabläufen als Blockdiagramm Programmablaufpläne (PAP): Beschreibung des Programmablaufs durch spezielle Notation für generische Anweisungsklassen Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 89/715

90 Einfache Bedingte Ausführung: Pseudocode Program Zahlentest Input: - Output: - begin Eingabe von x if x ist größer als 0 Ausgabe Zahl ist positiv oder gleich 0. endif if x ist 42 Ausgabe Die Zahl ist 42. Ausgabe der Zahl als Hexdadezimalzahl endif end Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 90/715

91 Einfache Bedingte Ausführung: Struktogramm START Test42 Eingabe: x x >=0? ja Ausgabe Text % x = 42? ja Ausgabe Text Ausgabe Hex STOP % nein nein Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 91/715

92 Einfache Bedingte Ausführung: PAP START Eingabe: x x >= 0? ja nein Ausgabe Text x = 42? ja nein Ausgabe Text Ausgabe Hex STOP Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 92/715

93 Bedingte Ausführung mit Alternative Erweiterter Syntax der if-anweisung um else-klausel: Ausführung eines alternativen Programmteils, falls Bedingung nicht erfüllt if (<Bedingung>) <Befehl oder Programmblock> else <Befehl oder Programmblock>; In Abhängigkeit von der Bedingung wird nur ein Zweig der Anweisung ausgeführt (Verzweigung) Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 93/715

94 Bedingte Ausführung mit Alternative: Beispiel (C++) #include <iostream> #include <cmath> using namespace std; int main() { float x; cout << x = ; cin >> x; if (x >= 0) { float w = sqrt(x); cout << Wurzel ist << w << endl; } else cout << Wurzelberechnung unmöglich! << endl; return 0; } Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 94/715

95 MATLAB Beispiel: Bedingte Ausführung mit Alternative x = input( x = ); if (x>=0) w = sqrt(x); fprintf( Wurzel ist %f \n,w); else fprintf( Wurzelberechnung unmöglich! \n ); end

96 Bedingte Ausführung mit Alternative: Struktogramm START Wurzel Eingabe: x x >=0? ja w:=sqrt(x) Ausgabe w STOP nein Ausgabe Text Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 96/715

97 Bedingte Ausführung mit Alternative: PAP START Eingabe: x x >= 0? ja nein w := sqrt(x) Ausgabe Text Ausgabe w STOP Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 97/715

98 Schachtelung von if-anweisungen Verzweigungen können beliebig geschachtelt werden if (alter >= 0) if (alter < 120) cout << Alter korrekt... << endl; Können durch Zusammenfassen der Bedingungen oft vereinfacht werden: Sequenz von if-bedingungen entspricht logischer Konjunktion if (alter >= 0 && alter < 120) cout << Alter korrekt... << endl; Aber nicht immer: Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 98/715

99 Schachtelung von if-anweisungen /2 Schachtelung erlaubt separate Behandlung der logischen Alternativen im else-zweig if (alter >= 0) if (alter < 120) cout << Alter korrekt... << endl; else cout << Alter zu hoch! << endl; else cout << Alter zu gering! << endl; Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 99/715

100 Sequenz von if/else if-anweisungen Sequenz von if/else if-anweisungen erlaubt Mehrfachverzweigung if (alter < 1) cout << Baby. << endl; else if (alter < 4) cout << Kleinkind. << endl; else if (alter < 6) cout << Vorschulkind. << endl; else if (alter < 18) cout << Schulkind. << endl; else cout << Führerschein. << endl; Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 100/715

101 MATLAB Beispiel: Mehrfachverzweigung alter = input( Alter = ); if (alter < 1) disp( Baby. ); elseif (alter < 4) disp( Kleinkind. ); elseif (alter < 6) disp( Vorschulkind. ); elseif (alter < 18) disp( Schulkind. ); else disp( Führerschein. ); end

102 Mehrfachverzweigung mit switch switch-steueranweisung und case-sprungmarken setzen einfache Sprungtabelle um switch(<variable>) { case <Wert1> : <Befehlssequenz>; case <Wert2> : <Befehlssequenz>; case <Wert3> : <Befehlssequenz>;... default: <Befehlssequenz>; } switch-variable muss ordinalen Wert haben, d.h. Integer (inklusive char) case-marken sind Sprungmarken, d.h. Ausführung ab da bis zum Ende des switch-statements sollen nur einzelne Fälle ausgeführt werden, muss der switch-block mit break verlassen werden Falls kein Wert in der Liste, wird zur optionalen default-marke gesprungen Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 102/715

103 Mehrfachverzweigung mit switch: Beispiel /1 #include <iostream> #define PI using namespace std; int main() { int auswahl; float radius,durchmesser,umfang,flaeche; cout << Radius des Kreises = ; cin >> radius; cout << 1) Berechnung des Durchmessers << endl; cout << 2) Berechnung des Umfangs << endl; cout << 3) Berechnung der Fläche << endl; cout << Auswahl: ; cin >> auswahl;... Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 103/715

104 Mehrfachverzweigung mit switch: Beispiel /2 }... switch(auswahl) { case 1: durchmesser = 2*radius; cout << Durchmesser ist: << durchmesser << endl; break; case 2: umfang = 2*radius*PI; cout << Umfang ist: << umfang << endl; break; case 3: flaeche = radius*radius*pi; cout << Fläche ist: << flaeche << endl; break; default: cout << Keine Berechnung durchgeführt. << endl; } return 0; Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 104/715

105 Mehrfachverzweigung mit switch: Beispiel /3 Vorsicht bei fehlenden break-steueranweisungen: switch(auswahl) { case 1: cout << Durchmesser ist: << 2*radius; << endl; case 2: cout << Umfang ist: << 2*radius*PI << endl; case 3: cout << Fläche ist: << radius*radius*pi << endl; } Radius des Kreises = 23 1) Berechnung des Durchmessers 2) Berechnung des Umfangs 3) Berechnung der Fläche Auswahl: 1 Durchmesser ist: Umfang ist: Fläche ist: Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 105/715

106 MATLAB Beispiel: Mehrfachverzweigung mit switch radius = input( Radius des Kreises = ); disp( 1) Berechnung des Durchmessers ); disp( 2) Berechnung des Umfangs ); disp( 3) Berechnung der Fläche ); auswahl = input( Auswahl: ); switch auswahl case {1} durchmesser = 2*radius; fprintf( Durchmesser ist: %f \n, durchmesser); case {2} umfang = 2*radius*pi; fprintf( Umfang ist: %f \n, umfang); case {3} flaeche = radius*radius*pi; fprintf( Fläche ist: %f \n, flaeche); otherwise fprintf( Keine Berechnung durchgeführt. \n ); end

107 Programmschleifen Auch Iteration oder Zyklen: Wiederholung von Programmteilen (Blöcken oder einzelnen Befehlen) entsprechend bestimmten Bedingungen for-schleife: Zählschleife zum Durchlaufen von Wertebereichen für eine Variable while-schleife: kopfgesteuerte Schleife mit beliebiger Bedingung für Wiederholung, die vor dem Porgrammteil ausgwertet wird do-while-schleife: fußgesteuerte Schleife mit beliebiger Bedingung für Wiederholung, die am Ende des Porgrammteils ausgwertet wird Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 107/715

108 for-schleife Zählschleife for ([<Initialisierung>];[<Bedingung>];[<Schrittanweisung>]) <Befehl oder Programmblock> Initialisierung: Deklaration (oder kommaseparierte Folge von Deklarationen) und Defintion der Laufvariable(n), die einmalig vor Beginn der Iteration ausgeführt wird Bedingung: logischer Ausdruck, der am Anfang jeden Iterationsschritts erfüllt sein muss Schrittanweisung: Modifikation der Laufvariablen am Ende jeden Iterationsschrittes, bei mehreren auch kommaseparierte Liste von Modifikationen Alle drei Teile sind optional Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 108/715

109 for-schleife: Pseudocode... for Beschreibung des Bereichs Auszuführende Anweisungen endfor... Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 109/715

110 for-schleife: PAP Initialisierung Bedingung ja nein Anweisungen Schrittanweisung Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 110/715

111 for-schleife: Beispiel (C++) #include <iostream> using namespace std; int main() { int max; cout << Maximalwert = ; cin >> max; int sum = 0; for (int i=1; i <= max; i++) { sum = sum + i; cout << Summe der natürlichen Zahlen bis << i << : << sum << endl; } return 0; } Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 111/715

112 MATLAB Beispiel: for-schleife m = input( Maximalwert = ); s = 0; for i=1:m s = s + i; end fprintf( Summe der natuerlichen Zahlen bis %f ist%f \n,m,s); for-schleifen auf Feldern oder Wertefolgen können oft durch Matlab-Funktionen auf Feldern ersetzt werden: x = 1:m; fprintf( Summe bis %f ist%f \n,m,sum(x));

113 for-schleife: Beispiele möglicher Schleifenköpfe Weitere Beispiele for (int i=1; i <= 10; i++)... // for (int i=10; i > 0; i )... // for (int i=1; i <= 256; i*=2)... // for (int i=1, int j=10; i < j; i++,j )... // (1,10) (2,9)... (5,6) for (;;)... // Endlosschleife for (;!gefunden;)... // entspricht while(!gefunden)... Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 113/715

114 while-schleife Kopfgesteuerte Schleife while (<Bedingung>) <Befehl oder Programmblock> Bedingung wird jeweils vor Ausführung des folgenden Befehls/Programmblocks ausgewertet Abweisende Schleife: wird die Bedingung vor der ersten Ausführung nicht erfüllt, wird der Schleifentext gar nicht ausgeführt Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 114/715

115 while-schleife: Beispiel (C++) #include <iostream> using namespace std; int main() { int min,max; int sum = 0; cout << Kleinere Zahl = ; cin >> min; cout << Größere Zahl = ; cin >> max; cout << Summe aller Zahlen von << min << bis << max << ist ; while(min <= max) { sum = sum + min; min++; } cout << sum <<. << endl; return 0; } Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 115/715

116 while-schleife: Pseudocode... while Bedingung Auszuführende Anweisungen endwhile... Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 116/715

117 while-schleife: PAP Bedingung ja nein Anweisungen Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 117/715

118 while-schleife: Struktogramm solange Bedingung wahr Anweisunge(n) Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 118/715

119 do-while-schleife Fußgesteuerte Schleife do <Befehl oder Programmblock> while (<Bedingung>); Bedingung wird jeweils nach Ausführung des Schleifenteils überprüft Nicht-abweisende Schleife: der Schleifentext wird mindestens immer einmal ausgeführt, bevor die Bedingung am Ende überprüft wird Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 119/715

120 do-while-schleife: Beispiel (C++) #include <iostream> using namespace std; int main() { int summand; int sum = 0; do { cout << Aktuelle Zwischensumme : << sum << endl; cout << Nächster Summand (0 für Abbruch) = ; cin >> summand; sum = sum + summand; }while (summand!= 0); return 0; } Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 120/715

Grundlagen der Informatik für Wissenschaftliche Anwendungen

Grundlagen der Informatik für Wissenschaftliche Anwendungen Grundlagen der Informatik für Wissenschaftliche Anwendungen Dr.-Ing. Eike Schallehn OvG Universität Magdeburg Fakultät für Informatik Institut für Technische und Betriebliche Informationssysteme 2017 Organisatorisches

Mehr

Einführung. Rechnerarchitekturen Entwicklung und Ausführung von Programmen Betriebssysteme

Einführung. Rechnerarchitekturen Entwicklung und Ausführung von Programmen Betriebssysteme Teil I Einführung Überblick 1 2 Geschichte der Informatik 3 Technische Grundlagen der Informatik Rechnerarchitekturen Entwicklung und Ausführung von Programmen Betriebssysteme 4 Daten, Informationen, Kodierung

Mehr

Teil IV. Grundlagen der Programmierung

Teil IV. Grundlagen der Programmierung Teil IV Grundlagen der Programmierung Überblick 1 Einleitung zu C und C++ Aufbau von Programmen/Dateien Steueranweisungen Funktionen Mehr zu Datentypen: Felder, Zeiger und Strukturen Arbeit mit Dateien

Mehr

Geschichte der Informatik

Geschichte der Informatik Entwicklung von Informationstechnik und Durchdringung des Alltags seit der 2. Hälfte des 20 Jahrhunderts explosionsartig Informationsgesellschaft Zunehmende Bedeutung und Wert von Informationen Schnelle

Mehr

Überblick. 1 Was ist Informatik? 2 Bereiche der Informatik. 3 Geschichte der Informatik

Überblick. 1 Was ist Informatik? 2 Bereiche der Informatik. 3 Geschichte der Informatik Teil I Einführung Überblick 1 Was ist Informatik? 2 Bereiche der Informatik 3 Geschichte der Informatik Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 15/101 Was ist Informatik? Informatik=?

Mehr

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32 Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)

Mehr

Aufbau von Programmen/Dateien

Aufbau von Programmen/Dateien Aufbau von Programmen/Dateien Typen von Dateien Header-Dateien (.h): enthalten Deklarationen (auch Signatur, Prototyp, Rumpf) von Funktionen, Variablen, Konstanten und in C++ auch Klassendefinitionen eines

Mehr

Grundlagen der Informatik für Ingenieure

Grundlagen der Informatik für Ingenieure Grundlagen der Informatik für Ingenieure Dr.-Ing. Eike Schallehn OvG Universität Magdeburg Fakultät für Informatik Institut für Technische und Betriebliche Informationssysteme 2013/2014 Eike Schallehn,

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

Teil IV. Grundlagen der Programmierung

Teil IV. Grundlagen der Programmierung Teil IV Grundlagen der Programmierung Überblick 1 Die Programmiersprachen C/C++ Einleitung zu C und C++ Aufbau von Programmen/Dateien Steueranweisungen Funktionen Mehr zu Datentypen: Felder, Zeiger und

Mehr

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

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Motivation und Überblick

Motivation und Überblick Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf der Ebene digitaler Schaltungen Programmierung auf Maschinenebene und relativ

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable 1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem

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

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue Java - Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Anweisung int zahl; zahl = 2; zahl = zahl * 10; int zahl; ; Jede Anweisung endet mit einem

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es 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

Mehr

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

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Werkzeuge zur Programmentwicklung

Werkzeuge zur Programmentwicklung Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010 Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den

Mehr

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

Mehr

Funktionales C++ zum Ersten

Funktionales C++ zum Ersten Funktionales C++ zum Ersten WiMa-Praktikum 1, Teil C++, Tag 1 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 26.08.08

Mehr

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Kapitel 3. Grunddatentypen, Ausdrücke und Variable Kapitel 3 Grunddatentypen, Ausdrücke und Variable Grunddatentypen, Ausdrücke und Variable 1 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen

Mehr

Grundlagen von C# - 1

Grundlagen von C# - 1 Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

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

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1 Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral

Mehr

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

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

Informatik I - Einstiegskurs

Informatik I - Einstiegskurs Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

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

Klausur: 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

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

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

Ein- und Ausgabe (I/O)

Ein- und Ausgabe (I/O) Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 14 Motivation Computer arbeiten

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

4.Grundsätzliche Programmentwicklungsmethoden

4.Grundsätzliche Programmentwicklungsmethoden 4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Grundlagen der Informatik 5. Kontrollstrukturen II

Grundlagen der Informatik 5. Kontrollstrukturen II 5. Kontrollstrukturen II Schleifen Sprünge Grundlagen der Informatik (Alex Rempel) 1 Schleifen Schleifen allgemein und in C++ Schleifen (Loops) ermöglichen die Realisierung sich wiederholender Aufgaben

Mehr

Grundlagen der Programmentwicklung

Grundlagen der Programmentwicklung Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie

Mehr

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

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache

Mehr

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung Clientseitige Web-Programmierung mit JavaScript Version 1.1 3.5.2010 1 aktuelles 2 clientseitige Web-Programmierung verschiedene Ansätze JavaScript Java Applet Adobe Flash Microsoft Silverlight RIA: rich

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Operatoren (1) Operatoren (2)

Operatoren (1) Operatoren (2) Operatoren (1) Binäre Operatoren + - * / % < = > & ^ > && Addition Subtraktion Multiplikation Division Divisionsrest Vergl. auf kleiner Vergl. auf kleiner oder gleich Vergl. auf gleich Vergl.

Mehr

Grundlagen der Informatik 2. Operatoren

Grundlagen der Informatik 2. Operatoren 2. Operatoren Referenzen Typumwandlungen Vorrangregeln Kommentare Grundlagen der Informatik (Alex Rempel) 1 Ausdruck (z.b. "x = 34 + y;") Folge von Operatoren und Operanden Operatoren Arithmetische Operatoren

Mehr

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Algorithmen & Programmierung. Ausdrücke & Operatoren (1) Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck

Mehr

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

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Werner Achte rt DATA BECKER

Werner Achte rt DATA BECKER Werner Achte rt. DATA BECKER Inhaltsverzeichnis 1. Einführung 21 1.1 Entwurf von Anwendungssystemen 23 1.2 Entwicklung eines Programms 25 1.3 Objektorientierte Programmierung 29 1.4 Darstellung objektorientierter

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

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

String-Konkatenation

String-Konkatenation YOU ARE HERE Ausdrücke und Anweisungen Einführung Objektorientierte Modellierung Java-Sprachkonstrukte Pakete und Zugriffskontrolle Deklaration von Methoden, Attributen, Variablen Ausdrücke und Anweisungen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

C++ Teil 1. Sven Groß. 9. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr / 19

C++ Teil 1. Sven Groß. 9. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr / 19 C++ Teil 1 Sven Groß IGPM, RWTH Aachen 9. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr 2015 1 / 19 Organisatorisches Anmeldung zu Vorlesung und Praktikum über CampusOffice heute! Zugang zu

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015 Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Programmieren in C / C++ Grundlagen C 2

Programmieren in C / C++ Grundlagen C 2 Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Informatik I Übung, Woche 41

Informatik I Übung, Woche 41 Giuseppe Accaputo 8. Oktober, 2015 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung

Mehr

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 05 Datentypen Inhalt des 5. Kapitels Datentypen 5.1 Einleitung 5.2 Eingebaute Datentypen Übersicht Die Datentypen char, float und double Standardwerte Operatoren Konversion / Type-Cast Datentyp

Mehr

C++ - Einführung in die Programmiersprache Schleifen

C++ - Einführung in die Programmiersprache Schleifen C++ - Einführung in die Programmiersprache Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Schleifen Iterationsanweisungen. Wiederholung von Anweisungsblöcken.

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009 Grundlagen der Programmierung Teil1 Einheit III - 23. Okt. 2009 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Ausdrücke & Anweisungen

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Schleifen und Arrays Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 06.10.2016 Technische Universität Braunschweig, IPS Überblick Kommentare Typen Kontrollstrukturen Arrays 06.10.2016 Dr. Werner

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

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Algorithmen und ihre Programmierung

Algorithmen und ihre Programmierung Veranstaltung Pr.-Nr.: 10 10 V Wirtschaftsinformatik für Wirtschaftwissenschaftler Algorithmen und ihre Programmierung -Teil 1 - Dr. Chris Bizer WS 007/008 Einführung Definition: Algorithmus Ein Algorithmus

Mehr

Algorithmen und ihre Programmierung

Algorithmen und ihre Programmierung Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines

Mehr

Programmierkurs Python I

Programmierkurs 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

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

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

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter

Mehr

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole Leibniz Universität IT Services Anja Aue Eingabe (input) und Ausgabe (output) In diesem Kapitel wird nur das Lesen von und das

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen der Informatik I (Studiengang Medieninformatik) Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de

Mehr

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Informatik - Lehrgang 2000/2001 GRUNDLAGEN Informatik - Lehrgang 2000/2001 GRUNDLAGEN Ein Überblick! Das Werden der Informatik! Daten! Technische Informatik Der von Neumann Computer Versuch einer Entmystifizierung 2 Grundlagen Micheuz Peter Das

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Kap 9. Bitoperationen und -strukturen

Kap 9. Bitoperationen und -strukturen Kap 9. Bitoperationen und -strukturen 9.1 Anwendung von Bits Im Gegensatz zu den üblicherweise Byte-orientierten Daten gibt es auch Bit-Anwendungsbeispiele Statusanzeigen bei Ein-/Ausgabe (Stream-Klassen)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Programmieren in Java

Programmieren in Java Einführung in die (imperative) Programmierung 2 Wiederholung: Allgemein Hohe Programmiersprache Compiler Interpreter Maschinensprache Zielsystem 3 Wiederholung: Java Java Compiler Bytecode JRE Just-In-Time

Mehr

3. Grundanweisungen in Java

3. Grundanweisungen in Java 3. Grundanweisungen in Java Die Grundanweisungen entsprechen den Prinzipien der strukturierten Programmierung 1. Zuweisung 2. Verzweigungen 3. Wiederholungen 4. Anweisungsfolge (Sequenz) Die Anweisungen

Mehr