einf hrung in die programmiersprache c c
Download
Skip this Video
Download Presentation
Einführung in die Programmiersprache C/C++

Loading in 2 Seconds...

play fullscreen
1 / 32

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


  • 64 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Einführung in die Programmiersprache C/C++' - montana-bond


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
organisation
Seminar: "Einführung in C/C++"Organisation
  • Homepage: www.inf.fu-berlin.de/inst/agbio
  • Vormittags: 10.00-12.00 Uhr Seminar Mo:  Raum 031  (Arnimallee 2-6) Di:  Raum 005  (Takustr. 9) Mi:  Raum 055  (Takustr.9) Do:  Raum 005  (Takustr.9)
  • Nachmittags: Übungen am Rechner Raum 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 nur unterhalb 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

}

slide28
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);

ad