28
Einführung in die Programmiersprache C 1.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig

Wie schreibt man ein Programm in C?

  • Upload
    olympe

  • View
    63

  • Download
    0

Embed Size (px)

DESCRIPTION

Einführung in die Programmiersprache C 1.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig. Wie schreibt man ein Programm in C? . In Texteditor Quellcode schreiben Benutzung eines Compilers (hier gcc -Compiler), um daraus ein Programm zu erstellen (kompilieren). - PowerPoint PPT Presentation

Citation preview

Page 1: Wie schreibt man ein Programm in C?

Einführung in die Programmiersprache C

1.Tag

Institut für Mathematische Optimierung -

Technische Universität Braunschweig

Page 2: Wie schreibt man ein Programm in C?

Wie schreibt man ein Programm in C?

• In Texteditor Quellcode schreiben• Benutzung eines Compilers (hier gcc-Compiler), um

daraus ein Programm zu erstellen (kompilieren)

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 3: Wie schreibt man ein Programm in C?

Quellcode schreiben

• Zuerst einmal öffnet man einen Texteditor (emacs, kwrite, kate,…) über folgenden Aufruf in der Shell (Terminal):

emacs programmname.c• In den Texteditor schreibt man nun den Quellcode• Ist man damit fertig, so speichert man diesen ab

(durch den Aufruf emacs programmname ist der Quellcode nun unter programmname.c gespeichert)

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 4: Wie schreibt man ein Programm in C?

Kompilieren

• Nun kann man, in dem Verzeichnis, in dem die Datei programmname.c gespeichert wurde, unter folgendem Befehl, ein Programm erstellen:

gcc –Wall –o name programmname.c• Hierbei steht gcc für den verwendeten Compiler• Durch –Wall werden alle Warnungen durch den

Compiler ausgegeben

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 5: Wie schreibt man ein Programm in C?

Kompilieren• -o name bewirkt, dass das erzeugte Programm den Namen

name trägt• Durch den Befehl:

gcc programmname.c wird das Programm ebenfalls erzeugt, in diesem Fall trägt es aber (standardtisiert) den Namen a.out (außerdem werden keine Warnungen durch den Compiler ausgegeben)

• Mit dem Befehl:./name(bzw.: ./a.out) wird das Programm dann gestartet

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 6: Wie schreibt man ein Programm in C?

Aufbau einer Funktion• rückgabetyp funktionsname( Parameterliste ) {

Anweisungen; }

• Der Rückgabetyp gibt den Datentyp (wird gleich erläutert) an, der von der Funktion zurückgegeben werden soll

• Mit ihrem Namen kann die Funktion aufgerufen werden• Die Parameterliste gibt die Parameter an, die der Funktion

übergeben werden müssen• Die von den geschweiften Klammern umgebenen

Anweisungen werden jeweils mit einem ; abgeschlossen.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 7: Wie schreibt man ein Programm in C?

Die main-Funktion

int main(void) { Anweisungen; return 0; }

• Die main-Funktion ist die Hauptfunktion eines jeden Programms. Sie gibt mittels return 0; einen Integer-Wert zurück.

• Der vorgestellten main-Funktion werden keine Parameter übergeben, deswegen steht in der Parameterliste void (leer)Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 8: Wie schreibt man ein Programm in C?

Schlüsselwörter in C (nach ANSI-C 89)

auto break case charconst continue default dodouble else enum externfloat for goto ifint long register returnshort signed sizeof staticstruct switch typedef unionunsigned void volatile while

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 9: Wie schreibt man ein Programm in C?

DatentypenDatentyp Bits Verwendung fürchar 8 Zeichen (auch Zahlen)int 16-32 Ganze Zahlenfloat 32 Gleitkommazahlen (einfache Genauigkeit)double 64 Gleitkommazahlen (doppelte Genauigkeit)

Beispiel: Binärdarstellung der Zahl -41-41 = - 2^5 + 2^3 + 2^0

