Gliederung des inhalts
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

Gliederung des Inhalts PowerPoint PPT Presentation


  • 39 Views
  • Uploaded on
  • Presentation posted in: General

Gliederung des Inhalts. Einführung in die Planung und Entwicklung kleiner Computerprogramme. Unterscheidung Compiler und Linker Entwicklungsumgebung zur Erstellung von Computerprogrammen Aufbau eines einfachen Programms (Eingabe, Verarbeitung, Ausgabe)

Download Presentation

Gliederung des Inhalts

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Gliederung des inhalts

Gliederung des Inhalts

Einführung in die Planung und Entwicklung kleiner Computerprogramme

  • Unterscheidung Compiler und Linker

  • Entwicklungsumgebung zur Erstellung von Computerprogrammen

  • Aufbau eines einfachen Programms (Eingabe, Verarbeitung, Ausgabe)

  • Dokumentation von Programmen (Struktogramme)

  • Kontrollstrukturen (Verzweigungen, Schleifen)

  • Einsatz von Funktionen

  • Datenstrukturen (Felder)

  • Nutzung von Zeigern

  • Testen von Programmen mit geeigneten Hilfsmitteln

  • Fehlersuche in selbsterstellten Programmen


Sprachbeschreibung

Sprachbeschreibung

C++ basiert auf dem ANSI-Standard

(American National Standards Institute)

  • Darstellung der Sprache ist Plattform unabhängig

  • Hybridsprache (C plus OOP- objektorientierte Programmiersprache)

C++ ist von Bjarne Stroustrup bei AT&T entwickelt

(um. 1980)


Erstellen eines c programms

Erstellen eines C++-Programms

Editor

Header-Dateien

Quelldatei

Compiler

Objektdatei

Standard-bibliothek

Linker

weitere Bibliotheken,

Objektdateien

ausführbare Datei


Aufbau eines programms

Funktionsname

Präprozessor-

Anweisungen

Typ der Funktion

}

Beginn der Funktion

Ende der Funktion

Funktionsblock

Aufbau eines Programms

#include <iostream>

//Header-Dateien

int main ()

{

Ausführungen des

Programms

}

4


Beispielprogramm

Beispielprogramm

#include <iostream>

using namespace std;

int main()

{

cout << "Viel Spass mit c++!!„ << endl;

return 0;

}

Befehl „Ausgeben auf den Bildschirm“:

cout<<Variable_1<<Variable_2<<...Variable_n;

cout<< „Beliebiger Text“;

5


Erweiterung des beispielprogramms

Erweiterung des Beispielprogramms

Lassen Sie folgendes auf dem Bildschirm ausgeben:

C unterscheidet zwischen Groß- und Kleinschreibung.

Die Programmausführung beginnt bei der main-Funktion.

Geschweifte Klammern markieren die Funktionsgrenze.

Ein Semikolon markiert das Ende einer Anweisung.

6


Elementare datentypen

Elementare Datentypen

  • Verschiedene Daten werden im Programm verarbeitet z. B. Zeichen, Ganzzahlen oder Gleitpunktzahlen

  • diese werden unterschiedlich bearbeitet und gespeichert

  • ein Datentyp bestimmt:1. die Art der internen Darstellung2. die Größe des zu benötigten Speicherplatzes

  • der Compiler kann leichter Fehler erkennen

7


Elementare datentypen1

Elementare Datentypen*

Ganzzahlen

short

int

long

Gleitpunktzahlen

float

double

long double

Wahrheitswerte

bool

Zeichen

char

Elementare Datentypen

*ohne void

8


Schreibkonventionen in c

Schreibkonventionen in C++

  • bei Namen von Variablen, Funktionen, Klassen und Makronamen muss folgendes beachtet werden:

    • englische Alphabet

    • deutsche Umlaute dürfen nur in Kommentaren oder Zeichenketten vorkommen

    • Ziffern 0 bis 9 (dürfen nicht am Anfang stehen)

    • Unterstrich „_“

    • Länge nicht vorgegeben (ANSI min. 31 Zeichen)

