Grundlagen der Programmiersprache C++



Ähnliche Dokumente
Einführung in die Programmierung

Modellierung und Programmierung 1

Erwin Grüner

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

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

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

2. Programmierung in C

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

Informatik Repetitorium SS Volker Jaedicke

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

Excel Funktionen durch eigene Funktionen erweitern.

Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters

Lehrer: Einschreibemethoden

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

Dateiname Name(n) und Matrikelnr. des/der Bearbeiter Tel.-Nr. und -Adresse für den Fall, dass die Diskette nicht lesbar ist.

Stand: Adressnummern ändern Modulbeschreibung

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Übersicht Programmablaufsteuerung

Deklarationen in C. Prof. Dr. Margarita Esponda

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

1 Vom Problem zum Programm

Java-Programmierung mit NetBeans

Die Programmiersprache C99: Zusammenfassung

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

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

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

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

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

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

1. Schritt: Export Datei im Fidelio erstellen

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

1. So beginnen Sie eine Kalkulation

Diana Lange. Generative Gestaltung Operatoren

Zugriff auf die Modul-EEPROMs

Hochschule München, FK 03 FA SS Ingenieurinformatik

Zwischenablage (Bilder, Texte,...)

4 Aufzählungen und Listen erstellen

Auftragsbearbeitung 3.1

Viele Bilder auf der FA-Homepage

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

Die Programmiersprache C

Einführung in die Programmierung (EPR)

Anzeige von eingescannten Rechnungen

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Dokumentation IBIS Monitor

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Einführung in das Arbeiten mit MS Excel. 1. Bearbeitungs

Auswahlabfragen mit ACCESS

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

Kapitel 7 - Wägungen

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

1. EINLEITUNG 2. GLOBALE GRUPPEN Globale Gruppen anlegen

W&W Einwohnerkontrolle. EKI Version mit Objektregister (Datenimport)

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Anleitung zum Erstellen eines Freihaltetermins

Professionelle Seminare im Bereich MS-Office

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Hilfedatei der Oden$-Börse Stand Juni 2014

Dokumentenverwaltung im Internet

Programmierung in C. Grundlagen. Stefan Kallerhoff

Ingenieurinformatik Diplom-FA (C-Programmierung)

7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42

Grundlagen. Kapitel 1

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

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen

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

Datenbanken Kapitel 2

Der neue persönliche Bereich/die CommSy-Leiste

Erster Schritt: Antrag um Passwort (s. Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung)

Vorabversion. Schulung am Homepage Administration und Pflege

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Word 2010 Schnellbausteine

Eingangsseite Umwelt-online

1 Mathematische Grundlagen

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

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

Graphic Coding. Klausur. 9. Februar Kurs A

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

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

MS Access 2010 Kompakt

ecaros2 - Accountmanager

Eigene Dokumente, Fotos, Bilder etc. sichern

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

5. Tutorium zu Programmieren

Jederzeit Ordnung halten

Internet online Update (Mozilla Firefox)

Nutzerhandbuch Zentrale Klassenverwaltung

Kurzeinführung LABTALK

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

FB Informatik. Fehler. Testplan

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70

5.4 Klassen und Objekte

Lua Grundlagen Einführung in die Lua Programmiersprache

Transkript:

/ TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit sie in den Lehrprogrammen zur FE-Methode umgesetzt werden. Für Detailinformationen zur Programmiersprache C sei auf die Literatur verwiesen. 1 Elementare Grundlagen 1.1 Programmaufbau und grundlegende Begriffe Die Lehrprogramme zur FE-Methode setzen sich aus mehreren Teilen zusammen. Compileranweisungen (z.b. ) Deklaration globaler Objekte und Funktionen Hauptprogramm! #" $#%&#'( #) * +, *.- ) Funktionsdefinitionen Über die Compileranweisungen werden weitere Dateien in das Programm eingefügt. In den Dateien können Standardfunktionen (z.b. 0 und +12 zur Ein- und Ausgabe) deklariert und definiert sein. Im Hauptprogramm 3 wird die Programmaufgabe durch Anweisungen umgesetzt. Teilaufgaben können in Unterprogramme (Funktionen) ausgegliedert werden. Die Funktionen werden aus dem Hauptprogramm aufgerufen. Vor dem Programmdurchlauf müssen eigene Funktionen deklariert werden. Hinter dem Hauptprogramm befinden sich die Funktionsdefinitionen, in denen der Source-Code zur Bearbeitung der Teilaufgaben zu finden ist. 1.2 Einfache Datentypen und Programmelemente Sollen in einem Programm Berechnungen durchgeführt werden, ist für ganze Zahlen der Datentyp und für Gleitkommazahlen der Datentyp 312 4 vorhanden. Für Zeichen wie Buchstaben oder Ziffern gibt es den Datentyp 5 *. 6879487: ) 879487: Beispiel für eine Deklaration: können veränderliche Werte annehmen, sie heißen Variablen. 1

