3. Einführung in C Programmierung Einführung in C Programmierung

Ähnliche Dokumente
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Einführung in die C-Programmierung

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Herzlich willkommen!

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner.

4.2 Programmiersprache C

RO-Tutorien 15 und 16

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Die Programmiersprache C Eine Einführung

Die Programmiersprache C

RO-Tutorien 3 / 6 / 12

Grundlagen der Programmierung

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

Einstieg in die Informatik mit Java

Angewandte Mathematik und Programmierung

Grundlagen der Informatik 2. Typen

Einstieg in die Informatik mit Java

2. Programmierung in C

Algorithmen zur Datenanalyse in C++

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten

Dr. Monika Meiler. Inhalt

3. Java - Sprachkonstrukte I

RO-Tutorien 17 und 18

QuickC - Schnellkurs in C

Grundlagen der Modellierung und Programmierung, Übung

Hello World! Eine Einführung in das Programmieren Variablen

Projekt 3 Variablen und Operatoren

2. Programmierung in C

Programmierkurs C++ Variablen und Datentypen

Grundlagen der Programmierung

Effektiv Programmieren in С und C++

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken

Ganze Zahlen, Ausdrücke Variablen/Konstanten

3. Java - Sprachkonstrukte I

Variablen, Konstanten und Datentypen

5 Grundlagen der Java-Syntax

Die Programmiersprache C

3. Java - Sprachkonstrukte I

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Einstieg in die Informatik mit Java

Programmiersprachen Einführung in C

Aufbau eines C-Programms

Einführung in die Programmierung Wintersemester 2008/09

Operatoren (1) Operatoren (2)

2. Programmierung in C

einlesen n > 0? Ausgabe Negative Zahl

Syntax und Kontrollstrukturen

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

S. d. I.: Programieren in C Folie diese Zeichen dürfen verwendet werden in

Einführung Programmierpraktikum C Michael Zwick

Vorlesung 2: Programmieren mit C

Einführung in C. EDV1-04C-Einführung 1

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

3. Anweisungen und Kontrollstrukturen

Kapitel 5. Datentypen und Operatoren

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

Einstieg in die Informatik mit Java

2. Programmierung in C

Funktionales C++ zum Ersten

Elementare Datentypen in C++

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Intensivübung zu Algorithmen und Datenstrukturen

C-Programmierkurs Mathematik

Wo sind wir? Übersicht lexikale Struktur von Java

Einstieg in die Informatik mit Java

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Das erste C-Programm Gliederung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

2.1 Fundamentale Typen

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

4 Formelsammlung C/C++

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Tutorium Rechnerorganisation

Repetitorium Programmieren I + II

Einstieg in die Informatik mit Java

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

2 Programmieren in Java I noch ohne Nachbearbeitung

Java I Vorlesung Imperatives Programmieren

Programmiersprachen Einführung in C

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan)

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Unterlagen. CPP-Uebungen-08/

Transkript:

Einführung in C Programmierung 3-1

Warum die Programmiersprache C lernen? C Programme sind leicht zwischen verschiedenen Systemumgebungen portierbar. C ist eine geeignete Sprache zum Aufbau einer Programmbausteinbibliothek. C hat die Assemblerprogrammierung weitgehend ersetzt. C ist die Sprache für Systemprogrammierung unter UNIX und anderen Betriebssystemen. C ist eine gute Ausgangsbasis für Programmierung in C++ und JAVA. Geschichte der Sprache C 3-2

Eigenschaften der Sprache C C als Programmiersprache Nr. 1. Die Sprache ist klein, die Möglichkeiten sind groß. Die Sprache ist im Gegensatz zu Pascal frei von Dialekten. Portierungsaufwand läßt sich für Kenner relativ gering halten. Viele sehr gute Compiler verfügbar. Umfangreiche Bibliotheken (normiert, aber kein Sprachbestandteil). Fehleranfällige, u.u. schwer lesbare Programmiersprache. C hängt eng mit UNIX zusammen. C als Basis für C++. Meinung eines Studenten: C das Rasiermesser ohne Handgriff. 3-3

