Programmieren in C Einfhrung Hochschule Fulda FB AI

Programmieren in C Einführung Hochschule Fulda – FB AI Wintersemester 2014/15 http: //c-ai. rz. hs-fulda. de Peter Klingebiel, HS Fulda, DVZ

Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 2

Zur Vorlesung • Peter Klingebiel – – – Dipl. Ing. Maschinenbau Leiter DVZ HS Fulda Raum E 318 Telefon 0661/9640 -172 http: //www. hs-fulda. de/~klingebiel mailto: klingebiel@hs-fulda. de • Webseite der Vorlesung – Folien, Aufgaben, Demoprogramme, Links usw. – http: //c-ai. rz. hs-fulda. de Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 3

Programmieren in C 1 • Programmieren • in • C ? ? ? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 4

Programmieren in C 2 • Quelle: Eines Tages - Spiegel Online Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 5

Programmieren in C 3 • Quelle: Eines Tages - Spiegel Online Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 6

Programmieren !? !? !? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 7

Programmieren • Wikipedia: http: //de. wikipedia. org/wiki/Programmierung • Definition: „Programmieren ist eine Tätigkeit, bei der versucht wird, durch systematischen Einsatz einer gegebenen Programmiersprache ein gestelltes Problem zu lösen. “ aus: H. Balzert, Lehrbuch Grundlagen der Informatik, 1999 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 8

Programm • Wikipedia: http: //de. wikipedia. org/wiki/Computerprogramm • Definition: „Algorithmen, die von einem automatischen Prozessor abgearbeitet werden, bezeichnet man als Programme. Ein Programm stellt die Realisierung eines Algorithmus dar. Im Gegensatz zu einem Algorithmus ist ein Programm konkreter und eingeschränkter. “ aus: Balzert, Lehrbuch. . . Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 9

Algorithmus • Wikipedia: http: //de. wikipedia. org/wiki/Algorithmus • Definition: „Algorithmus (Plural: Algorithmen), Problemlösungsbeschreibung, die festlegt, wie ein Problem gelöst werden soll. “ aus: Balzert, Lehrbuch. . . Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 10

Euklidischer Algorithmus 1 • Wikipedia: http: //de. wikipedia. org/wiki/Euklidischer_Algorithmus • „Wenn CD aber AB nicht misst, und man nimmt bei AB, CD abwechselnd immer das kleinere vom größeren weg, dann muss (schließlich) eine Zahl übrig bleiben, die vorangehende misst. “ aus: Euklid, Die Elemente, hrg. v. C. Thaer • Algorithmus zur Bestimmung des größten gemeinsamen Teilers (gg. T) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 11

Euklidischer Algorithmus 2 • Alter Algorithmus, iterativ, Pseudocode euklid(a, b) wenn a = 0 dann liefere b sonst solange b ≠ 0 wenn a > b dann a = a – b sonst b = b – a liefere a Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 12

Euklidischer Algorithmus 3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 13

Euklidischer Algorithmus 4 • Alter Algorithmus, rekursiv, Pseudocode euklid(a, b) wenn b = 0 dann liefere a sonst wenn a = 0 dann liefere b sonst wenn a > b dann liefere euclid(a-b, b) sonst liefere euklid(a, b-a) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 14

Euklidischer Algorithmus 5 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 15

Euklidischer Algorithmus 6 • Neuer Algorithmus, iterativ, Pseudocode euklid(a, solange h = a a = b b = h liefere b) b ≠ 0 modulo b a Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 16

Euklidischer Algorithmus 7 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 17

Euklidischer Algorithmus 8 • Neuer Algorithmus, rekursiv, Pseudocode euklid(a, b) wenn b = 0 dann liefere a sonst liefere euklid(b, a modulo b) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 18

Euklidischer Algorithmus 9 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 19

Kochrezept 1 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 20

Kochrezept 2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 21

Montageanleitung Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 22

Kaffee kochen 1 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 23

Kaffee kochen 2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 24

Kaffee kochen 3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 25

Temperaturregelung Bügeleisen 1 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 26

Temperaturregelung Bügeleisen 2 • Schematischer Aufbau Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 27

Temperaturregelung Bügeleisen 3 • Wirkungsplan / Regelkreis Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 28

Temperaturregelung Bügeleisen 4 • Temperaturverlauf Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 29

Algorithmus Temperaturregelung ? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 30

Temperaturregelung in Assembler Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 31

Temperaturregelung in C Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 32

Programmiersprachen 1 • Wikipedia: http: //de. wikipedia. org/wiki/Programmiersprache • Definition: „Um Problemlösungen in einem Formalismus niederschreiben zu können, legt man Programmiersprachen fest. “ aus: Balzert, Lehrbuch. . . Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 33

Programmiersprachen 2 • Eine Programmiersprache ist eine formale Sprache (im Gegensatz z. B. zur Umgangssprache) • Programmiersprachen haben ein exakt definiertes Alphabet (i. d. R. Buchstaben, Ziffern und Sonderzeichen) • Programmiersprachen haben einen meist sehr kleinen Wortschatz (C etwa kennt nur 32 Worte!) • Programmiersprachen haben i. d. R. eine exakt einzuhaltende Syntax Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 34

Programmiersprachen 3 Problemstellung Hochsprachen (z. B. Fortran, Pascal, C, C++, Java, SQL, PHP) Assemblersprachen (für reale oder virtuelle Maschine / CPU) Maschinensprachen (Bitcode, Bytecode, Microcode) Hardware / Rechner / CPU Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 35

Programmiersprachen 4 • Skriptsprachen werden während der Ausführung vom Sprachinterpreter in Maschinencode übersetzt. Beispiele: Shell, Perl, PHP, SQL, Basic • Compilersprachen müssen vor der Ausführung von einem Übersetzersystem (Compiler, Linker) in Maschinencode übersetzt werden. Beispiele: Pascal, C, C++, C#, Java Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 36

Programmiersprachen 5 • Paradigmata – Imperative Sprachen (Fortran, Pascal, C, Ada) – Deklarative Sprachen (SQL, Lisp) – Objektorientierte Sprachen (Java, C++) – Nebenläufige Sprachen (Ada, Java, Par C) • Typisierung – Typenlose Sprachen (Java. Script, PHP) – Stark typisierte Sprachen (Ada) – Schwach typisierte Sprachen (C, C++) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 37

Programmiersprachen 7 • Beispiele Typisierung • Stammbaum Programmiersprachen (Wikipedia) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 38

Programmentwicklung 1 • Problem analysieren Modell entwerfen Algorithmus entwickeln • Programm kodieren • Programm übersetzen (bis syntaktisch fehlerfrei) • Programm testen (bis semantisch fehlerfrei ? ) • Programm produktiv Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 39

Programmentwicklung 2 • Friedemann Weise: Doppelkaffeetasse (auf youtube) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 40

Programmentwicklung 3 • Beispiel: Entwicklungsumgebungen für C – Kommandozeile mit Systemtools • Unix / Linux / Windows / i. OS: • Editor, Systemcompiler (gcc), Debugger, usw. • GCC (http: //gcc. gnu. org/) – Integrierte Entwicklungsumgebung (IDE) • • • Net. Beans (https: //netbeans. org/) z. B. mit Cygwin (http: //www. cygwin. com/) Code: : Blocks (http: //www. codeblocks. org/) z. B. mit Min. GW (http: //www. mingw. org/) u. v. a. m. Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 41

Mikrokontroller 1 • Beispiel: Arduino Uno Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 42

Mikrokontroller 2 • Beispiel: Arduino Nano Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 43

Mikrokontroller 3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 44
- Slides: 44