wird eine Konstante deklariert und definiert. Der Wert einer Konstanten kann während des Programmdurchlaufes nicht mehr verändert werden. Ein Ausdruck kann sich aus einer oder mehreren Konstanten, Variablen oder Funktionen zusammensetzen. Beispiele: 4 oder In Anweisungen werden die Programmieraufgaben umgesetzt. Einfache Beispiele sind die Initialisierung einer Variablen 312 4 ) 87 4 ) oder die Summierung zweier Zahlen 4 ). Anweisungen enden mit einem Semikolon. Anweisungen können in Anweisungsblöcken / zusammengefasst werden. Mit #1 312 4 ) 1.3 Operatoren Werden Daten bearbeitet, erfolgt die Beschreibung der Operation mittels eines Operators. Je nach Datentyp sind unterschiedliche Operationen zulässig. Für Daten des Dateityps Integer und Double seien folgende Operatoren vorgestellt: Operator Beispiel Bedeutung arithmetisch + +i unäres Plus - -i unäres Minus + i + 1 binäres Plus - i - 2 binäres Minus * i * 3 Multiplikation / i / 4 Division = i = 5 Zuweisung += i += 6 i = i + 6 -= i -= 7 i = i - 7 *= i *= 8 i = i * 8 /= i /= 9 i = i / 9 vergleichend < i < 3 kleiner als > i > 3 größer als <= i <= 3 kleiner gleich >= i >= 3 größer gleich == i == 3 gleich!= i!= 3 ungleich Bei Daten vom Dateityp Integer sind auch das Autoinkrement und Autodekrement zulässig: ++ i++ vorherige Inkremetierung um eins ++i nachfolgende Inkremetierung um eins - - i- - vorherige Dekrementierung um eins - -i nachfolgende Dekrementierung um eins 2

Zudem gibt es die logischen Operatoren && und : && if(x < 3 && y > 4) wenn x < 3 UND y > 4,... if(x < 3 y > 4) wenn x < 3 ODER y > 4,... Wichtig ist die Abstufung der Priorität, die die einzelnen Operatoren untereinander aufweisen. Bei Ausdrücken, in denen mehrere Operatoren aufeinander folgen ist damit definiert, in welcher Reihenfolge die Operatoren ausgeführt werden. An dieser Stelle sei auf die weiterführende Literatur verwiesen. 1.4 Kommentare Kommentar bis Zeilenende Kommentar über mehrere Zeilen möglich 1.5 Einfache Ein- und Ausgabe Folgende Ein- und Ausgabefunktionen werden über die Datei iostream.h eingebunden: 0 Standardeingabe über Tastatur +12 Standardausgabe auf Bildschirm # * * Standardfehlerausgabe auf Bildschirm Beispiele für Ein- und Ausgaben: 0 ) * 5 ( * * 4 +12 ) 43 * * * 4 +12 8 ) 43 0 0 4 * 5 Zu beachten ist die Pfeilrichtung. 3

TU Braunschweig 2 Einfache Sprachstrukturen 2.1 Auswahlanweisungen Hier muß eine Bedingung erfüllt sein, sodass die Anweisung ausgeführt werden. Sollen mehrere Anweisungen durchgeführt werden, wenn die Bedingung erfüllt ist, werden die Anweisungen mit { } zu einem Anweisungsblock zusammengefasst. Der Block wird anstelle einer Einzelanweisung hinter die Bedingung gesetzt. Gleiches gilt auch für Schleifenanweisungen (s. Kapitel 2.2). if-anweisung " #' %&#'! #" $#%&#') if-else-anweisung Ist die Bedingung nicht erfüllt, kann mit " #' %&#'! #" $#%&#' )! #" $#%&#' ) eine Alternative angewiesen werden. 2.2 Schleifen Schleifen werden eingesetzt, wenn Programmieraufgaben wiederholt ausgeführt werden müssen. Alle Schleifenanweisungen weisen eine Bedingung auf. Ist die Bedingung nicht erfüllt, wird der Schleifendurchlauf beendet. Die 1 * -Schleife beinhaltet im Gegensatz zu den anderen Schleifenanweisungen eine Initialisierung und Inkrementierung, die sich üblicherweise auf die Laufvariable beziehen. for-schleife 1 * " " " $ " %&#') " #' %&#') # " %&#'! #" $#%&#') while-schleife 53 " #' %&#'! #" $#%&#') do-while-schleife 31! #" $#%&#') 53 " #' %&#' 4