- 1 0 1 0 0 1

Darstellung mit 7 Bits

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 10: Wie schreibt man ein Programm in C?

Typenmodifizierer• long vergrößert i.d.R. die Speicherkapazität, die für einen Wert

eines Datentyps reserviert wird. long kann nur auf int und double angewandt werden. (ein long double hat bis zu 80 Bit)

• short verkleinert i.d.R. die Speicherkapazität, die für einen Wert eines Datentyps reserviert wird. short wird nur auf int angewandt. (ein short int hat nur 16 Bit)

• signed kann nur auf char und int angewandt werden. Das erste Bit der Speicherplatzkapazität wird für das Vorzeichen (+,-) verwendet.

• unsigned kann ebenfalls auf char und int angewendet werden. Die entsprechenden Daten besitzen dann kein Vorzeichen. Entsprechend größer kann dann die Zahl sein.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 11: Wie schreibt man ein Programm in C?

Variablendeklaration

• Ein Variablenname kann aus Buchstaben (keine Umlaute und Sonderzeichen), Ziffern und Unterstrichen bestehen (an erster Stelle weder Ziffer noch Unterstrich)int zahl1; int zahl2;deklariert zwei Variablen zahl1 und zahl2 vom Datentyp Integer. Ebenso möglich:int zahl1, zahl2;

• Die Variablendeklaration erfolgt vor den eigentlichen Anweisungen im Programm

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 12: Wie schreibt man ein Programm in C?

Initialisierung von Variablen

• Bevor Variablen im Programm benutzt werden, muss Ihnen meistens ein Startwert zugewiesen werden (sonst wird globalen Variablen [Erklärung später] der Wert 0 und lokalen [Erklärung später] ein zufälliger Wert zugewiesen):

zahl1=0;• Eine Initialisierung ist auch schon bei der Deklaration

möglich:int zahl1=0;

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 13: Wie schreibt man ein Programm in C?

Zuweisungsoperator

• Wie eben schon bei der Initialisierung benutzt:zahl1=12;

• Diese Anweisung weist der Variable zahl1 den Wert 12 zu. Bei einer Zuweisung steht die Variable, der etwas zugewiesen wird auf der linken Seite und der zugewiesene Wert auf der rechten Seite.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 14: Wie schreibt man ein Programm in C?

In- und Dekrementoperator

int zahl1=0; zahl1++;

Der Inkrementoperator ++ erhöht den Wert von zahl1 um 1.

int zahl1=0;zahl1--;

Der Dekrementoperator -- verringert den Wert von zahl1 um 1.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 15: Wie schreibt man ein Programm in C?

In- und Dekrementoperator

Beide Operatoren gibt es als Präfix und Postfix-Operator:

• Bei Präfix-Operatoren wird zunächst die Variable geändert und dann weiterverwendet.

• Bei Postfix-Operatoren wird zunächst die Variable verwendet und dann geändert.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 16: Wie schreibt man ein Programm in C?

Präfix-Operator

int k = 4, var_1;var_1 = ++k;

ist äquivalent zu:

int k = 4, var_1;k = k + 1;var_1 = k;

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 17: Wie schreibt man ein Programm in C?

Postfix-Operator

int k = 4, var_1;var_1 = k++;

ist äquivalent zu

int k = 4, var_1;var_1 = k;k = k + 1;

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 18: Wie schreibt man ein Programm in C?

Arithmetische Operatoren• In C gibt es folgende arithmetische Operatoren:

x+y für die Additionx-y für die Subtraktionx*y für die Multiplikationx/y für die Divisionx%y für den Rest bei Division

• Achtung: Bei der Division zweier Integer-Variablen ist der Datentyp des Ergebnisses auch vom Typ Integer und daher immer ganzzahlig! Der %-Operator ist nur auf Integer-Variablen anwendbar.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 19: Wie schreibt man ein Programm in C?

