Grundlagen der Programmentwicklung

Ähnliche Dokumente
Hello World! Eine Einführung in das Programmieren Das erste Programm

Ein- und Ausgabe (I/O)

Kontrollstrukturen -- Schleifen und Wiederholungen

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

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

Grundlagen. Kapitel 1

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

Variablen, Konstanten und Datentypen

Peter Prinz. Das Übungsbuch. CTestfragen und Aufgaben mit Lösungen

Informatik für Elektrotechnik und Informationstechnik

Kap 1. Programmentwicklung

Pseudo-Programmiersprache

2. Programmierung in C

Einführung in C ++ und die Objektorientierte Programierung

Programme erstellen in Java

Aufgabe 1. Universität Duisburg-Essen Fachbereich Mathematik Dr. O. Rheinbach

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

Programmierkurs C++ Grundlagen. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck

Programmierung in C++

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Propädeutikum Programmiersprache C und Mathematik 2014

2. Programmierung in C

Kapitel 1: Einführung

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

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Programmierung in C++ Teil 1

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Informatik, am 11. Juli 2013 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Einstieg in Java und OOP

Programmieren/Algorithmen und Datenstrukturen 1

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

Übung 1 - Betriebssysteme I

Übungen zu Systemprogrammierung 1

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

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Objektorientierte Programmierung - Was ist Programmieren?

Bedingte Anweisungen

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

Grundlagen von C# - 1

C++ Das Übungsbuch. Testfragen und Aufgaben mit Lösungen. von Ulla Kirch, Peter Prinz. überarbeitet

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

Übungen zu Systemprogrammierung 1 (SP1)

4 Schleifen und Dateien

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

Grundlagen der Informatik. Mathias Buhr

Einführung in die Programmierung

In diesem Kapitel lernen Sie den Umgang mit Visual C++ kennen, legen Ihr erstes Projekt an und schreiben ein kurzes Programm.

Einführung in die Programmierung

Die Programmiersprache C++ Einführung / Datentypen

Einführung in die Programmierung Wintersemester 2016/17

1.3 Handhabung eines Programmiersystems

Klausur Informatik WS 2012/13

Installationsanleitung

3D Programmierpraktikum: Einführung in C++ - Teil 1

Klausur Programmieren 1 SS 2017

Die Programmiersprache C

Einführung in die C-Programmierung

SRC Modula-3 Kommandos und Dateien Ein einfaches Beispiel Importieren von Modulen Hinweise zu den Übungsprogrammen Probleme - Mögliche Ursachen

Inhaltsverzeichnis. 1. Einleitung Eine der am häufigsten verwendeten Programmiersprachen: C Die Geschichte von C++...

Kapitel 1. Grundlagen

2. Programmierung in C

Einführung in die Programmierung

Vorkurs Informatik WiSe 17/18

Praktikumstermin B-07: make & Makefiles

Klassen in Java. Grundlagen der Programmierung. Stephan Kleuker 68

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

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe

2.4 Das erste C++-Programm *

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

Hydroinformatik I: Hello World

C++ - Lernen und professionell anwenden

Programmieren für Physiker: C++ SS 2016

Softwareentwicklung I

Informatik I - Einstiegskurs

Einführung in die Programmierung

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

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

Einführung in die Programmierung Wintersemester 2011/12

Transkript:

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 weit verbreitete Programmiersprache. Sie wurde 1979 von Bjarne Stroustrup bei AT&T als objektorientierte Erweiterung der Programmiersprache C entworfen. Die von der ISO genormte Programmiersprache ist eine effiziente und maschinennahe Sprache und erlaubt ebenfalls ein hohes Abstraktionsniveau. Sowohl in der systemnahen Programmierung als auch in der Anwendungsentwicklung wird sie nach Abbildung: Bjarne Stroustrup wie vor in vielen Bereichen eingesetzt. Typische Anwendung findet C++ z.b. bei Betriebssystemen, Gerätetreibern, eingebetteten Systemen, Spielen und Signalprozessoren, aber auch bei Anwendungssoftware für Desktops und mobile Endgeräte. 2 / 18

Überblick 1 Über C++ 2 Der Übersetzungsvorgang Ausführen des Programms 3 / 18