Vorteile der Programmiersprache C C hat einen kleinen, leicht zu erlernenden Sprachumfang, die C-Programme sind kompakt und schnell, C ist weitgehend standardisiert, die Quellprogramme sind portabel und laufen ohne oder mit geringen Änderungen auf unterschiedlichsten Rechnern und Betriebssystemen, C verbindet die Vorzüge einer höheren Programmiersprache wie Pascal mit Leistungsfähigkeit einer Assemblersprache, umfangreiche Bibliotheken. 3-4

Was tut dieses Programm in C? #include <stdio.h> int v, i, j, k, l, s, a[99]; main () { for ( scanf ("%d", &s); *a - s; v = a [ j *= v ] a [ i ], k = i<s, j += (v = j<s && (!k &&!!printf (2 + "\n\n%c" - (!l <<!j ), " #Q" [ l^v? (l^j) &1:2]) && ++l a[i]<s && v && v-i+j && v+i-j)) &&!(l%=s), v (i==j? a[i+=k] = 0 : ++a[i]) >= s*k && ++a[--i]) ; printf ("\n\n"); } 3-5

Ergebnis: Q# # # # Q# # # # # # Q # # # #Q# # # # Q # # # Q # # #Q# # Q # # #Q# # # # # #Q# # # # Q # #Q# # Q # # # Q # # # # #Q# # # # Q # usw. 3-6

Programme in C 3. Einführung in C Programmierung Programm in C besteht aus selbständigen Programmeinheiten Funktionen; jede Funktion besteht weiter aus dem Preprozessorteil (Befehlen für C-Preprozessor), Deklarationsteil (Deklarationen und Definitionen von Datenobjekten von verschiedenen Typen), Anweisungsteil (Block, resp. Blockanweisung, d.h. Folge von Anweisungen) 3-7

Das erste Programm in C 3. Einführung in C Programmierung Beispiel (zwei unterschiedliche Formattierungen): #include <stdio.h> /* Bibliothek von E/A Operationen */ main () /* Programmkopf (Programmanfang) */ { /* Blockanfang, keine Datenobjekte */ printf ( Guten Tag\n ); /* Ausgabe der Zeichenkette */ } /* Blockende */ oder #include <stdio.h> /* Bibliothek von E/A Operationen */ main () { /* Programmkopf (Programmanfang) */ printf ( Guten Tag \n ); /* Ausgabe der Zeichenkette */ } /* Blockende */ 3-8

Ausgabe mit printf Der Funktionskopf von printf besitzt die Form: int printf (char *format, arg1, arg2, ); Die Syntax der Formatangabe lautet: % [ Flag ] [ Breite ] [. Präzision ] [ Präfix ] Typ Beispiele: printf ( 24 + 12 = %d \n, 24 + 12); printf ( 13 * 17 = %d \n, 13 * 17); 3-9

Zusammenfassung 3. Einführung in C Programmierung C ist formatfrei und benötigt keine Zeilennummern, das heißt, Sie können das Aussehen Ihres Programms frei bestimmen. C besteht nur aus Funktionen. Die Funktion main muß in jedem Programm genau einmal vorkommen. Jeder Funktionskörper (Block) beginnt mit { und endet mit }. Jede Anweisung muß mit einem Semikolon abgeschlossen werden. Kommentare werden im Programm mit /* eingeleitet und mit */ beendet. Die meisten Funktionen, die zur Erstellung eines Programms nötig sind, werden in sogenannten Bibliotheken mitgeliefert. Eine der wichtigsten Bibliotheksfunktionen ist printf. Durch sogenannten Escape-Sequenzen kann die Ausgabe von Texten gesteuert werden. Des weiteren kann printf Berechnungen durchführen und Ergebnisse ausdrucken. 3-10

Lexikalische Einheiten der C Sprache <Buchstabe> ::= A B C X Y Z a b c y z < Ziffer > ::= 0 1 2 3 4 5 6 7 8 9 <Sonderzeichen> ::= + - * / = ( ) [ ] { } < >! & # % _ ^ ~ \., ; :? <Trennzeichen> <Reserviertes_Wort> <Trennzeichen> ::= <blank> <newline> <tab> <Reserviertes_Wort> ::= auto break case char const continue default long 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 3-11

Reservierte Wörter in C ( keywords ) auto extern signed break float sizeof case for static char goto struct const if switch continue int typedef default long union do register unsigned double return void else short volatile enum while 3-12

