Programmieren in C/C++ und MATLAB



Ähnliche Dokumente
Einführung in die C++ Programmierung für Ingenieure

Einführung in die Programmierung

Einführung in die C-Programmierung

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

1 Vom Problem zum Programm

Einführung in die Programmierung (EPR)

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

Klausur in Programmieren

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Programmierung in C. Grundlagen. Stefan Kallerhoff

Übungen zu C++ Kapitel 1

Angewandte Mathematik und Programmierung

Erwin Grüner

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Einführung in die Programmierung

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Die Programmiersprache C99: Zusammenfassung

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Tutorium Rechnerorganisation

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Zählen von Objekten einer bestimmten Klasse

Kontrollstrukturen und Funktionen in C

Deklarationen in C. Prof. Dr. Margarita Esponda

25 kann ohne Rest durch 5 geteilt werden! ist wahr

IT-Basics 2. DI Gerhard Fließ

Objektorientiertes Programmieren mit Suse Linux

Einführung in die Java- Programmierung

Die Programmiersprache C

Projektverwaltung Problem Lösung: Modulare Programmierung

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Grundlagen der Programmiersprache C++

Grundlagen. Kapitel 1

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Graphic Coding. Klausur. 9. Februar Kurs A

Modellierung und Programmierung 1

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

Qt-Projekte mit Visual Studio 2005

Diana Lange. Generative Gestaltung Operatoren

Anleitung über den Umgang mit Schildern

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Programmierkurs Java

Grundlagen der Theoretischen Informatik, SoSe 2008

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Wie halte ich Ordnung auf meiner Festplatte?

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

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

AutoCAD Dienstprogramm zur Lizenzübertragung

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Datenbanken Kapitel 2

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

2. Semester, 2. Prüfung, Lösung

Informatik Repetitorium SS Volker Jaedicke

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

I.1 Die Parrot Assemblersprache

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

Computeranwendung und Programmierung (CuP)

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Klausur in Programmieren

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Übersicht Programmablaufsteuerung

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Professionelle Seminare im Bereich MS-Office

1. Übung zu "Numerik partieller Differentialgleichungen"

Professionelle Seminare im Bereich MS-Office

2 Einfache Rechnungen

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Arbeiten mit UMLed und Delphi

Übungen Programmieren 1 Felix Rohrer. Übungen

Programmieren in C/C++ und MATLAB

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Kapitel 1: Einführung

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Stand: Adressnummern ändern Modulbeschreibung

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Microsoft Visual Studio Community 2015

Jederzeit Ordnung halten

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Lehrer: Einschreibemethoden

FB Informatik. Fehler. Testplan

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Einführung in die Programmierung

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Gruppenrichtlinien und Softwareverteilung

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

2. Programmierung in C

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Transkript:

Programmieren in C/C++ und MATLAB Sven Willert, Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU, 1-1

Vorlesung Vorlesung drei-stündig, mit Übungen Vorlesung Di, 10:30-12:45 (mit 15 Minuten Pause) 1/3 Vorlesung, 2/3 Übung Vorlesungsunterlagen C++ über Homepage : http://www.geohydromodelling.uni-kiel.de/ Zwei Hauptteile: -C++ -MatLab -Grundlagen - Theorie - Sprachelemente -Praktische Übungen Ziel: - Erstellen von kleineren Hilfsprogrammen - Datenkonvertierung CAU, 1-2

Inhalt C++ - Programmiersprachen, Einführung C/C++ - Aufbau eines C++ Programms - Datentypen, Variablen, Konstanten, Typumwandlungen - Deklaration, Definition - Ein- und Ausgabe: Bildschirm, File-IO, Zahlen und Zeichen - Operatoren - Kontrollstrukturen: for(), while(), if() then() else(), switch() - Felder, ein- bis mehr-dimensional - Funktionen - Objektorientierte Programmierung (Übergang MATLAB) CAU, 1-3

Was ist Unix Entwickelt im Gegensatz zu Multics, 1969; erster Name: Unics Im Gegensatz zum Standard- Desktop-PC mit Microsoft Windows Betriebssystem sind Unix Betriebssysteme für sog. Workstations konzipiert, die höhere und verteilte Rechenleistungen erlauben. Es gibt eine Reihe von Unix-Systemen: Solaris (Sun Microsystems), AIX (IBM), HP-UX (Hewlett-Packard), Irix (Silicon Graphics), FreeBSD und NetBSD (Freeware) Eigenschaften: - Multitasking: gleichzeitiges Ausführen von Prozessen - Multiuser: Mehrere Benutzer können gleichzeitig auf dem Computer arbeiten und auf die Computer-Ressourcen zugreifen Daraus folgen drei wesentliche Konsequenzen: - Dateien gehören einem Benutzer (Dateirechte) - Prozesse gehören einem Benutzer (Feste Zuordnung ausführbarer Programme zu einem User) - benutzerspezifische Konfigurationen CAU, 1-4

