Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme



Ähnliche Dokumente
Einführung in die Programmierung

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

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

Übungen zu C++ Kapitel 1

Grundlagen. Kapitel 1

Programmierkurs Java

Einführung in die Programmierung (EPR)

Klausur in Programmieren

1 Vom Problem zum Programm

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

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

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Angewandte Mathematik und Programmierung

Einführung in die C-Programmierung

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

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

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

Installation und Inbetriebnahme von Microsoft Visual C Express

Klausur in Programmieren

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

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

Deklarationen in C. Prof. Dr. Margarita Esponda

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

Zählen von Objekten einer bestimmten Klasse

Objektorientiertes Programmieren für Ingenieure

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Die Programmiersprache C99: Zusammenfassung

Informatik Repetitorium SS Volker Jaedicke

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

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

Modellierung und Programmierung 1

Informatik I (D-MAVT)

Vorkurs C++ Programmierung

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

Übung 9 - Lösungsvorschlag

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

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

FB Informatik. Fehler. Testplan

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Einführung in die Java- Programmierung

Übungen Programmieren 1 Felix Rohrer. Übungen

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Tutorium Rechnerorganisation

Einführung in die Programmierung

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

5. Tutorium zu Programmieren

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, Uhr Bearbeitungszeit: 105 Minuten

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

Grundlagen der Informatik - 6. Praktikum

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Klausur in Programmieren

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

Internationales Altkatholisches Laienforum

Programmierung in C. Grundlagen. Stefan Kallerhoff

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

Professionelle Seminare im Bereich MS-Office

Individuelle Formulare

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

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

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

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

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

Leichte-Sprache-Bilder

User Manual Data 24. Login und Layout

Klausur in Programmieren

Anleitung: Wie unterschreibe ich die Petition im Internet?

Datentypen: Enum, Array, Struct, Union

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

DLLs (dynamic loaded libraries) mit MingW erstellen

Was meinen die Leute eigentlich mit: Grexit?

teischl.com Software Design & Services e.u. office@teischl.com

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Wirtschaftsinformatik I

Wie melde ich meinen Verein bei BOOKANDPLAY an?

Programmentwicklung mit C++ (unter Unix/Linux)

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Kontrollstrukturen und Funktionen in C

2. Programmierung in C

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

4.1 Wie bediene ich das Webportal?

Anleitung Microsoft Select-Plus Registrierung

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Ingenieurinformatik Diplom-FA (C-Programmierung)

Der Kalender im ipad

YouTube: Video-Untertitel übersetzen

EMIS - Langzeitmessung

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Delegatesund Ereignisse

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

Programmieren Tutorium

Anleitung über den Umgang mit Schildern

Computeranwendung und Programmierung (CuP)

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

nessbase Projekte Über Projekte I

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

Wir arbeiten mit Zufallszahlen

Transkript:

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes Programm Variablen Aus- und Eingaben Kontrollstrukturen Arrays, Pointers, Funktionen Namensräume Übungen Nutzereingaben in C++ Personendaten Kreisberechnung Lernziele Einstieg in die Programmiersprache C++ Grundlagen zu C++ kennenlernen Erste Übungen und Programme in C++ 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 2

Programmieraufgabe (letzte Stunde) Aufgabe: Nutzereingaben verarbeiten Schreiben Sie ein C-Programm, das folgenden Aufgaben erledigt: Der Benutzer wird immer wieder aufgefordert eine Zahl einzugeben, und zwar solange, bis er eine 0 eingibt. Achten Sie darauf, dass der Benutzer mit seinen Eingaben nicht in einen fremden Speicherbereich schreiben kann Die eingegebenen Zahlen sollen dann zur Kontrolle auf der Konsole ausgegeben werden Daraufhin berechnet das Programm den Durchschnitt, die kleinste und die größte eingegebene Zahl. Die Ergebnisse werden dem Benutzer dann auf der Konsole ausgegeben. Nutzen Sie für die Bearbeitung der Aufgabe die eben vorgestellten C-Grundlagen 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 3

Zum ersten Programm: Hello World Theoretisch können wir unser Hello World auch wieder komplett in C schreiben und es mit dem C++ Compiler übersetzen lassen. C Programme lassen sich in der Regel auch mit dem C++ Compiler übersetzen Wir wollen aber nun C++ Syntax verwenden. C++ Programme lassen sich nicht mit dem C-Compiler übersetzen Für Hello World brauchen wir wieder die Standardausgabe In der Header-File iostream sind die Funktionen für input und output vorhanden. Also Einbinden mittels: #include <iostream> Ausgaben erzeugen wir dann mittels std:: cout << Meine Ausgabe! ; Der Grundsätzliche Aufbau eines C++ Programm ist sehr ähnlich zu C 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 4

