450 likes | 738 Views
Programmieren in C Einführung. Hochschule Fulda – FB AI Wintersemester 2014/15 http://c-ai.rz.hs-fulda.de Peter Klingebiel, HS Fulda, DVZ. Zur Vorlesung. Peter Klingebiel Dipl. Ing. Maschinenbau Leiter DVZ HS Fulda Raum E318 Telefon 0661/9640-172 http://www.hs-fulda.de/~klingebiel
E N D
Programmieren in CEinführung Hochschule Fulda – FB AI Wintersemester 2014/15 http://c-ai.rz.hs-fulda.de Peter Klingebiel, HS Fulda, DVZ
Zur Vorlesung Peter Klingebiel Dipl. Ing. Maschinenbau Leiter DVZ HS Fulda Raum E318 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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 3
Programmieren in C 1 • Programmieren • in • C ??? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Programmieren in C 2 Quelle: Eines Tages - Spiegel Online Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 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 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 6
Programmieren !?!?!? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
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
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
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
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 die vorangehende misst.“aus: Euklid, Die Elemente, hrg. v. C. Thaer • Algorithmus zur Bestimmung des größten gemeinsamen Teilers (ggT) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Euklidischer Algorithmus 2 • Alter Algorithmus, iterativ, Pseudocodeeuklid(a, b)wenn a = 0 dann liefere b sonst solangeb ≠ 0 wenn a > b dann a = a – b sonst b = b – a liefere a Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Euklidischer Algorithmus 3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Euklidischer Algorithmus 4 • Alter Algorithmus, rekursiv, Pseudocodeeuklid(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
Euklidischer Algorithmus 5 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Euklidischer Algorithmus 6 • Neuer Algorithmus, iterativ, Pseudocodeeuklid(a, b) solange b ≠ 0 h = a modulo b a = b b = h liefere a Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Euklidischer Algorithmus 7 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Euklidischer Algorithmus 8 • Neuer Algorithmus, rekursiv, Pseudocodeeuklid(a, b) wenn b = 0 dann liefere a sonstliefere euklid(b, a modulo b) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Euklidischer Algorithmus 9 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Kochrezept 1 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 20
Kochrezept 2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 21
Montageanleitung Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 22
Kaffee kochen 1 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 23
Kaffee kochen 2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 24
Kaffee kochen 3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 25
Temperaturregelung Bügeleisen 1 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 26
Temperaturregelung Bügeleisen 2 Schematischer Aufbau Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 27
Temperaturregelung Bügeleisen 3 Wirkungsplan / Regelkreis Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 28
Temperaturregelung Bügeleisen 4 Temperaturverlauf Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 29
Algorithmus Temperaturregelung ? Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Temperaturregelung in Assembler Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Temperaturregelung in C Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
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
Programmiersprachen 2 • Eine Programmiersprache ist eine formale Sprache (im Gegensatz z.B. zur Umgangs-sprache) • Programmiersprachen haben ein exakt de-finiertes 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
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
Programmiersprachen 4 • Skriptsprachenwerden während der Ausführung vom Sprachinterpreter in Maschinencode übersetzt.Beispiele: Shell, Perl, PHP, SQL, Basic • Compilersprachenmü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
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 (JavaScript, PHP) • Stark typisierte Sprachen (Ada) • Schwach typisierte Sprachen (C, C++) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Programmiersprachen 7 • Beispiele Typisierung • Stammbaum Programmiersprachen (Wikipedia) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Programmentwicklung 1 • Problem analysierenModell entwerfenAlgorithmus entwickeln • Programm kodieren • Programm übersetzen(bis syntaktisch fehlerfrei) • Programm testen(bis semantisch fehlerfrei ?) • Programm produktiv Programmieren in C - Peter Klingebiel - HS Fulda - DVZ
Programmentwicklung 2 Friedemann Weise: Doppelkaffeetasse (auf youtube) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 40
Programmentwicklung 3 Beispiel: Entwicklungsumgebungen für C Kommandozeile mit Systemtools Unix / Linux / Windows / iOS: Editor, Systemcompiler (gcc), Debugger, usw. GCC (http://gcc.gnu.org/) Integrierte Entwicklungsumgebung (IDE) NetBeans (https://netbeans.org/) z.B. mit Cygwin (http://www.cygwin.com/) Code::Blocks (http://www.codeblocks.org/) z.B. mit MinGW (http://www.mingw.org/) u.v.a.m. Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 41
Mikrokontroller 1 Beispiel: Arduino Uno Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 42
Mikrokontroller 2 Beispiel: Arduino Nano Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 43
Mikrokontroller 3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ 44