Was ist Linux Linux bezeichnet im Ursprung nur den Betriebssystemkern, den der Finne Linus Torvalds 1991 entwickelt hat als Lehrbetriebssystem (!) Durch internationalen Austausch in einer Open-Source Gemeinde und dauerhafter Weiterentwicklung durch viele Enthusiasten weltweit wurde daraus das vollständige, sehr leistungsstarke Betriebssystem, wie es heute bekannt ist. Linux ist kein offiziell akkreditiertes Unix. Linux ist preisgünstig (kostenlos) und begnügt sich mit preisgünstiger Hardware, im Gegensatz zu Unix. Alle auf Linux entwickelten Programme lassen sich leicht auf andere Unix-Systeme portieren. So ist auch C/C++ ein standartisierte und portable Programmiersprache. Mit Linux einher geht eine Vielzahl an Zusatzprogrammen, die zumeist dem GNU Open Source Projekt entstammen, das für freie, im Quellcode verfügbare Software einsteht (Emacs, gcc, gdb, make,..) CAU, 1-5

Grundbegriffe Compiler: Bei Programmiersprachen wie C/C++, Fortran, Pascal etc handelt es sich um Hochsprachen, die durch ein spezielles Programm in Maschinencode übersetzt werden müssen, aus dem dann die ausführbare Datei entsteht. So ein Programm nennt man Compiler. Der Compiler prüft beim Übersetzen (=Kompilieren) auch, ob der Code (=Programmtext) im Einklang mit den Regeln der Programmiersprache ist (= Syntax) steht. Compiler geben auch Warnungen aus, die auf mögliche Inkonsistenzen oder Mehrdeutigkeiten hinweisen. Zum erfolgreichen Compilieren muss der Compiler fehlerfrei übersetzen. Zusätzlich sollte der Programmtext auch warnungsfrei übersetzt werden können CAU, 1-6

Grundbegriffe Dateiarten: Die Datei, die den Programmtext (= Quelltext, Code, Source code) enthält, wird mit einer Endung versehen, die die Programmiersprache kennzeichnet. Hier: *.cpp (auch *.cc, *.cxx) Bei C/C++ werden die Schnittstellen zu Unterprogrammen und Datenstrukturen in eigenen Dateien vom übrigen Code getrennt. Diese Dateien nennt man header-dateien (*.h) Aus den vorhandenen Source code und header Dateien erzeugt der Compiler entweder gleich das ausführbare Programm (*.exe in Windos, beliebige Endung bzw. Namen unter Linux) oder eine Zwischenstufe, den sog. Objektcode (*.obj, *.o) Aus dem fertigen Objektcode erstellt dann der Linker das fertige Programm CAU, 1-7

Grundbegriffe Dateiarten: Ein Sammlung von Unterprogrammen in übersetzter Form heiss Bibliothek (library). Diese können zu einem Programm hinzugelinkt und damit die Unterprogramme verwendet werden. -> Statische Bibliotheken werden zum ausführbaren Code dazugelinkt -> dynamische Bibliotheken (*.dll) werden erst zur Laufzeit des Programms hinzugezogen CAU, 1-8

C und C++ C wurde 1972 von D. Ritchie an den Bell Laboratories von AT&T (American Telefon and Telegraph Company) entwickelt. C ist Nachfolger von B, und stellte eine Hardware-unabhängige Sprache dar. Diese war besonders für Unix geeignet und entwickelt (Unix ist im Wesentlichen in C implementiert). C ist eine imperative, strukturierte Programmiersprache und hat universelle Verbreitung gefunden. C- Programme können auf fast allen Rechnern compiliert werden. C++ ist eine auf C basierende Weiterentwicklung (++ ist der Inkrementoperator in C), die in den 1980er Jahren von Bjarne Stroustrup ebenfalls bei AT&T. C++ unterstützt prozedurale und objektorientierte Programmierung. Hauptunterschied ist die Einführung von Klassen, d.h. selbst zu definierenden Konstrukten aus Daten und Funktionen. Die objektorientierte Programmierung ist insbesondere für große Programme und Benutzeroberflächen geeignet. CAU, 1-9

Ein erstes C++ Programm 1: /* Das erste Programm: 2: Summe der Zahlen von 1 bis 10 3: */ 4: 5: #include <iostream> 6: 7: int main(void) 8: { 9: // Variable deklarieren und initialisieren 10: int zahl; 11: zahl = 0; 12: 13: // Schleife durchlaufen 14: for (int i = 1; i <= 10; i++) 15: { 16: zahl += i; 17: cout << "Summe bis " << i << ": "; 18: cout << zahl << "\n"; 19: } 20: } 21: Beispiel aus Wieland, 2004 Normalerweise gibt das erste Programm Hallo Welt auf den Bildschirm aus. CAU, 1-10

