Einf hrung in die programmiersprache c c
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

Einführung in die Programmiersprache C/C++ PowerPoint PPT Presentation


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

Einführung in die Programmiersprache C/C++. “Montag” Andreas Döring [email protected] SS 2004. Organisation. Homepage: www.inf.fu-berlin.de/inst/agbio

Download Presentation

Einführung in die Programmiersprache C/C++

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


Einf hrung in die programmiersprache c c

Seminar: "Einführung in C/C++"

Einführung in die Programmiersprache C/C++

“Montag”

Andreas Döring

[email protected]

SS 2004


Organisation

Seminar: "Einführung in C/C++"

Organisation

  • Homepage: www.inf.fu-berlin.de/inst/agbio

  • Vormittags: 10.00-12.00 Uhr SeminarMo: Raum 031 (Arnimallee 2-6)Di: Raum 005 (Takustr. 9)Mi: Raum 055 (Takustr.9)Do: Raum 005 (Takustr.9)

  • Nachmittags: Übungen am RechnerRaum 017 (Arnimallee 2-6)

  • Es gibt keine benoteten Scheine

  • Fortsetzung der Veranstaltung:“Hardcore C++” jeweils Freitag 10-12


Warum sind wir hier

Seminar: "Einführung in C/C++"

Warum sind wir hier?

Warum überhaupt C/C++?

  • C++ ist schnell.

  • C++ ist weit verbreitet.

  • C++ verfügt über viele Sprachkonstrukte.

  • C++ erlaubt „maschinennahes“ Programmieren.

    Ziel des Kurses

  • Die wichtigsten Sprachelemente lernen.

  • Einfache Programme in C++ schreiben.

    Eventuell werden gewisse grundlegende Programmierkenntnisse vorausgesetzt.


Berblick

Seminar: "Einführung in C/C++"

Überblick

Mo.: “Grundlagen”Compiler-Workflow, Deklarationen, Operatoren, Anweisungen, Funktionen, ...

Di.: “Pointermagie”

Zeiger, Referenzen, Felder, Speicherverwaltung

Mi.: “Klassen”

Klassendefinition, Member, Vererbung

Do.: “Mehr Klassen”Operatoren, Polymorphie, Standardbibliotheken


Die geschichte von c c

Seminar: "Einführung in C/C++"

Die Geschichte von C/C++

Was man wissen muss:

  • C/C++ hat eine Geschichte!

  • C++ ist aus C entstanden und (weitgehend) abwärts-kompatibel.

  • Es gibt inzwischen einen Standard.

  • Es gibt noch keinen Compiler, der den Standard vollständig erfüllt (aber alle entwickeln sich in diese Richtung)


Hallo berlin

Seminar: "Einführung in C/C++"

“Hallo Berlin!”

Ein einfaches C++-Programm:

Speichern als test.cpp ab und compiliere mit:

g++ test.cpp –o test

Dann Programm ausführen mit:

./test

  • #include <iostream>

  • int main()

  • {

  • std::cout << "Hallo Berlin!";

  • return 0;

  • }


Der workflow

Seminar: "Einführung in C/C++"

Der Workflow

  • Input: .cpp und .h Dateien.

  • Für jede .cpp Datei:

    • Preprocessor: Headerdateien (.h) einfügen.

    • Compiler: Erzeugt .obj Dateien.

  • Linker:

    • Erzeugt .exe Programm aus allen .obj Dateien.

    • Nimmt Stücke aus verwendeten Libraries.

  • Output: .exe Datei


Der preprocessor

Seminar: "Einführung in C/C++"

Der Preprocessor

  • Befehle für den Preprocessor beginnen mit #.

  • #include fügt eine Datei in den Quelltext ein.(z.B. eine Headerdatei)

  • #define definiert ein Macro: Das Schlüsselwort wird im ganzen Programm durch den angegebenen Text ersetzt.

  • #include <iostream>

  • #define PI 3.141596


Ein c c programm ist ein text

Seminar: "Einführung in C/C++"

Ein C/C++-Programm ist ein Text

  • Quelltext ist case-sensitiv.

  • Preprocessor: Befehle enden mit Zeilenumbruch.Compiler: Zeilenumbruch ist whitespace.

  • Ausnahme: Kommentarezeilen beginnen mit // und enden mit dem nächsten Zeilenumbruch.Bsp:

    return 0; //gib eine 0 zurueck

  • Anweisungen enden mit einem ; -Zeichen.Kein ; steht jedoch...

    ... hinter Preprocessor-Befehlen

    ... hinter } -Zeichen (außer bei Klassen und Enums)


Deklarationen definitionen

Seminar: "Einführung in C/C++"

Deklarationen & Definitionen

Deklaration von X =

Beschreibung, was X ist

Definition von X =

Deklaration von X

+ Erzeugung von X

Anmerkung: Ein X darf beliebig oft deklariert, aber nur einmal definiert werden.


Variablen

Seminar: "Einführung in C/C++"

Variablen

Variablen definieren:

int j;

float x, y;

Optional sind auch Initialisierungen möglich:

int i = 32;

float z = 2.781;

char c = 'x';

Deklaration von Variablen mit extern:

extern int i;


G ltigkeit von deklarationen

Seminar: "Einführung in C/C++"

Gültigkeit von Deklarationen

Regel 1:

»Ein Symbol ist im Programmtext nurunterhalb seiner Deklaration bekannt.«

Regel 2:

»Eine Deklaration, die innerhalb eines

{ } -Blockes steht, gilt auch nur lokal innerhalb dieses Blockes.«


Eingebaute typen

Seminar: "Einführung in C/C++"

“Eingebaute” Typen

Jede Variable kann nur Werte eines bestimmten Typs speichern.