Zum ersten Programm: Hello World Schreiben Sie ein Hello World Programm in C++ und übersetzen Sie dieses mit dem C++ Compiler g++ meinhelloworld.cpp o meinhelloworld Anmerkung: Dateiendung kann auch.c.c++.cxx oder.cc sein // Erstes Programm Hallo Welt #include <iostream> int main(int argc, char* argv[]){ std::cout << Servus Welt! Wie geht s dir?\n ; return 0; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 5

Arbeiten mit dem C++ Compiler Korrektes Arbeiten mit dem Compiler wichtig, um Syntax und Laufzeitfehler zu erkennen, oder Performance zu verbessern Bietet neben dem grundsätzlichen Aufruf einige Optionen (Flags) an, zur Anzeige von mehr Informationen // Compiler-Flags und ihre Bedeutung: g++ -Wall HelloWorld.cpp o HelloWorld warning all: Gibt uns alle Warnungen mit aus g++ -O HelloWorld.cpp o HelloWorld Für schneller Programmausführung. Aber Kompilierung dauert länger g++ -g HelloWorld.cpp o HelloWorld Hält Debugging-Informationen bereit g++ -lm HelloWorld.cpp o HelloWorld Linker: Erlaubt das verlinken einer Library. Hier mathematische Routinen m Mehr Informationen zu Optionen von g++ unter der eingebauten Hilfe: g++ --help bzw. g++ --target-help 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 6

C++ Variablen & Datentypen In C++ gibt es im Prinzip die gleichen Datentypen, wie in C Also: char, short, int, long und long long, jeweils auch als unsigned Oder für Fließkommazahlen: float, double, long double Darüber hinaus gibt es einen Datentyp für Wahrheitswerte: bool Bsp.: bool allesklar = true; Oder: bool gelernet = false; // Beispiele für Deklaration: double meine_zahl; double meine_zahl1, meine_zahl2, meine_zahl3; // Beispiele für Initialisierung: int zahl = 100; int zahl2(200); // Oder Konstanten: const double Pi(3.14); const int MAX_VAL = 100; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 7

C++ Variablen & Datentypen Auch Strings sind jetzt möglich mittels header file string #include <string> Bietet verschiedene Methoden auf Strings Bsp.: mein_string.length(); // Gibt länge des Strings zurück Bsp.: mein_string.at(number); // Liefert Zeichen an der Stelle number // Beispiel für Strings in C++ #include <iostream> #include <string> int main(int argc, char* argv[]){ std::string city = Berlin ; std::string address; address= Kreuzberg 1 ; //Ausgabe std::cout << Willkommen in <<city; std::cout << \n std::cout << Ich wohne in <<address<< \n ; std::cout << Laenge des Strings: <<city.length(); 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 8

Konsolen Ausgaben und Eingaben Konsolenausgeben mittels std::cout << Meine Ausgabe Erfordert #include <iostream> Variablen können einfach eingehängt werden: std::cout << Der Wert von x ist: <<x; Konsoleneingaben mittels std::cin >> eingabe; Erfordert #include <iostream> // Beispiel für einfache Nutzereingabe: #include <iostream> int main(int argc, char* argv[]){ int pin; std::cout << Geben Sie hier Ihre Pin-Nummer ein: ; std::cin >> pin; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 9

Weitere Nutzereingaben // Auch mehrere Nutzereingaben möglich: int account_nr, pin; std::cout << Bitte geben Sie ihre Kontonummer und dann Ihre Pin ein\n ; std::cout << Bestaetigen Sie Ihre Eingaben mit Enter. ; std::cin >> account_nr >> pin; // Auch Stringeingaben möglich: #include <string> // std::string name; std::cout << Geben Sie Ihren Namen ein: ; std::getline(std::cin, name); //Ausgabe std::cout << Ihr Name lautet: <<name << \n ; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 10

Kontrollstrukturen Kontrollstrukturen werden bzgl. Ihrer Syntax und Funktion wie bei C oder Java verwendet Verzweigungsstrukturen: if-else, switch-case Wiederholungsstrukturen: while, do-while, for-schleife Sprunganweisungen: break, continue, goto // Beispiele: if(x+y<z) goto Ziel; Ziel: while(a>b){ a--; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 11

