Informatik I Programmieren in C

Ähnliche Dokumente
Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff

Programmieren in C. Die C-Standardbibliothek: Datei Ein- und Ausgabe. Prof. Dr. Nikolaus Wulff

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

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Die Programmiersprache C Eine Einführung

Programmieren lernen mit C

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Primitive Datentypen

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Zeiger auf Funktionen. Prof. Dr. Nikolaus Wulff

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

Einführung in die C-Programmierung

Algorithmen zur Datenanalyse in C++

RO-Tutorien 3 / 6 / 12

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

Unterlagen. CPP-Uebungen-08/

Zusammenfassung des Handzettels für Programmieren in C

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

10 Die Programmiersprache C99: Zusammenfassung

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Erste Schritte der Programmierung in C

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Kapitel 3: Variablen

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Die Programmiersprache C99: Zusammenfassung

C als erste Programmiersprache

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

Tutorium Rechnerorganisation

Welche Informatik-Kenntnisse bringen Sie mit?

Funktionales C++ zum Ersten

Motivation und Überblick

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

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

Dateizugriff unter C

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

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Elementare Konzepte von

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten

Organisatorisches. Einführung in die Programmierung in C Hochschule Regensburg Universitätsstraße 31, Regensburg

Operatoren (1) Operatoren (2)

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

Hello world. Sebastian Dyroff. 21. September 2009

Einführung in die Programmierung mit VBA

Programmieren I. Kapitel 5. Kontrollfluss

2. Programmierung in C

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

Kapitel 5. Datentypen und Operatoren

Deklarationen in C. Prof. Dr. Margarita Esponda

Übungspaket 12 Der Datentyp char

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Programmierung mit C Zeiger

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

Javakurs für Anfänger

4.Grundsätzliche Programmentwicklungsmethoden

JAVA-Datentypen und deren Wertebereich

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

Kurze Einführung in die Programmiersprache C++ und in Root

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Die einfachsten Anweisungen

Programmieren in C (Übungsblatt 1)

Modellierung und Programmierung

String-Konkatenation

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

Grundlagen von C# - 1

Prinzipieller Grundaufbau eines einfachen C-Programmes

Modul 122 VBA Scribt.docx

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Programmieren in C / C++ Grundlagen C 2

Einführung in die Programmierung Wintersemester 2011/12

2. Programmierung in C

ATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 02 - Aufbau eines C-Projektes

Programmieren in C. Eigene Datentypen per typedef und Strukturen. Prof. Dr. Nikolaus Wulff

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Testklausur zur Vorlesung. Programmieren in C

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

Einstieg in die Informatik mit Java

Algorithmen und ihre Programmierung

C Überlebenstraining

C für Java-Programmierer

Prinzipien der Softwareentwicklung S. Strahringer

Die Programmiersprache C

Einführung in die Programmiersprache C und in den C166-Compiler

Grundlagen der Programmierung

Einführung in die C++ Programmierung für Ingenieure

Einführung in die Programmiersprache C

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Transkript:

Informatik I Programmieren in C Zusammenfassung des Semesters Prof. Dr. Nikolaus Wulff

Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen Funktionen und Programmstruktur Zeiger und Felder Strukturen Ein- / Ausgabe Bibliotheksfunktionen Prof. Dr. Nikolaus Wulff Programmieren in C 2

Compile & Link Schritte Hello.c Compiler Hello.obj stdio.h Erstellen des Quelltext. Übersetzen Binden/Linken mit den Bibliotheksfunktionen des Betriebsystems. Test und Ausführung der Anwendung. Linker Hello.exe Bibliotheksfunktionen Die einzelnen Schritte können manuell per Hand als auch automatisiert durchgeführt werden. Prof. Dr. Nikolaus Wulff Programmieren in C 3

Der Entwicklungszyklus Editieren Testen (Debugging) Compilieren Programmierung ist ein zyklischer Prozess: Quellcode erstellen Quellcode übersetzen Programm testen Durch Testen kann man die Anwesenheit von Fehlern zeigen, niemals aber deren Abwesenheit! Prof. Dr. Nikolaus Wulff Programmieren in C 4

Modularer Aufbau Die in einer xxx.h Datei deklarierten Methoden werden meist in einer xxx.c Datei implementiert. Dies macht im Fehlerfall das Suchen der zugehörigen Implementierung einfacher. f2c.h Application implements f2c.c #include Main.c f2c.o Main.o Prof. Dr. Nikolaus Wulff Programmieren in C 5

Schleifen Wiederholte Anweisungen: while( <expr> ) { statement; } do { statement; } while ( <expr> ); for( <expr 1 >; <expr 2 >; <expr 3 >) { } statement; Prof. Dr. Nikolaus Wulff Programmieren in C 6

Kontrollstrukturen Entscheidungsabhängige Programmausführung: if( <expr> ) { statement; } if( <expr> ) { statement 1 ; } else { statement 2 ; } if( <expr> ) { statement 1 ; } else if( <expr 2 > ){ statement 2 ; } else if( <expr 3 > ){ statement 3 ;... } else { statement N ; } Prof. Dr. Nikolaus Wulff Programmieren in C 7

Die switch-anweisung switch( <expr> ) { case <const 1 >: }; statement 1 ; break; case <const 2 >: statement 2 ; break;... case <const N >: statement N ; break; default: statement default Prof. Dr. Nikolaus Wulff Programmieren in C 8