char:Zahlen von 0 bis 255

signedchar:Zahlen von -128 bis 127

shortint:Zahlen von -32768 bis 32767

unsignedshortint: Zahlen von 0 bis 65535

int:Zahlen von -231 bis 231-1

unsigned int:Zahlen von 0 bis 232-1

bool:0 oder 1


Weitere eingebaute typen

Seminar: "Einführung in C/C++"

weitere “eingebaute” Typen

Typen zur Speicherung von Kommazahlen:

float:Fließkommazahl mit einfacher Genauigkeit

double:Fließkommazahl mit

doppelter Genauigkeit


Und was ist mit buchstaben

Seminar: "Einführung in C/C++"

... und was ist mit Buchstaben?

Buchstaben sind ganze Zahlen:

'A' == 65 einfache Anführungszeichen

für einzelne Zeichen:

ASCII-Code

Auch Wahrheitswerte sind Zahlen:

true == 1 (und alle anderen Zahlen 0)

false == 0

(Zeichenketten sind allerdings komplizierter...)


Felder arrays

Seminar: "Einführung in C/C++"

Felder (arrays)

Felder = Mehrere Variablen, die im Speicher direkt hintereinander liegen.

int X[20]; Ein Feld von 20 int-Variablen

int X[3]={2,3,5};Auch Felder kann man

initialisieren.

int X[]={1,2,3,4};Bei initialisierten Feldern kann man sich

die Dimension sparen.


Strings sind felder

Seminar: "Einführung in C/C++"

Strings sind Felder

In C sind Stings einfach Arrays von char:

char X[] = "hallo";

ist das gleiche wie

char X[] = {104, 97, 108, 108, 111, 0};

Man beachte die Null am Ende!


Zeiger pointers

Seminar: "Einführung in C/C++"

Zeiger (pointers)

Zeiger sind Variablen, deren Inhalt auf andere Variablen verweist.

int * X; Zeiger auf eine int Variable

float * Y; Zeiger auf eine flaot Variable


Kleine lesehilfe

Seminar: "Einführung in C/C++"

kleine Lesehilfe

Faustregel:

Bsp:

char * X1 [3]; array von pointern

char (* X2) [3]; pointer auf array

int X3 [10][3]; array von arrays

int * const X4; const pointer auf int

int const * X5; pointer auf const int

»Variablendefinitionen liest man von innen nach außen.«


Casts

Seminar: "Einführung in C/C++"

Casts

Einige Typen werden von C/C++ automatisch als ein anderer Typ interpretiert.

Bsp:

short s = 30000;

int i = s;  Kein Problem.

char c = s;  Fehler! Passt nicht!

Ein Cast erzwingt eine Uminterpretation:

char c = (char) s;  Geht jetzt: c enthält

nun 30000 modulo 256


Zuweisungen

Seminar: "Einführung in C/C++"

Zuweisungen

Variablen kann man Werte zuweisen:

  • Durch die Initialisierung

  • Durch eine Zuweisung

    Bsp:

    int x = 12;// initialisiert x auf 12

    x = 13;// setzt den Wert auf 13

    int y = x + 1;// initialisiert y auf 14

    Allgemein:

    L-VALUE = R-VALUE;


Operatoren

Seminar: "Einführung in C/C++"

Operatoren

Es gibt in C/C++ die üblichen Operatoren.

Besonderheiten:

  • Test auf Gleichheit ist == (und nicht etwa =)

  • Test auf Ungleichheit ist !=

  • & und | stehen für bitweise UND bzw. ODER,&& und || logisches UND bzw. ODER sind

  • ~ steht für bitweises NOT,! steht für logisches NOT


Noch mehr operatoren

Seminar: "Einführung in C/C++"

...noch mehr Operatoren

Increment und Decrement:

++X; X = X + 1;

--X;  X = X - 1;

Zuweisungsoperatoren:

z.B:

X += 20; X = X + 20;

X -= 12;  X = X - 12;

X *= Y;  X = X * Y;

X /= 2;  X = X / 12;

X <<= 1;  X = X << 1;

...


Anweisungen

Seminar: "Einführung in C/C++"

Anweisungen

Es gibt (unter anderem) folgende Anweisungen:

  • if und else

  • while und do

  • for

  • switch-case


If und else

Seminar: "Einführung in C/C++"

if und else

if (TEST)

{

IFBLOCK

}

else

{

ELSEBLOCK

}


While

Seminar: "Einführung in C/C++"

while

while (TEST)

{

BLOCK

}


Do while

Seminar: "Einführung in C/C++"

do-while

do

{

BLOCK

} while (TEST);


Einf hrung in die programmiersprache c c

Seminar: "Einführung in C/C++"

for

for (INIT;TEST;STEP)

{

BLOCK

}


Switch case

Seminar: "Einführung in C/C++"

switch-case

switch (X)

{

case 1: case 2:

//Code für X==1 und X==2

break;

case 3:

//Code für X==3

break;

default:

//Code für alle anderen Werte von X

}


Quiz was gibt diese programm aus

Seminar: "Einführung in C/C++"

Quiz: Was gibt diese Programm aus?

int i = 14;

for (i = 0; i < 10; ++i);

{

std::cout << i;

}


Funktionen

Seminar: "Einführung in C/C++"

Funktionen

Definition:

Deklaration:

int max (int x, int y)

{

if (x > y)

{

return x;

}

return y;

}

int max (int x, int y);


Nochmal funktionen

Seminar: "Einführung in C/C++"

...nochmal Funktionen

Funktionen ohne Rückgabewert:

Funktionsaufruf:

Argumente werden by value übergeben.

void print (int x)

{

std::cout << x;

}

int y = max(1, 2);

print (y);


  • Login