Ein erstes C++ Programm Kommentar Ein Kommentar ist eine Anmerkung, ein Text, der vom Compiler ignoriert wird. Diese Kommentare dienen dazu, den Programmtext besser lesbar und verständlicher zu machen. Bei etwas größeren Programmen (wo Sie vielleicht nur einmal pro Jahr in eine bestimmte Funktion hineinschauen) kann eine ausführliche und aussagekräftige Kommentierung sehr wichtig sein. Auch wenn Sie ein Programm von einer anderen Person übernehmen und weiterführen sollen, sind Kommentare sehr wichtig. Faustregel: Im Schnitt eine Kommentarzeile pro Codezeile Kommentare können auf zwei Arten gekennzeichnet werden: - Durch //, dann sind alle folgenden Zeichen bis zum Zeilenende Kommentar (Zeilen 9, 13) - Anmerkung eingeschlossen durch /* Kommentar */. Dies kann auch über Zeilenenden hinweg gehen (Zeile 1-3) CAU, 1-11

Ein erstes C++ Programm Variablen In (fast) jedem Programm muss mit irgendwelchen Daten umgegangen werden. Dafür müssen Speicherstellen im Computer geschaffen werden, in denen diese Daten abgelegt (gespeichert, RAM) werden können. Eine solche Speicherstelle heißt Variable, weil sich ihr Wert (Inhalt) im Verlauf des Programms ändern kann. Variablen werden nach ihrem Typ unterschieden, d.h. ob sie Zahlen (und welchen Typ) oder Buchstaben oder... aufnehmen können. Deklaration Jede Variable hat einen Namen. Im Beispiel gibt es zwei Variablen, zahl und i. Bevor eine Variable verwendet werden kann, muss sie deklariert werden. Im Beispiel: int zahl; (Zeile 10) Mit dieser Zeile wird angegeben, dass eine Variable vom Typ int (=Integer = Ganzzahl) mit Namen zahl verwendet werden soll. Das Programm reserviert dann den benötigten Speicherplatz und ordnet ihn der Variable zu. CAU, 1-12

Ein erstes C++ Programm Initialisierung Variablen haben nach der Deklaration keinen definierten Wert, sondern können alle möglichen Werte aufweisen. Grund ist, das noch kein Wert auf dem zugeordneten Speicherplatz eingetragen wurde, sonder gelesen wird, was da zufällig steht. Eine Initialisierung ist dann besonders wichtig, wenn mit dieser Variable weitergearbeitet wird, also z.b. eine weitere Zahl addiert wird. Dann ist auch das Ergebnis der Addition undefiniert. Daher sollte jede Variable mit einem sinnvollen Wert initialisiert werden. Im Beispiel wird in Zeile 11 die Variable zahl mit dem Wert 0 initialisiert: zahl = 0; Namensgebung Der Name einer Variable muss mit einem Buchstaben oder dem Unterstrich _ anfangen, darf nicht länger als 256 Zeichen lang sein. C++ unterscheidet zwischen Groß- und Kleinschreibung. CAU, 1-13

Ein erstes C++ Programm Operator Eine Zuweisung an eine Variable geschieht über den Operator =. (Zeile 11). Einer Variablen kann ein fester Wert (wie in Zeile 11), der Wert einer anderen Variablen oder ein Rechenergebnis zugewiesen werden (Zeile 16): zahl = zahl + i Diese Zuweisung und Rechnung kann statt über zwei Operatoren + und = auch nur über den Operator += gemacht werden: zahl += i Ausgabe und Eingabe Ein besonderer Operator wird für die Ein- und Ausgabe verwendet. Der << Operator bedeutet dass alles was rechts von ihm steht nach links weitergereicht wird. Im Beispiel wird also Summe bis weitergereicht an cout, das die Ausgabe auf dem Bildschirm durchführt. CAU, 1-14