Operatoren Operator Funktion, arithmetisch Operator Funktion, boolesche * / % + - ++ -- Multiplikation Division Modulo Addition Subtraktion Inkrement Dekrement! < <= > >= && logisches NICHT (NOT) kleiner als kleiner als oder gleich größer als größer als oder gleich logisches UND (AND) logisches ODER (OR) Redundante Operatoren: saldo++; => saldo = saldo + 1; Operator ==!= = Funktion Gleichheit Ungleichheit Zuweisung Operator & ^ << >> ~ Funktion, bitweise Bit-AND Bit-OR Bit-XOR exklusiv oder Bit Verschiebung links Bit Verschiebung rechts Bit-Komplement Prof. Dr. Nikolaus Wulff Programmieren in C 9

Datentypen und Zeiger C kennt die Datentypen: char, short, int, long, float, double Hinzu kommen die benutzerdefinierten Typen: enum, typedef und struct Mit dem &-Operator lässt sich die Adresse einer Variablen bestimmen. Zeiger werden mit * deklariert. Wird der *-Operator auf eine Zeigervariablen angewandt, so wird diese ausgelesen oder gesetzt. Prof. Dr. Nikolaus Wulff Programmieren in C 10

Zeiger und Speicher 0123456789AB Speicher: Hello World0 0xFF01200 while(*str++) { len++; } str str=0xff01200 str++ str=0xff01201... str++ str=0xff01209 str++ str=0xff0120a str++ str=0xff0120b *str = 'H' len=0 *str = 'e' len=1 *str = 'l' len=9 *str = 'd' len=10 *str = 0 len=11 Zeiger erlauben es jede beliebige Stelle im Speicher zu referenzieren. Prof. Dr. Nikolaus Wulff Programmieren in C 11

Funktionen Funktion werden in *.h Dateien deklariert: <returnvalue> <fctname>(<arg 1 >,...,<arg N >); und in *.c Dateien implementiert. Funktionen mit dem Schlüsselwort static sind nur innerhalb ihrer Quelldatei sicht- und aufrufbar. Funktionen mit dem Schlüsselwort extern sind außerhalb der Quelldatei implementiert und werden vom Linker hinzu gebunden. Prof. Dr. Nikolaus Wulff Programmieren in C 12

C Strukturen Im Allgemeinen kennen Programmiersprachen für genau diese Problematik ein eigenständiges Modellierungselement: z.b. in Pascal den record, in C das struct und OO-Sprachen besitzen hierzu das Konzept der Klasse. Ein struct ist ein neuer Datentyp. Zusammengesetzt als Aggregat aus bereits bekannten Datentypen: struct <identifier> { type 1 <identifier 1 >; };... ; type N <identifier N >; Prof. Dr. Nikolaus Wulff Programmieren in C 13

Zeiger auf Funktionen Ein Funktionszeiger wird deklariert als: <return_type> (*ptr_name)(<arg_liste>) Wichtig ist die Klammer bei der Deklaration eines Function Pointers: int *f; /* Zeiger auf ein int */ int *f(); /* Funktion mit Rückgabe int-zeiger */ int (*f)(); /* Zeiger auf Funktion mit Rückgabe int */ Prof. Dr. Nikolaus Wulff Programmieren in C 14

Typedef auf FunctionPointer Mit einem typedef lässt sich die Schreibweise für einen FunctionPointer elegant vereinfachen: /** * Declare a real valued Function. */ typedef double (*Fct)(double x); /** * Differentiate a given Function. */ double differentiate(fct f, double x); Ebenso wie normale Zeiger können nun auch Zeiger auf Funktionen als Variablen verwendet werden. Prof. Dr. Nikolaus Wulff Programmieren in C 15

Die C Standardbibliothek assert.h ctype.h errno.h float.h iso646.h limits.h locale.h math.h setjmp.h Definiert das assert Debug Marko Klassifizierung (is...) und Konvertierung (to...) von Zeichenketten Definiert Fehlerbehandlungsmakros Definiert float min, max, eps, etc. Synonyme für and, bitor, not, xor etc. Definiert char, int,... min max Bereiche Landesspezifische Währung, Zeit, Datum Mathematische Funktionen Sprünge definieren Prof. Dr. Nikolaus Wulff Programmieren in C 16

Die C Standardbibliothek cont. signal.h Interrupts und Fehlersignale stdarg.h Funktionen mit variabler Argumentliste stddef.h Makros NULL, size_t, offsetof etc stdio.h Ein- und Ausgabe per Konsole, Datei... stdlib.h Allgemeine Bibliotheksfunktionen string.h Manipulation von Zeichenketten time.h Zeitfunktionen wchar.h Wide Character 16/32-bit Zeichen wctype.h Wide Character Zeichenfunktionen Prof. Dr. Nikolaus Wulff Programmieren in C 17

Datei Funktionen Wichtige IO-Funktionen sind: fclose, fopen Stream schließen oder öffnen feof Testet ob Stream zu Ende ist ferror Testet Stream auf Fehler fflush Leert Puffer eines Streams fgetc, fputc Liest/schreibt ein Zeichen fgets, fputs Liest/schreibt eine Zeichenkette fscanf, fprintf Liest/schreibt formatierte Daten fread, fwrite Unformatiertes Lesen/Schreiben printf/scanf sind nur Spezialfälle von fprintf/fscanf. Prof. Dr. Nikolaus Wulff Programmieren in C 18

Zusammenfassung Die erste Programmiersprache (in einem Semester!) ist ein Gewaltritt und erfordert volle Konzentration und Mitarbeit. Vieles hat sich noch nicht so ganz gesetzt. Jedoch nächstes Semester wird sich einiges wiederholen und das Bild abrunden. Wichtig ist es, von Anfang an mit zu machen und die Übungen und Praktika Ernst zu nehmen. Der Stoff wird (leider) sehr schnell schwierig... Prof. Dr. Nikolaus Wulff Programmieren in C 19