Allgemeine Struktur des Programms in C: Kommandos für Preprozessor #include <stdio.h> /* I/O Bibliothek */ Definitionsteil Definitionen und Deklarationen von globalen, statischen und externen Datenobjekten Block [<Typ>] main () /* Hauptfunktion */ { /* Blockanfang */ Definitionen von lokalen Datenobjekten... Anweisungen return (0); /* Rücksprung in System */ } /* Blockende */ 3-13

Definitionen wir unterscheiden: Deklaration nur Typbeschreibung, ohne Speicherbelegung Beispiel: extern unsigned int P, Q; Definition Typbeschreibung plus Speicherreservierung Beispiel: int i, j, k; kurz m, n; Definition mit Initialisierung Beispiel: int i = 3; 3-14

Konstanten (Definitionen von Konstanten) dezimal eine Folge von Dezimalziffern, die nicht mit 0 beginnt oktal eine Folge von Ziffern 0,..., 7, die mit 0 beginnen soll hexadezimal eine Folge von Ziffern 0, 1,..., 9, A, B,..., F, die mit Zeichen 0x oder 0X beginnen soll long Konstanten eine der oben definierten Konstanten, die mit Zeichen l oder L beendet werden soll reele Konstanten (Gleitkommakonstanten, floating point constants) im Format ± X...X.X...X E±XX oder ± X...X.X...X e±xx Zeichenkonstanten einzelne Zeichen in Apostrophen, z.b.'a' Stringkonstanten eine Folge von Zeichen in Anführungszeichen 3-15

Beispiele: 3. Einführung in C Programmierung 23, 1, -2048, 32767, -54,... 077, 01, 0247, 0177777,... 0xA1, 0XCC, 0x256, 0xFFFFFFFE,... 10L, -2440L, 3256743l, 03777777777l,... 3.45, 3.45E-2, 1.16e12, 9.,.86,.5E6, 2e3,... 'B', 'r', '\n', '\015', '\\', '\'', '\0',... "PETER", "A", "Regensburg",... Vorsicht! Konstante 'A' belegt 1 Byte, "A" 2 Bytes! A \0 3-16

Eingabe mit scanf Der Funktionskopf von scanf besitzt die Form: int scanf (char *format, arg1, arg2, ); Die Syntax der Formatangabe lautet gleich wie bei der Funktion printf: % [ Flag ] [ Breite ] [. Präzision ] [ Präfix ] Typ Aber! Die Operanden müssen durch Adressen angegeben werden! Beispiele: scanf ( %d %d, &x, &y); scanf ( %d %c %f, &NUMMER, &ZEICHEN, &KOEFF); 3-17

Rechnen in C 3. Einführung in C Programmierung Arithmetische Operatoren überlagerte + Addieren Subtrahieren * Multiplizieren / Dividieren (liefert die Quote) % Dividieren modulo (ganzzahliges liefert den Rest!) Adressoperator & liefert die Adresse des Operanden 3-18

3-19

/* Programm C2_1.c Einfache ganzzahlige Berechnungen */ #include <stdio.h> /* E/A Bibliothek */ main ( ) /* Nur Hauptmodul */ { int x, y; /* Definition von Variablen */ printf (" \n \t \t R e c h e n p r o g r a m m 1 \n\n"); /* Ausgabekopf */ printf ("\n Bitte x eingeben : "); /* Anfrage für Eingabe von x */ scanf ("%i", &x); /* Eingabe von x */ printf ("\n Bitte y eingeben : "); /* Anfrage für Eingabe von y */ scanf ("%i", &y); /* Eingabe von y */ printf ("\n\n %i + %i ist %i", x, y, x+y); /* Berechnungen und */ printf ("\n\n %i - %i ist %i", x, y, x-y); /* Ausgaben */ printf ("\n\n %i * %i ist %i", x, y, x*y); /* von Ergebnissen */ printf ("\n\n %i / %i ist %i", x, y, x/y); printf ("\n\n %i %% %i ist %i", x, y, x%y); printf ("\n\n"); } 3-20