Ein erstes C++ Programm Strukturierung Jede Anweisung in C/C++ endet mit einem Semikolon ; Ausnahmen bilden Kontrollstrukturen, die durch geschweifte Klammern gekennzeichnet sind. Diese Klammern kennzeichnen einen Block jede Funktion ist ein solcher Block. Solche Blöcke können geschachtelt werden. Übersichtlichkeit C++-Code kann sehr verschachtelt und kurz geschrieben werden. Das sollten Sie nicht tun. Faustregel: - nur eine Anweisung pro Zeile - Einrücken von Anweisungen innerhalb eines Blocks (Im Beispiel: Zeile 15 19. - Leer- und Kommentarzeilen einfügen. CAU, 1-15

Ein erstes C++ Programm Präprozessor-Anweisung Vor der eigentlichen Compilierung wird eine Vorverarbeitung gemacht, bei der header Dateien eingefügt oder Makros expandiert werden. Jede Anweisung in C/C++ endet mit einem Semikolon ; Anweisungen für den Präprozessor sind durch # gekennzeichnet. Im Beispielprogramm wird durch Zeile 5: #include <iostream> Die header Datei iostream.h eingebunden und Funktionen aus ihr zur Verfügung gestellt. Dabei wird die header-datei nur in den Standard-Verzeichnissen des Betriebssystems für Header-Dateien gesucht. Für lokale header: 5: #include iostream.h. CAU, 1-16

Ein erstes C++ Programm Hauptfunktion (=Hauptprogramm) Die Hauptfunktion kennzeichnet Anfang und Ende des Programms. In C++ wird beides durch die Funktion main() festgelegt. Egal wo im Source-Code diese Funktion steht, die Programmausführung beginnt in der main- Funktion, und diese muss immer vorhanden sein. Im Beispiel Zeile 7-19. Eine Funktion ist typischerweise ein Stück Code, das eine übersichtliche Aufgabe ausführt, der zu Zwecken der besseren Übersichtlichkeit und Wiederverwertbarkeit gekapselt wurde und einen eigenen Namen bekommen hat. An eine Funktion können Variablen mit ihren Werten übergeben werden, und die Funktion kann einen Wert zurück liefern: int main(void){...} Im Beispiel heißt die Funktion main, Ihr werden keine Variablen übergeben und sie liefert einen int-wert zurück. double name(int x, double y) {double z; z=...; return z;} CAU, 1-17

Ein erstes C++ Programm Schleifen Im Beispiel in Zeile 14-15 wird die sog. for- Schleife verwendet. Diese kann genutzt werden, um wiederkehrende Rechnungen durchzuführen. 14: for (int i = 1; i <= 10; i++) 15: { 16 18: Do_something(i); 19: } Zeile 14 gibt an, wie oft etwas getan werden soll, Zeile 16-18 geben an, was getan werden soll. i ist die Zählvariable, die intern (=innerhalb der for- Schleife) deklariert und initialisiert wird. Die Bedeutung ist: Setze i=1, führe die Anweisungen Do_something(i) aus, erhöhe i um eins (i++), führe Do_something(i) aus, erhöhe i um eins (i++), solange, wie i kleiner als 10 ist. Es gibt noch andere Schleifen... CAU, 1-18

Ein erstes C++ Programm Ausgabe Im Beispiel wird in Zeile 17-18 jeweils das aktuelle Ergebnis der Addition ausgegeben. cout ist dabei die Standard-Bildschirmausgabe, << der Übergabeoperator. Übergeben an die Bildschirmausgabe wird zum einen Text. Dieser ist gekennzeichnet durch Summe bis, d.h. durch obenstehende Anführungszeichen begonnen und abgeschlossen. Es kann auch eine Variable ausgegeben werden. Im Beispiel wird jeweils der aktuelle Wert der Variablen i und zahl ausgegeben. \n ist das Zeilenendzeichen, damit wird in der Bildschirmausgabe ein Zeilenumbruch erzeugt. Äquivalent kann auch cout << endl; verwendet worden (endl = end of line) CAU, 1-19

Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen interpretiert und wie sie gespeichert werden. Ebenso wird damit die Art der Operationen festgelegt, die mit diesen Datentypen erlaubt sind. C++ bietet einige fest eingebaute Datentypen, es können aber auch selber welche geschaffen werden (Klassen). CAU, 1-20

Elementare Datentypen Logische (boolsche) Wert: Diese können die Werte true oder false annehmen. bool ist_richtig; Zeichen (character): Damit können Zeichen dargestellt werden sowie die Ziffern 0-9 char a = B ; Integer: Damit können ganze Zahlen dargestellt werden int i = 9; Die Ganzzahlen gibt es in mehreren Größen: short int 2 Byte -32768... 32767 int 4 Byte -2147483648... 2147483648 long int 4 oder 8 Byte -9.2 10 18... 9.2 10 18 oder wie int CAU, 1-21

Elementare Datentypen Gleitkommazahlen: (Zahlen mit Nachkommastellen). Diese gibt es in einfacher und doppelter Genauigkeit: float x; double y; float 4 Byte -1.2 10-38... 1.2 10 38 double 8 Byte -1.8 10-308... 1.8 10 308 Auch wenn die Zahlen Gleitkommazahlen heißen, werden Sie mit einem Dezimalpunkt angegeben! void: Damit ist ein nicht existierender Wert gemeint. Wird auch verwendet um anzuzeigen, dass ein Unterprogramm keine Übergabeparameter braucht oder Werte zurück liefert. CAU, 1-22