, das wir kennenlernen werden, ist Hallo Welt. Es hat die einzige Aufgabe, einen Text auf dem Bildschirm auszugeben und ist in Listing 1 zu sehen. 1 # include <iostream > // stellt cout bereit 2 using namespace std; 3 4 int main () { 5 cout << " Hallo Welt!"; // Bildschirmausgabe 6 return 0; 7 } Listing 1: Hallo Welt-Programm Anhand dieses Programms lässt sich der Grundaufbau eines C++-Programms und dessen Konzepte erläutern. 4 / 18

Der Grundaufbau eines C++-Programms -- main() Das Programm wird Zeile für Zeile eingelesen und vom Compiler übersetzt. Sobald das Programm gestartet wird, beginnt der Computer mit der Ausführung an der Funktion int main() (Zeile 4 in Listing 1). Dort beginnt die Abarbeitung der Anweisungen. Wichtig: Jedes C++-Programm benötigt diese Funktion! Der allgemeine Aufbau der main()-funktion sieht so aus: int main() { } return 0; Zwischen den geschweiften Klammern ({ und }) wird die eigentliche Funktionalität dieses Programms durch weitere Anweisungen beschrieben. Mit return 0; wird an das Betriebssystem die erfolgreiche Ausführung zurückgemeldet. 5 / 18

Der Grundaufbau eines C++-Programms -- Kommentare Kommentare sind dazu da, bestimmte Informationen an den Programmierer zu liefern (z.b. was macht diese Zeile). Für das Programm haben sie keine Bedeutung und werden beim Übersetzen des Programms vom Compiler ignoriert. Kommentare steigern nicht nur die Lesbarkeit des Programms, sondern können auch dazu verwendet werden, bestimmte Zeilen vorübergehend zu entfernen. In C++ sind zwei Arten von Kommentaren möglich: // Ich bin ein einzeiliger Kommentar /* * Dieser Kommentar * umfasst mehrere Zeilen. */ Nutzen Sie Kommentare, um den Programmcode so verständlich zu machen, dass durch lesen der Anmerkungen dessen Sinn klar wird. 6 / 18