/* Programm C2_2.c Einfache Gleitkommaberechnungen */ #include <stdio.h> /* E/A Bibliothek */ main ( ) /* Nur Hauptmodul */ { float x,y; /* Definition von Variablen */ printf ("\n\t\t R e c h e n p r o g r a m m 2 \n\n"); printf ("\n Bitte x eingeben : "); scanf ("%f", &x); printf ("\n Bitte y eingeben : "); scanf ("%f", &y); printf ("\n\n %f + %f ist %f", x, y, x+y); printf ("\n\n %f - %f ist %f", x, y, x-y); printf ("\n\n %f * %f ist %f", x, y, x*y); printf ("\n\n %f / %f ist %f", x, y, x/y); printf ("\n\n"); } 3-21

/* Programm C2_3.c Einfache Gleitkommaberechnungen mit formattierten Ausgaben */ #include <stdio.h> main ( ) { float x,y; printf ("\n\t\t R e c h e n p r o g r a m m 3 \n\n"); printf ("\n Bitte x eingeben : "); scanf ("%f", &x); printf ("\n Bitte y eingeben : "); scanf ("%f", &y); printf ("\n\n %8.2f + %8.2f ist %8.4f", x, y, x+y); printf ("\n\n %8.2f - %8.2f ist %8.4f", x, y, x-y); printf ("\n\n %8.2f * %8.2f ist %8.4f", x, y, x*y); printf ("\n\n %8.2f / %8.2f ist %8.4f", x, y, x/y); printf ("\n\n"); } 3-22

/* Programm C2_4.c Einfache Währungsrechnungen */ #include <stdio.h> /* E/A Bibliothek */ main ( ) /* Nur Hauptmodul */ { float u_faktor, betrag; /* Definition von Variablen */ printf ("\n\t\t W ä h r u n g s r e c h n e n \n\n"); printf ("\n Bitte Umrechnungsfaktor eingeben : "); scanf ("%f", &u_faktor); /* Umrechnungsfaktor eingeben */ printf ("\n Bitte DM-Betrag eingeben : "); scanf ("%f", &betrag); /* Betrag in DM eingeben */ printf ("\n %.2f DM entspricht ", betrag); /* Ausgabe */ printf ("%.2f Einheiten der Fremdwährung \n\n", betrag*u_faktor); } 3-23

/* Programm C2_5.c */ /* Temperaturumrechnung */ 3. Einführung in C Programmierung #include <stdio.h> /* E/A Bibliothek */ main ( ) /* Nur Hauptmodul */ { float celsius; /* Definition von Variablen */ printf ("\n\t Celsius -> Fahrenheit Grad Umrechnung \n\n"); printf ("\n Bitte Grad Celsius eingeben : "); scanf ("%f", &celsius); /* Grad Celsius eingeben */ printf ("\n %.1f Grad Celsius entsprechen ", celsius); /*Ausgabe*/ printf ("%.1f Grad Fahrenheit. \n\n", celsius * 9 / 5 + 32); } 3-24

/* Programm C2_6.c Anzahl der Herzschläge */ #include <stdio.h> /* E/A Bibliothek */ main ( ) /* Nur Hauptmodul */ { float schlaege, alter; /* Definition von Variablen */ printf ("\n\t A n z a h l d e r H e r z s c h l ä g e \n\n"); printf ("\n Herzschläge pro Minute eingeben : "); scanf ("%f", &schlaege); /* Herzschläge eingeben */ printf (" Alter in Jahren eingeben : "); scanf ("%f", &alter); /* Alter eingeben */ printf ("\n Ihr Herz hat seit Ihrer Geburt "); /* Ausgabe */ printf ("%f ", schlaege * 60 * 24 * 365.25 * alter); printf ("mal geschlagen. \n\n"); } 3-25

Zuweisungen in C Zuweisungsoperator: = /* Programm C2_0.c Einfaches ganzzahliges Addieren */ #include <stdio.h> /* E/A Bibliothek */ main ( ) /* Nur Hauptmodul */ { int a, b, c ; /* Definition von Variablen */ printf (" \n \t \t A d d i t i o n a + b \n\n"); /* Ausgabekopf */ printf (" a = "); /* Anfrage für Eingabe von a */ scanf ("%d", &a); /* Eingabe von a */ printf (" b = "); /* Anfrage für Eingabe von b */ scanf ("%d", &b); /* Eingabe von b */ c = a + b ; /* Berechnung */ printf ("\n %d + %d = %d \n\n", a, b, c) ; /* Ausgabe */ return 0; } 3-26