Arrays Arrays werden analog zu C verwendet // Beispiele: //Deklaration: int array1[2]; int array2[3][4]; double array3[] = {3.2, 2.2, 1.1; char array4[3] ={ a, b, c ; //Initialisierung: array1[0] = 3; array1[1] = 7; array2[0][0] = 5; //Ausgabe: std::cout << Buchstabe 1: << array4[0]; std::cout << Wert 2: << array3[1]; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 12

Pointers Und auch Pointers werden analog zu C verwendet // Beispiele: int meine_zahl = 3; double mein_array[] = {1.1, 2.2, 3.3; //Deklaration von Pointer: int* mein_zeiger; double *mein_zeiger_auf_mein_array; // Zuweisung: mein_zeiger = &meine_zahl; mein_zeiger_auf_mein_array = mein_array; //Zeigeroperation mein_zeiger_auf_mein_array++ //Ausgaben: std::cout << Der Wert, auf den mein Zeiger zeigt: << *mein_zeiger; std::cout << Die Adresse, auf die mein Zeiger zeigt: << mein_zeiger; std::cout << Die Adresse meines Zeigers: << &mein_zeiger; std::cout << 2. Wert des Arrays: <<*mein_zeiger_auf_mein_array; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 13

C++ Funktionen Syntax von C++ Funktionen analog zu C bzw. Java: Die Deklaration (Kopf) der Funktion sollte dem Compiler bereits am Dateianfang mittgeteilt werden Notwendig, falls Aufruf und Definition in verschiedenen Quelldateien liegen // Beispiel: int add(int a, int b); // auch möglich: int add(int,int); int main(){ Allgemeine Funktionsdefinition: return_type function_name(type param1, type param2){ //Body int addition = add(3,4); std::cout << Ergebnis: <<addition; return 0; int add(int a, int b){ return a+b; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 14

Namensräume (Namespaces) Namensräume beugen dem Problem vor, dass sich Funktionen, Variablen usw. mit gleichem Namen überschatten können Grenzen also den Gültigkeitsbereich ein Ermöglichen eine strukturierte Verwendung Bsp.: std (Namensraum der C++ Standardbibliothek) std::cout (Greift auf die Ausgabefunktion der Standardbibliothek zurück) :: ist ein Bereichsoperator Namensräume können mittels using-direktive global bekannt gemacht werden Aber Vorsicht! Überschattungen mit globalem Namensraum möglich Daher (wenn überhaupt) eher innerhalb von Funktionen verwenden Oder nur einen Teilbereich des Namensraums verwenden // Beispiel mit using-direktive // std komplett bekannt machen // Beispiel mit using-direktive // Nur cout bekannt machen using namespace std; int main(){ cout << Hallo Welt ; using std::cout; int main(){ cout << Hallo Welt ; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 15

Namensräume definieren Namensräume können natürlich selbst definiert werden. Allgemein: namespace name{//deklarationen Das folgende Beispiel zeigt gleich die Bedeutung von Namensräumen #include <iostream> using namespace std; // first name space namespace first_space{ void func(){ cout << "Inside first_space" << endl; // second name space namespace second_space{ void func(){ cout << "Inside second_space" << endl; using namespace first_space; int main (){ // This calls function from first name space. func(); return 0; 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 16

Aufgabe 1: Programmieraufgaben Schreiben Sie Ihr C-Programm vom Anfang der Stunde in C++ Code um, so dass die Funktion des Programm beibehalten wird. Aufgabe 2: Schreiben Sie ein Programm, welches zu einer Person folgende Daten von der Tastatur einliest und diese anschließend wieder ausgibt: Name, Konfession, Alter, Größe, Gehalt. Verwenden Sie passende Datentypen! Jeder Abfrage geht eine Nutzereingabeaufforderung vorraus. 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 17

Programmieraufgaben Aufgabe 3: Schreiben Sie ein Programm Kreisberechnung, das folgende Aufgaben erledigt: Der Benutzer soll einen Kommawert für den Radius eingeben! Das Programm errechnet mittels passenden Funktionen: Den Durchmesser (2*r) Den Umfang (2*r*PI) Die Fläche (r²*pi) Die Berechnungen sollen dem Nutzer auf der Konsole angezeigt werden. Hinweis: Sie können Pi entweder selber als Konstante definieren oder mittels M_PI aus der Header-Datei math.h verwenden 07.12.2015 Grundlagen C/C++ 03: Grundlagen in C++ - Lorenz Schauer 18