Es wird zwischen Groß- und Kleinschreibung unterschieden!!!


Elementare datentypen ganzzahlen

Elementare Datentypen - Ganzzahlen

10


Elementare datentypen gleitpunktzahlen

Elementare Datentypen - Gleitpunktzahlen

11


Operatoren grunds tzliches

Operatoren - Grundsätzliches

  • In C/C++ stehen u. a. folgende Gruppen von Operatoren zur Verfügung

  • arithmetische Operatoren für die grundlegenden Rechenoperationen

  • Vergleichsoperatorenzur Formulierung von Bedingungen

  • logische Operatorenzur Verknüpfung von Einzelbedingungen zu einer komplexen Bedingung

  • Hinweis:

  • Ähnlich der Regel „Punktrechnung vor Strichrechnung“ in der Mathematik, gibt es in C/C++ eine feste Reihenfolge bei Auswertung der einzelnen Operatoren in komplexeren Ausdrücken. Insgesamt gibt es in C/C++ 16 Prioritätsstufen (Rangfolge 1: höchste Priorität, Rangfolge 16: niedrigste Priorität).

  • Bei Zweifeln hinsichtlich der Prioritäten der Operatoren ist es ratsam, zusätzliche Klammern zu setzen.

12


Beispielprogramm summe bilden

Beispielprogramm „Summe bilden“

  • Schreiben Sie ein Programm, das zwei Fließkommazahlen über die Tastatur einliest und dann die Summe bildet und ausgibt.

  • Schritt Struktogramm

  • Schritt Programmieren

[griech.], Darstellung des Ablaufs eines

Algorithmus bzw. Programms mit speziellenSymbolen. (c) Meyers Lexikonverlag.

Befehl „Einlesen über die Tastatur“:

cin>>Variable_1>>Variable_2>>...Variable_n;

Ergänzungen:

- Differenz, Produkt und Quotient

13


Beispiel summe bilden

Beispiel: Summe bilden

Struktogramm:

14


Arithmetische operatoren

Arithmetische Operatoren

Arithmetische Operatoren dienen der Durchführung grundlegender Rechenoperationen.

15


Vergleichsoperatoren

Vergleichsoperatoren

Vergleichsoperatoren werden benötigt, um Bedingungen zu formulieren.

16


Logische operatoren

Logische Operatoren

Sollen mehrere Bedingungen berücksichtigt werden, so können diese durch logische Operatoren miteinander kombiniert werden.

17


If else

if (Ausdruck)

true false

Anweisung1

Anweisung2

if-else

Befehl „Verzweigungen mit if-else“:

if (Ausdruck) z. B. a<b

Anweisung;

else

Anweisung;

Struktogramm:

18


Taschenrechner

Taschenrechner

19


Schleifen i bersicht

Schleifen I – Übersicht

Schleifentypen

geschlossene Schleifen

offene Schleifen

kopfgesteuert

fußgesteuert

Der Programmierer weiß bereits beim Programmieren wie oft die Schleife durchlaufen werden soll.

Wie oft die Schleife durchlaufen wird, ist nicht zahlenmäßig festgelegt, sondern hängt z. B. von Benutzereingaben ab.

20


Schleifen ii geschlossene schleife

Schleifen II – geschlossene Schleife

C++ - Quellcode

short main( )

{

short max_zahl, z;

cout << “Wie weit soll ich zaehlen?“;

cin >> max_zahl;

for (z = 1; z <= max_zahl; z++)

{

cout << “z = “ << z << endl;

}

cout << “Schleife beendet, z= “ << z;

getch();

return 0;

} //Ende von main

21


Schleifen iii kopfgesteuerte offene schleife

Schleifen III – kopfgesteuerte offene Schleife

C++ - Quellcode

short main( )

{

short zahl = 0, i = 1;

cout << “Bitte eine Zahl eingeben: “;

cin >> zahl;

while(zahl < 100) //Schleifenkopf mit

{ //Bedingung

zahl = zahl + 1;

cout << i << “. Schleifendurchlauf “;

cout << “zahl “ << zahl << endl;

i++;

} //Schleifenfuß ohne Bedingung

cout << “Schleife beendet, zahl= “ << zahl;

getch();

} //Ende von main