/* Programm C3_1.c Einfache ganzzahlige Berechnungen */ #include <stdio.h> /* E/A Bibliothek */ main ( ) /* Nur Hauptmodul */ { int x,y; int summe,differenz,produkt,quote,rest; /* Definition von Variablen */ printf ("\n\t\t R e c h e n p r o g r a m m 1 \n\n"); /* Ausgabekopf */ printf ("\n Bitte x eingeben : "); /* Anfrage für Eingabe von x */ scanf ("%i", &x); /* Eingabe von x */ printf ("\n Bitte y eingeben : "); /* Anfrage für Eingabe von y */ scanf ("%i", &y); /* Eingabe von y */ 3-27

} summe = x + y; /* Auswertungen */ differenz = x - y; produkt = x * y; quote = x / y; rest = x % y; printf ("\n\n %i + %i ist %i", x, y, summe); /* Ausgaben */ printf ("\n\n %i - %i ist %i", x, y, differenz); /* von Ergebnissen */ printf ("\n\n %i * %i ist %i", x, y, produkt); printf ("\n\n %i / %i ist %i", x, y, quote); printf ("\n\n %i %% %i ist %i", x, y, rest); printf ("\n\n"); 3-28

/* Programm C3_4.c Einfache Währungsrechnungen */ #include <stdio.h> /* E/A Bibliothek */ main ( ) /* Nur Hauptmodul */ { float u_faktor, betrag, ergebnis; /* Definition von Variablen */ printf ("\n\t\t W ä h r u n g s r e c h n e n \n\n"); printf ("\n Bitte Umrechnungsfaktor eingeben : "); scanf ("%f", &u_faktor); /* Umrechnungsfaktor eingeben */ printf ("\n Bitte DM-Betrag eingeben : "); scanf ("%f", &betrag); /* Betrag in DM eingeben */ ergebnis = betrag * u_faktor; /* Auswertung */ printf ("\n %.2f DM entspricht ", betrag); /* Ausgabe */ printf ("%.2f Einheiten der Fremdwährung \n\n", ergebnis); } 3-29

/* Programm C3_5.c Temperaturumrechnung */ #include <stdio.h> /* E/A Bibliothek */ main ( ) /* Nur Hauptmodul */ { float celsius, fahrenheit; /* Definition von Variablen */ printf ("\n\t Celsius -> Fahrenheit Grad Umrechnung \n\n"); printf ("\n Bitte Grad Celsius eingeben : "); scanf ("%f", &celsius); /* Grad Celsius eingeben */ fahrenheit = celsius * 9.0 / 5.0 + 32.0; printf ("\n %.1f Grad Celsius entsprechen ", celsius); printf ("%.1f Grad Fahrenheit. \n\n", fahrenheit); } 3-30

Zusammenfassung 3. Einführung in C Programmierung Include-Dateien finden sich in beinahe jedem C-Programm. Sie enthalten u.a. Definitionen für die einzelnen Funktionen. Die am häufigsten benötigte Include-Datei ist stdio.h. C kennt verschiedene Datentypen. Sie haben den Typ int für ganze Zahlen und den Typ float für Gleitkommazahlen kennengelernt. Variablennamen können bis zu 31 Zeichen lang sein. Die Funktion scanf dient der Eingabe von Daten. Sie ist nur eine von mehreren Funktionen, die diesem Zweck dienen. Platzhalter in der Funktion printf können um eine Angabe zur formatierten Ausgabe von Zahlen erweitert werden. Als weitere Escape-Sequenz haben Sie \t kennengelernt. Diese Sequenz bewirkt einen Tabulatorsprung um acht Stellen (üblich). C ist case-sensitiv, d.h. es wird zwischen Groß- und Kleinschreibung unterschieden. 3-31

Als Zuweisungsoperator verwendet C das Gleichheitszeichen (=). Bei einer Wertzuweisung darf auf der linken Seite des Zuweisungsoperators nur eine Variable stehen. Z. B.: C = A + B; gesamtsumme = 2 * summe; z = 12; bereich = X1 + 40/X2; ergebnis = 6*(A B/2); Variablen können bei der Deklaration gleichzeitig initialisiert werden. Der Typ double ist der bevorzugte Gleitkommatyp (Fließkommatyp). 3-32