/ / TU Braunschweig 2.3 Weitere Anweisungen return-anweisung Mit einer return-anweisung kann eine Funktion augenblicklich verlassen werden. Der Anweisung kann ein Rückgabewert zugewiesen werden. Beispiel: Beenden des Hauptprogramms mit der Rückgabe des Wertes 0 3 *, *.- ) Die Bedeutung des Rückgabewertes wird detaillierter in Kapitel 4 erläutert. Soll kein Wert mit der return-anweisung zurückgegeben werden, schreibt man einfach: *, * ) 5

3 Erweiterte Datentypen ) 3.1 Zeiger Wird eine Integer-Variable deklariert und initialisiert (z.b. ) ist der Variablen auch eine Speicherplatzadresse zugewiesen. Siehe folgende Abbildung: Inhalt Adresse Name.. 23 4 4 4126. 4125 4126 x 4127 4128 yy. Über die Variable vom Datentyp Zeiger kann auf Adressen von Speicherbereichen zugegriffen werden. Mit ) wird beispielsweise auf eine Adresse einer Integer-Variablen gezeigt. Die Definition variabler Zeiger erfolgt durch den Operator *. Über den Operator werden Adressen angesprochen. Beispiel: ) * 0 * 0 3 * 3 * * 4 443 2 8 Auch Zeiger haben eine Adresse. Der Zugriff erfolgt über den Operator. Die Initialisierung variabler Zeiger kann auch mit den Befehlen und erfolgen: Datentyp * Name Datentyp ) 3 : * Datentyp * Name Datentyp ) * 0 43 3.2 Felder Mit eindimensionalen Feldern können Vektoren gespeichert werden. Die Definition erfolgt mit Datentyp Feldname [ Anzahl der Feldelemente ];. Die Anzahl der Feldelemente darf sich im Programmdurchlauf nicht ändern. Der Zugriff auf die Adressen und die im Feld abgespeicherten Werte ist über mehrere Befehle möglich: 31 4 * - ) 3 3 : * 6* - * - * 3 & * & * & * * 3 & * & * & * 9 * 3 & 0 * * 0 : * 3 & 0 * 6

TU Braunschweig * * * * * * * - * * * * 0 & & * * 0 & & Zweidimensionale Felder eignen sich zum Speichern von Matrizen. Definition eines 2D-Feldes: Datentyp Feldname [ Anzahl der Zeilen ] [ Anzahl der Spalten ];. Ein 2D-Feld lässt sich als Zeilenvektor deuten, in dem jedes Element wiederum ein Vektor ist. Die Syntax für den Zugriff auf Werte und Adressen zweidimensionaler Felder ist im folgenden nur soweit angegeben, wie sie in den Programmen zur FE-Methode eingesetzt wird: 31 4 - ) 3 : * - - - * * * * & 0. * * * * 0 0 * * * * & 0. * * 6 * & - * 6 * & * 6 & * 0. * 6 * & Darüber hinaus gibt es weitere Möglichkeiten für den Zugriff auf Inhalte und Adressen. 3.3 Dynamische Felder Mit Hilfe dynamischer Felder ist es möglich, den Speicherplatz für Felder während des Programmdurchlaufes zu reservieren und wieder freizugeben. Das Anfordern des Speicherplatzes kann mit dem Operator erfolgen, das Freigeben mit dem Operator. Beispiel für eindimensionale Felder: Datentyp *Feldname 1 * * Datentyp [ Anzahl der Feldelemente ];. * 0 43 [ ] Feldname;. Beispiel für zweidimensionale Felder: Datentyp **Feldname Datentyp* [ Anzahl der Zeilen ]; 1 * - ) Anzahl der Zeilen ) Feldname Datentyp [ Anzahl der Spalten ]; 1 * - ) Anzahl der Zeilen ) [ ] Feldname ) [ ] Feldname; 1 * * * 0 43 7