Bildschirmausgabe in C++ Über die Zeile cout << "Hallo Welt!"; wird der Text Hallo Welt auf dem Bildschirm ausgegeben. Alles was zwischen den Anführungszeichen (") steht, wird ausgegeben. Anhand der Richtung der << lässt sich erkennen, dass hier eine Ausgabe (zeigt auf cout) stattfindet. Die gesamte Anweisungszeile wird mit einem Semikolon (;) abgeschlossen. Da der Befehl cout nicht fester Bestandteil von C++ ist, muss dieser vorher über die Zeile #include <iostream> aus einer externen Bibliothek (Sammlung mehrfach verwendbarer Funktionalität) eingebunden werden. Mit using namespace std; grenzt man diesen Namensraum von anderen Bibliotheken ab, die evtl. auch cout verwenden (aber in einem anderen Kontext) und weist diesen Befehl dem Standard-Namensraum (std) zu. 7 / 18

Blöcke und Anweisungen Einfache Anweisungen (engl. statements) werden in C++ mit einem ; (Semikolon) abgeschlossen. Eine leere Anweisung wird durch ein einzelnes Semikolon in der Zeile dargestellt. cout << "Hallo Welt"; return 0; ; // Leere Anweisung Eine Zusammenfassung von Anweisungen wird als Block bezeichnet und in geschweifte Klammern ({ und }) eingeschlossen. Alle Anweisungen innerhalb dem Blocks gelten nur dort. Ein Block benötigt kein abschliessendes Semikolon. int main() { // Beginn des Blocks return 0; // Anweisung innerhalb des Blocks } // Ende des Blocks 8 / 18

Einrückungen erhöhen die Lesbarkeit des Quellcodes Es lassen sich beliebig viele Blöcke in den Programmcode einfügen. Für jede Blockebene hat sich eine Einrückung um einen Tabulatorschritt als guter Programmierstil herausgestellt, um die Lesbarkeit zu erhöhen. Endet ein Block, so wird auch die Einrückungstiefe um einen Tabstop verringert. 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 cout << " Hallo Welt "; // neue Einrueckungstiefe 6 { 7 cout << " Hallo Block "; // eine weitere Einrueckungstiefe 8 } 9 return 0; // Verringerung der Einrueckungstiefe nach Blockende 10 } In NetBeans gibt es eine nützliche Funktion unter Source Format bzw. über die Tastenkombination Alt + + F zum Formatieren des Quellcodes. Sie sollten sich jedoch angewöhnen, die Einrückungen automatisch bei der Eingabe des Quellcodes vorzunehmen. 9 / 18

Der Übersetzungsvorgang Überblick 1 Über C++ 2 Der Übersetzungsvorgang Ausführen des Programms 10 / 18

Der Übersetzungsvorgang Der Übersetzungsvorgang -- Compiler Computer können den in C++ geschriebenen Quellcode nicht direkt ausführen, da die Anweisungen nicht in Maschinensprache (Assembler) vorliegen. Deshalb muss der Quellcode zuerst von einem Compiler übersetzt werden. Er führt die folgenden Aktionen aus: Syntaxprüfung Es wird ermittelt, ob die Syntax der Programmiersprache eingehalten wurde (Schlüsselwörter, Struktur, Reihenfolge) Analyse und Optimierung Verbesserungen am Programm, welche dessen Ausführungsgeschwindigkeit oder Effizienz erhöhen Codeerzeugung Objektcode wird erzeugt, welcher der Zielsprache schon sehr ähnelt, aber noch nicht direkt ausführbar ist Zusätzlich zum Programmcode werden Headerdateien (z.b. iostream.h), die im Quellcode mit #include angegeben sind, automatisch in den Compilevorgang eingebunden. 11 / 18

Der Übersetzungsvorgang Der Übersetzungsvorgang -- Linker Aus der Objektdatei wird nun mit Hilfe des Linkers eine ausführbare Datei (.exe unter Windows) erstellt. Unterschiedliche Dateien, die beim compile-vorgang entstanden sind, werden zusammen mit den externen Bibliotheken zu einem gemeinsamen Programm verbunden. Der gesamte Vorgang sieht folgendermassen aus: 12 / 18

Der Übersetzungsvorgang Fehlermeldungen des Compilers Sollte der Programmierer Syntaxfehler (Tippfehler) oder andere Fehler im Quellcode gemacht haben, dann kann der Compiler diese melden. Jedoch werden nicht alle Fehler entdeckt (z.b. Logikfehler) und durch andere Implementierungen des Compilers können diese unterschiedliche Fehlermeldungen ausgeben. Betrachten wir dazu erneut unser Beispielprogramm, links korrekt, rechts mit Fehler: 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 cout << " Hallo Welt \n"; 6 return 0; 7 } Listing 2: Fehlerfreies Programm 1 # include <iostream > 2 using namespace std ; 3 4 int main () { 5 cout << " Hallo Welt \n" 6 return 0; 7 } Listing 3: Fehlerhaftes Programm Wir versuchen nun, dieses fehlerhafte Programm zu übersetzen und achten darauf, was der Compiler an Fehlermeldungen ausgibt. 13 / 18

Der Übersetzungsvorgang Fehlermeldungen der Compiler weisen auf Fehler hin Visual Studio 2012 Die folgende Meldung wird von Visual Studio 2012 ausgegeben: Die Ausgabe ist zwar nicht falsch, jedoch könnte die Codezeile präziser angegeben sein. g++ in NetBeans unter Windows Der Standardcompiler in NetBeans für Windows ist g++ aus der GNU Compiler Collection (GCC) über cygwin. Dieser gibt folgende Meldung aus: compile.cpp: In function int main() : compile.cpp:6: error: expected ; before return Ähnlich wie bei Visual Studio, ist auch diese Meldung nicht ganz präzise. 14 / 18

Der Übersetzungsvorgang Fehlermeldungen der Compiler weisen auf Fehler hin Clang++ ist ein neuerer Compiler, der Teil des LLVM Projekts ist und darin C++ Programme übersetzt. compile.cpp:5:23: error: expected ; after expression cout << "Hallo Welt\n" ^ ; 1 error generated. Diese Ausgabe ist wesentlich präziser (genaue Zeile) und hilfreicher, um den Fehler zu lokalisieren. Fazit Sehen Sie sich also die Ausgaben des Compilers genau an, er gibt Ihnen wichtige Hinweise und Lösungsvorschläge zu Fehlern im Programmcode. 15 / 18

Ausführen des Programms Überblick 1 Über C++ 2 Der Übersetzungsvorgang Ausführen des Programms 16 / 18

Ausführen des Programms Das Programm ausführen In Praktikum 1 wird beschrieben, wie Sie das Programm mit NetBeans ausführen können. Demo 17 / 18

Fragen?