Grundlagen der Informatik für Ingenieure
|
|
- Lothar Grosser
- vor 6 Jahren
- Abrufe
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 Dr.-Ing. Eike Schallehn OvG Universität Magdeburg Fakultät für Informatik Institut für Technische und Betriebliche Informationssysteme 2017 Organisatorisches
MehrEinfü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
MehrTeil 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
MehrGeschichte 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
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=?
MehrSteueranweisungen. 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)
MehrAufbau 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
MehrGrundlagen 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,
MehrUnterlagen. 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
MehrEinfü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
MehrTeil 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
MehrEinfü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
MehrMotivation 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
MehrDie 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
MehrEinfü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
Mehr5. 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
MehrProgrammieren 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,
Mehr3. 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
MehrKapitel 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
MehrAlgorithmen 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
MehrEinfü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
MehrFACHHOCHSCHULE 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
MehrJava - 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
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrPass 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
MehrAlgorithmen & 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
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
MehrEinstieg 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,
MehrRO-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
MehrGrundlagen 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
Mehr4. 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
MehrFunktionales 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
MehrKapitel 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
MehrGrundlagen 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
MehrEinfü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).
MehrEinstieg 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
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrEinfü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
MehrProgrammieren 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
MehrProgrammieren 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
MehrProgrammieren 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
MehrInformatik 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
MehrEinleitung 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
MehrJava 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
MehrKlausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben
MehrModul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2
Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016
MehrJAVA-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).
MehrEin- 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
Mehr2. 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)
Mehr4.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
MehrJavakurs 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
MehrGrundlagen 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
MehrGrundlagen 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
MehrBerichte 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
MehrGrundlagen 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
MehrEinstieg 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
MehrOperatoren (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.
MehrGrundlagen 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
MehrEINI 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
MehrAlgorithmen & 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
MehrEinleitung. 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
MehrProgrammierung 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
MehrWerner 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
MehrC++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
MehrWelche 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
MehrString-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
MehrDr. 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
MehrRepetitorium 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
MehrC++ 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
MehrEinfü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)
MehrProgrammieren 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
MehrGrundlagen. 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
MehrArbeitsblä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
MehrEinfü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
MehrSchachtelung 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,
MehrProgrammiersprache 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.)
MehrInformatik 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
MehrKapitel 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
MehrC++ - 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.
MehrGrundlagen 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
MehrVorkurs 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
MehrKapitel 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
MehrElementare 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
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri 2009-11-05 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Übersicht Variablen Datentypen Werte Operatoren und Ausdrücke Kontrollstrukturen: if, while
MehrGrundlagen 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:
MehrBeispiel. 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]+
MehrJava 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
MehrJavaprogrammierung 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
MehrC++ - 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
MehrGrundlagen 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
MehrInformatik - 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
Mehr1 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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
MehrKap 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)
MehrVorlesung 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),
Mehrzu 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
MehrProgrammieren 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
Mehr3. 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