Einführung in die Programmiersprache C 1

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
Forschungszentrum caesar
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Timm Grams Hochschule Fulda Fachbereich Elektrotechnik und Informationstechnik Rekursive Funktionen in C © Timm Grams, Fulda, (korr.: )
Variablen und Datentypen
der Universität Oldenburg
Java: Grundlagen der Sprache
SWITCH - Anweisung.
Datentyp- umwandlung. Literale sind: Bezeichner mit einem festen Wert wie z.B:
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
ARRAY oder FELD oder VEKTOR
Konstruktoren.
Programmier-sprache C Weiter mit PP..
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Robotik mit LEGO Mindstorms
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Imperative Programmierung
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Das erste Programm (Folie 16)
Arrays,Strings&Pointer in C/C++
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Programmiersprache C 4
Allgemeines zu Java Universelle, objektorientierte Programmiersprache
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Programmierung 1. Einführung Seite 1
Unterprogramme in JAVA
Variablen in Programmiersprachen
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
3. Lineare Befehle 3.1 Die Ausgabefunktion
BMEVIEEA100 Grundlagen der Programmierung
PHP: Operatoren und Kontrollstrukturen
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Übersicht Nachtrag zu Ausdrücken
Anführungszeichen?! echo 'Apfel$atf'; // ergibt: Apfel$aft
(Syntax, Strings/Zahlen, Variablen, Arrays)
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Einführung in die Programmierung mit Java
Einführung in die Programmierung mit Java
Einführung in die Programmiersprache C 2
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Variablen und Datentypen
Programmieren in C Grundlagen C 1 Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Variablen und Operatoren. C++ Teil 2: Grundstrukturen Variablen Operatoren Kontrollstrukturen Funktionen Header-Dateien Pointer und Referenzen.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Inhalte der Übungen 1.Grundlagen, Ein- und Ausgabe 2.Kontrollstrukturen (Projekt 1) 3.Funktionen 4.Zeiger, Felder (Projekt 2) 5.Strings, Strukturen 6.Fileverarbeitung.
Konstruktoren.
Programmieren in C Grundlagen C 1
Variable: typ varName = Wert Kiste: Art Aufschrift  Inhalt
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
 Präsentation transkript:

Einführung in die Programmiersprache C 1 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) Institut für Mathematische Optimierung – Technische Universität Braunschweig

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

gcc –Wall –o name programmname.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

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

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

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

Schlüsselwörter in C (nach ANSI-C 89) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while Institut für Mathematische Optimierung – Technische Universität Braunschweig

Datentypen Beispiel: Binärdarstellung der Zahl -41 Bits Verwendung für char 8 Zeichen (auch Zahlen) int 16-32 Ganze Zahlen float 32 Gleitkommazahlen (einfache Genauigkeit) double 64 Gleitkommazahlen (doppelte Genauigkeit) - 1 Beispiel: Binärdarstellung der Zahl -41 -41 = - 2^5 + 2^3 + 2^0 Darstellung mit 7 Bits Institut für Mathematische Optimierung – Technische Universität Braunschweig

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

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

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

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

In- und Dekrementoperator int zahl1=0; zahl1++; Der Inkrementoperator ++ erhöht den Wert von zahl1 um 1. zahl1--; Der Dekrementoperator -- verringert den Wert von zahl1 um 1. Institut für Mathematische Optimierung – Technische Universität Braunschweig

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

Präfix-Operator int k = 4, var_1; var_1 = ++k; ist äquivalent zu: k = k + 1; var_1 = k; Institut für Mathematische Optimierung – Technische Universität Braunschweig

Postfix-Operator int k = 4, var_1; var_1 = k++; ist äquivalent zu var_1 = k; k = k + 1; Institut für Mathematische Optimierung – Technische Universität Braunschweig

Arithmetische Operatoren In C gibt es folgende arithmetische Operatoren: x+y für die Addition x-y für die Subtraktion x*y für die Multiplikation x/y für die Division x%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

Kurzes Beispiel int main(void) { int zahl1, zahl2=2, zahl3=3; return 0; } Welche Werte besitzen zahl1 und zahl2 am Ende? Institut für Mathematische Optimierung – Technische Universität Braunschweig

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

double zahl2=(double) zahl1; 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

Beispiel zur Typkonvertierung int 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

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

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

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 char %c Zeichenkette %s Institut für Mathematische Optimierung – Technische Universität Braunschweig

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

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

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