Kurzes Beispiel

int main(void){int zahl1, zahl2=2, zahl3=3;

zahl1 = zahl2 + zahl3;zahl2 = zahl3 * zahl1++;

return 0;} Welche Werte besitzen zahl1 und zahl2 am Ende?

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 20: Wie schreibt man ein Programm in C?

Typkonvertierung

Manchmal ist es im Programmablauf notwendig, dass z.B. eine Integer-Variable in Gleitkomma-Darstellung benutzt wird. Damit man nicht alle ganzzahligen Variablen als double-Variable abspeichert, kann man eine Typkonvertierung vornehmen.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 21: Wie schreibt man ein Programm in C?

Typkonvertierung

int zahl1=2; double zahl2=(double) zahl1;

Hier erhält die Variable zahl1 den Wert 2. Da die Variable zahl2 vom Typ double ist, muss die Variable zahl1 bei der Zuweisung konvertiert (auch: gecastet) werden. Diese Konvertierung gilt nur an dieser Stelle. Im weiteren Ablauf ist zahl1 wieder vom Typ Integer.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 22: Wie schreibt man ein Programm in C?

Beispiel zur Typkonvertierungint main(void){int zahl1=3, zahl2=2;double zahl3=0.0;

zahl3 = zahl1 / zahl2;zahl3 = (double) zahl1 / zahl2;zahl2 = zahl1 / 2.0;zahl2 = zahl1 / 2.0 + 0.5;

return 0;}Welchen Wert besitzen zahl2 und zahl3 in den Zeilen?Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 23: Wie schreibt man ein Programm in C?

Ein- und Ausgabefunktion

Zur Ein- und Ausgabe von Daten auf dem Bildschirm benötigt man Funktionen, die in der C-Bibliothek stdio.h abgelegt sind. Zum Einbinden in ein Programm benutzt man den Befehl:

#include<stdio.h>

am Anfang des Quellcodes.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 24: Wie schreibt man ein Programm in C?

Die printf()-Funktion

Die Funktion printf() dient zum Ausgeben von Daten auf dem Bildschirm:

printf("Hallo");erzeugt die Ausgabe Hallo auf dem Bildschirm. Darüber hinaus kann auch der Inhalt von Variablen ausgegeben werden:

int zahl1=3;printf("Variable = %d",zahl1);

erzeugt die Ausgabe Variable = 3.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 25: Wie schreibt man ein Programm in C?

Formatierung von printf()

Bei der Ausgabe sind folgende Formatspezifikationen zu beachten (n=Anzahl Stellen (inkl. Vorz. und Punkt), p=Anzahl Nachkommastellen):

Mögliche Steuerzeichen: \n (neue Zeile) \t (tabulator)

Datentyp Formatspezifikation

int %nd oder %ni

float %n.pf

double %n.pf

char %c

Zeichenkette %s

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 26: Wie schreibt man ein Programm in C?

Die scanf()-Funktion

Die Funktion scanf() liest eine Zahl oder ein Zeichen vom Bildschirm ein.

double zahl1;scanf("%lf",&zahl1);

Weist der double-Variable zahl1 den eingelesen Wert zu. %lf steht hierbei für long float.

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 27: Wie schreibt man ein Programm in C?

Formatierung von scanf()

Datentyp Formatspezifikation

int %d oder %i

float %f

double %lf

char %c

Zeichenkette %s

Institut für Mathematische Optimierung – Technische Universität Braunschweig

Page 28: Wie schreibt man ein Programm in C?

Beispiel für printf() und scanf()#include<stdio.h>int main(void){

int zahl;char buch;

printf("Bitte Buchstaben eingeben:");scanf("%c",&buch);printf("Bitte Zahl eingeben:");scanf("%d",&zahl);printf("Ihre Eingabe war %c%d.\nSchiff versenkt!\n",buch,zahl);return 0;

}

Institut für Mathematische Optimierung – Technische Universität Braunschweig