3.4 Referenzen Eine Referenz verweist auf ein anderes Objekt. Sie wird mit dem Operator & gekennzeichet. Referenzen müssen deklariert und durch ein anderes Objekt, z.b. eine Variable initialisiert werden. Es ist unzulässig Referenzen einen Wert zuzuweisen. Beispiel: ) & * 12 * * 34 & 4 ) * * 4 ) * * 4 5 * 5 5 4 * 4 Funktionen Wie schon erwähnt, werden viele Teilaufgaben in Funktionen ausgelagert. Die Folge von Anweisungen, die diese Teilaufgabe umsetzt, ist in der Funktionsdefinition zu finden. Um ausgeführt zu werden, muss die Funktion aufgerufen werden. Dies kann im Hauptprogramm 3 oder aus anderen Funktionen heraus geschehen. Vor dem Hauptprogramm muss die Funktion deklariert werden. 4.1 Funktionsdefinition Syntax der Funktionsdefinition: Rückgabetyp Funktionsname ( Liste der formalen Parameter ) { Anweisungen; } Beispiele: 1 0 31 4 * 7 & & 7 31 4 * 7 312 4 * 43 8 0 ) / 0 * #1 0 0 ) / Über den Rückgabetyp ist der Datentyp des Wertes festgelegt, der mit der return-anweisung zurückgegeben werden kann. Im zweiten Beispiel (Funktion * ) wird mit der return-anweisung ein Zeiger vom Datentyp Integer zurückgegeben. Im ersten Beispiel (Funktion ) wird kein Wert zurückgegeben. Der Rückgabedatentyp 1 ist. In der Parameterliste sind die Parameter, die in den Funktionsquellcode übergeben werden sollen, samt Datentyp aufzulisten. 8

4.2 Funktionsdeklaration Syntax der Funktionsdeklaration: Rückgabetyp Funktionsname ( Parameterliste ); Beispiele: 1 0 31 4 7 7 31 4 37 31 4 0 ) 0 * #1 ) In der Parameterliste müssen die Datentypen der übergebenen Parameter angegeben werden. Durch die Deklaration sind dem Compiler die Funktionsnamen und Parameterdatentypen bekannt. Bei einem Funktionsaufruf kann damit der Compiler das Programm auf Syntaxfehler hin überprüfen. 4.3 Funktionsaufruf Syntax des Funktionsaufrufes: Funktionsname ( Liste der aktuellen Parameter ); Beispiele: 0 * 37 & 7 * 9 7 * 43 9 ) 0 *. ) Durch den Aufruf einer Funktion wird der Programmcode der Funktionsdefinition ausgeführt. Die Funktion erhält die Liste der aktuellen Parameter. Damit wird die Liste der formalen Parameter mit den aktuellen Parametern aus dem Funktionsaufruf belegt. 4.4 Parameterübergabe Bei der Übergabe per Wert wird der Wert kopiert und der Funktion übergeben. Innerhalb der Funktion kann der Wert des Parameters verändert werden. Die Änderung bleibt nach dem Verlassen der Funktion aber nicht wirksam. Die Übergabe per Zeiger übergibt einen Zeiger an die Funktion. Die Adresse, auf die der Zeiger zeigt, kann innerhalb der Funktion geändert werden. Die Änderung bleibt nach dem Verlassen der Funktion nicht wirksam. Bei variablen Zeigern kann der Inhalt der Adresse in der Funktion geändert werden. Diese Änderung bleibt auch nach dem Verlassen der Funktion gültig. Bei der Übergabe als Referenz wird der Funktion keine Kopie des Parameters übergeben. In Funktionsdeklaration und -definition werden Referenzen mit dem Operator & gekennzeichnet. Werte von Parametern können in der Funktion verändert werden. Diese Änderungen bleiben auch nach dem Verlassen der Funktion erhalten. 9

1 Die Rückgabe mit return erlaubt die Rückgabe eines Wertes des vorgegebenen Datentypes. Ist der Datentyp (s. oben Beispiel-Funktion 0 ), wird kein Wert zurückgegeben. Der Rückgabewert der zweiten Beispiel-Funktion (s. oben) ist dann ein Zeiger vom Typ Integer und gibt hier die Adresse einer Integer-Variablen zurück. 5 Ein- und Ausgabe mittels Bibliotheksfunktionen Sollen Daten aus Ascii-Dateien gelesen und in Dateien geschwieben werden, stehen mit dem Headerfile stdio.h folgende C-Funktionen zur Verfügung: 1 3& Öffnen einer Datei 1 Schliessen einer Datei # Einlesen von Daten aus einer Datei * Schreiben von Daten in eine Datei Bezüglich der genauen Syntax der genannten Funktionen sei auf die Literatur verwiesen. Weiterführende Literatur: Ulrich Breymann: C++ Eine Einführung; Hanser-Verlag, 1999; Bernd Möller; Grundlagen der Bauinformatik, Einführung in C++, Teil 1; Vorlesungsmanusskript; TU Braunschweig, 1994; Bjarne Stroustrup; Die C++ Programmiersprache; 4. aktualisierte und erweiterte Auflage; Addison-Wesley Verlag, 2000; 10