22


Schleifen iv fu gesteuerte offene schleife

Schleifen IV – fußgesteuerte offene Schleife

C++ - Quellcode

short main( )

{

short zahl = 0, i = 1;

cout << “Bitte eine Zahl eingeben: “;

cin >> zahl;

do //Schleifenkopf ohne Bedingung

{

zahl = zahl + 1;

cout << i << “. Schleifendurchlauf “;

cout << “zahl “ << zahl << endl;

i++;

} while(zahl < 100); //Schleifenfuß mit Bed.

cout << “Schleife beendet, zahl= “ << zahl;

getch();

} //Ende von main

23


Pr prozessor compiler und linker

Präprozessor, Compiler und Linker

Mit Hilfe des include-Befehls werden sogenannte Header-Dateieneingefügt. Der Präprozessor (Übersetzungsprogramm) kopiert dieHeader-Datei in den Quellcode hinein (vor der Compilierung). In ihr

stehen Informationen zur Syntax von Befehlen, so das der CompilerFehler erkennen kann. Neben den Quelltextergänzungen entfernt der Präprozessor auch alle Kommentare, Leerzeilen und Leerzeichen aus dem Quellcode. Der Compiler übersetzt dann den Quellcode in maschinenlesbaren Objektcode (.obj Datei). Syntaktische Fehler im Programm werden

vom Compiler angezeigt und müssen korrigiert werden.

Dem Linker obliegt jetzt die Aufgabe, diese Objektcode-Dateien

sowie den Objektcode der benutzten Bibliotheksfunktionen (.lib ) in

eine Programmdatei (.exe unter Windows) zusammenzubinden.

24


Namensbereiche

Namensbereiche

Um Namenskonflikte bei globalen Bezeichnern auszuschalten , siehtC++ die Bildung von Namensbereichen vor. Innerhalb eines Namens-

bereichs können Bezeichner verwendet werden, ohne Rücksicht darauf, ob sie bereits außerhalb definiert wurden.

Mit Hilfe des Schlüsselwortes namespace kann der Programmierersomit den globalen Gültigkeitsbereich in Unterbereiche aufteilen.

25


Bibliothek

Bibliothek

Mit Bibliothek bezeichnet man in Programmiersprachen eine Sammlungvon Funktionen und Konstanten, die nicht zu einem Programm selbst gehört, sondern diesem und zumeist auch anderen Funktionen und Konstanten zur Verfügung stellt. In der Regel sind Bibliotheken für einenbreiten Einsatz konzipiert und sollten daher möglichst flexible Funktionen enthalten und vor allem gut dokumentierte Schnittstellen anbieten. Bei jedem C++-Compiler sollten die C++-Standardbibliotheken vorhanden sein, die z.B. einige abstrakte Datenstrukturen wie Listen u.ä. implemen-tieren. Zusätzlich gibt es oft Bibliotheken, die den Zugriff auf Hardware, graphische Oberfläche oder andere Teile einer Plattform wesentlich vereinfachen. Bibliotheken werden i.d.R. in schon compilierter Form genutzt, sie werden selten mit einem Projekt compiliert und häufig liegt der Quelltext auch gar nicht vor (Urheberschutz).

26


Definition deklaration und initialisierung

Definition, Deklaration und Initialisierung

  • Variablen dürfen in einem Programm außerhalb oder innerhalb vonFunktionen definiert werden. Der Unterschied ist folgender:

  • Eine außerhalb jeder Funktion definierte Variable ist global, d. h. in allen Funktionen verwendbar.

  • Eine innerhalb einer Funktion definierte Variable ist lokal, d. h. nur in derselben Funktion verwendbar.

    Lokale Variablen werden normalerweise unmittelbar hinter einer sich öffnenden Klammer – am Beginn einer Funktion – definiert.Sie können aber überall dort stehen, wo eine Anweisung erlaubt ist.

27


Definition deklaration und initialisierung1

Definition, Deklaration und Initialisierung

...

float zahl, a;//Definition und Deklaration globaler Variablen

int main ()

{

int i; //Definition und Deklaration lokaler Variablen

short c = 0; //Definition, Deklaration und Initialisierung einer //lokalen Variablen

i = 100; // Initialisierung von i

...

}

Initialisierung bedeutet einer Variablen eine Startwert zu geben. Wird es nicht gemacht, so steht bei einer lokalen Variablen irgendein Wert. (z. B. c = c +1 (Zähler) wird c nicht initialisiert so stehtnachdem ersten Durchlauf keine 1 in c.)

28


Zahlenraten

Zahlenraten

Programmieren Sie folgende Aufgabenstellung: PC soll eine Zahl zwischen 1 und 100 erraten

Vorgehensweise:

User soll sich eine Zahl zwischen 1 und 100 merken

PC gibt eine Zahl aus und fragt den User...

Wenn die Zahl nicht erraten wurde gibt der PC eine weitere Zahl aus und fragt wieder...

Vielen Dank für das Spiel

Möchten Sie ein weiteres Spiel?

(Ergänzungen: Programm gibt die Anzahl der Versuche aus und Programm merkt ob der User schummelt)

Erstellen Sie als erstes ein Struktogramm mit allen wichtigen „Befehlen“ (Variablendefinitionen, -deklarationen, -initialisierungen, mathematische Operationen usw. )

29


Zeiger i

Adressoperator

Dereferenzierungs-operator

Zeiger I

#include <iostream.h>

void main(void){ int zahl; // Integer Variable int* pZeigerAufZahl; // Zeiger auf Integer-Variable

pZeigerAufZahl = &zahl; zahl = 5;

cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

zahl = 10; cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

*pZeigerAufZahl = 20; cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

cout << &pZeigerAufZahl;

}

Bildschirmausgabe

50x4cc723e85

100x4cc723e8 10

200x4cc723e8 20

0x4cc723e4

30


Zeiger ii

Adresse0x4cc723e8

Inhalt?

Adresse0x4cc723e4

Inhalt?

Adresse0x4cc723e8

Inhalt5

Adresse0x4cc723e4

Inhalt0x4cc723e8

Adresse0x4cc723e8

Inhalt10

Adresse0x4cc723e4

Inhalt0x4cc723e8

Adresse0x4cc723e8

Inhalt20

Adresse0x4cc723e4

Inhalt0x4cc723e8

Zeiger II

Speicherinhalte

#include <iostream.h>

void main(void){ int zahl; int* pZeigerAufZahl;

pZeigerAufZahl = &zahl; zahl = 5;

cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

zahl = 10; cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

*pZeigerAufZahl = 20; cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

cout << &pZeigerAufZahl;

}

zahl

pZeigerAufZahl

31


Operatoren grunds tzliches1

Operatoren – Grundsätzliches

  • In C/C++ stehen u. a. folgende Gruppen von Operatoren zur Verfügung

  • arithmetische Operatoren für die grundlegenden Rechenoperationen

  • Vergleichsoperatorenzur Formulierung von Bedingungen

  • logische Operatorenzur Verknüpfung von Einzelbedingungen zu einer komplexen Bedingung

  • Zuweisungsoperatoren

  • Postfix – Operatoren

  • Zeiger – Operatoren

  • diverse Kategorien

  • Hinweis:

  • Ähnlich der Regel „Punktrechnung vor Strichrechnung“ in der Mathematik, gibt es in C/C++ eine feste Reihenfolge bei Auswertung der einzelnen Operatoren in komplexeren Ausdrücken. Insgesamt gibt es in C/C++ 16 Prioritätsstufen (Rangfolge 1: höchste Priorität, Rangfolge 16: niedrigste Priorität).

  • Bei Zweifeln hinsichtlich der Prioritäten der Operatoren ist es ratsam, zusätzliche Klammern zu setzen.

32


  • Login