Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programmieren in C / C++ Annäherung an C Hochschule Fulda – FB AI Wintersemester 2016/17 Peter Klingebiel, HS Fulda, FB AI.

Similar presentations


Presentation on theme: "Programmieren in C / C++ Annäherung an C Hochschule Fulda – FB AI Wintersemester 2016/17 Peter Klingebiel, HS Fulda, FB AI."— Presentation transcript:

1 Programmieren in C / C++ Annäherung an C Hochschule Fulda – FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI

2 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI2 Java – C 1 Java ist objektorientiert

3 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI3 Java – C 2 Objekte kapseln Daten (Attribute) und Operationen auf den Daten (Methoden) Attribute = Daten in C Methoden = Funktionen in C Objekte kommunizieren durch Senden und Emfangen von Nachrichten Objekte entstehen durch Instantiierung einer Objektklasse Java aus C abgeleitet Daher einige Ähnlichkeiten von Java und C

4 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI4 Java – C 3 C ist eine imperative strukturierte Sprache Daten werden durch die Mühle von Funk- tionen geschickt, um dann zu einem Resultat (Ergebnisdaten) zu kommen

5 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI5 Java – C 4 Beispiel Java: public class HelloWorld { public static void main(String[]args) { // Ausgabe Hello World! System.out.println("Hello World!"); } } Beispiel C: int main(int argc, char *argv[]) { printf("Hello World!\n"); return(0); }

6 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI6 Woher kommt C? 1 1971-73 Dennis Ritchie entwickelt bei den Bell Laboratorien C für die Programmierung des neuen UNIX-Betriebssystems 1973 Implementierung von UNIX in C Vorläufer: B (1969/70) und BCPL (1960er Jahre) 1978 Ritchie/Kernighan: „The C Programming Language“ (dt. „Programmieren in C“) 1989 Norm ANSI X3.159-1989 Programming Language C 1990 ISO Standard C90 1995 erweiterter ISO Standard C95 1999 ISO/IEC 9899:1999

7 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI7 Woher kommt C? 2

8 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI8 Einsatzgebiete von C CAD-, CAE-, Simulationssysteme Text- und Grafikverarbeitungssysteme Mathematik-, Numerische Systeme Betriebssysteme (Unix, Linux,...) Systemprogramme (Unix, Linux, Windows,...) Sprachinterpreter, -compiler (GNU C++, CC) Netz-, Webdienste (Apache Webserver,...) Steuerungs-, Regelungssysteme Aber auch: Mathlab  C-Code

9 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI9 Wie entsteht ein C-Programm? 1 Problem analysieren und Modell entwerfen Algorithmus entwickeln Programm kodieren Programm übersetzen (bis syntaktisch fehlerfrei) Programm testen (bis semantisch fehlerfrei ?) Programm produktiv (??)

10 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI10 Wie entsteht ein C-Programm? 2 Nach Problemanalyse und dem Entwurf des Lösungsalgorithmus: Entwurf des Programms in Pseudocode, mit Hilfe von Programmablaufplänen, Strukto- grammen oder anderen Entwurfsverfahren Kodieren des Programmtextes mit Editor (standalone oder in Programmierumgebung) Übersetzen des Programmtextes mit dem C-Compiler und Montieren zu einem ausführbaren Programm Programm testen

11 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI11 Wie entsteht ein C-Programm? 3 Beispiel: Programm Ausgabe eines Textes $ ed hallo.c /* hallo.c */ #include int main(void) { puts(„Hallo Welt!\n“); return(0); } $ gcc –o hallo hallo.c $./hallo Hallo Welt!

12 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI12 Wie entsteht ein C-Programm? 4 Übersetzung passiert in mehreren Schritten C-Preprozessor (cpp) - reine Textoperationen (include, define, if,..) im Quelltext C-Compiler übersetzt C-Quelltext in den maschinenabhängigen Assemblercode Assembler erzeugt noch nicht ausführbaren Maschinencode Linker montiert den Maschinencode mit Funktionen aus Bibliotheken zu einem dann ausführbarem Programm

13 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI13 Wie wird ein C-Programm entworfen? 1 Pseudocode, Bsp. Euklidischer Algorithmus 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

14 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI14 Wie wird ein C-Programm entworfen? 2 On the fly? Quick and dirty?

15 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI15 Wie wird ein C-Programm entworfen? 3 Pseudocode als Kommentar in C /* Funktion euklid – euklid. Algorithmus */ int euklid(int a, int b) { /* wenn a = 0 dann liefere b */ if(a == 0) return(b); /* sonst solange b ≠ 0 */ while(b != 0) { /* wenn a > b dann a = a – b */ if(a > b) a = a – b; /* sonst b = b – a */ else b = b –a; } /* liefere a */ return(a); }

16 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI16 Wie wird ein C-Programm entworfen? 4 Programmablaufplan wirklich geeignet? eher für Assembler doch oft eingesetzt

17 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI17 Wie wird ein C-Programm entworfen? 5 Struktogramm

18 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI18 Wie wird ein C-Programm ausgeführt? 1 Ausführung direkt auf dem Prozessor –z.B. Temperaturregelung in Kühltruhe –Programm in ROM, EPROM o.ä. gespeichert –alle Funktionalitäten müssen im Programm in Maschinencode vorhanden sein Ausführung auf einem Betriebssystem –Hardware ist durch das BS gekapselt –Starten/Beenden des Programms über das BS –Unterstützung durch BS bzw. BS-Funktionen, z.B. IO, Dateien, Timer, Signale, Threads usw.

19 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI19 Wie wird ein C-Programm ausgeführt? 2 Betriebssystem Mikrocontroller Hardware / Prozessor Anwendungsprogramm Funktionsbibliotheken Systemcalls / Systemaufrufe Anwendungsprogramm (incl. aller Funktionen) Hardware / Prozessor

20 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI20 Wie ist ein C-Programm aufgebaut? 1 Beispiel hallo.c /* * hallo.c */ #include int main(void) { char *text = „Hallo, Welt!“; puts(text); return(0); }

21 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI21 Wie ist ein C-Programm aufgebaut? 2 Kommentare, mit /* und */ geklammert, keine Schachtelung möglich!!! Einzeiliger Kommentar wie bei Java mit // Preprozessoranweisungen, beginnen mit # Schlüsselwörter, z.B. return Bezeichner (Identifier) für Konstanten, Variablen, Funktionsnamen usw. fangen mit Buchstaben oder Unterstrich _ an, können dann weitere Buchstaben, _ und Ziffern enthalten. Keine Schlüsselwörter! Jede Anweisung wird durch ; beendet!

22 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI22 Wie ist ein C-Programm aufgebaut? 3 Funktionen / Prozeduren Funktionskopf gibt Typ des Rückgabewerts an, den Namen der Funktion und in Klammern ggfs. die Parameter mit Typ und Bezeichnername Funktionskörper ist mit { und } geklammert, enthält Deklaration von Variablen, Konstanten, den Programmablauf sowie das return Jedes C-Programm hat eine Funktion main()

23 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI23 Wie ist ein C-Programm aufgebaut? 4 Allgemeiner Aufbau eines C-Programms /* Kommentare */ /* Preprozessoranweisungen */ /* Globale Variablen */ /* Funktionen / Unterprogramme */ type function1(...) { /* Lokale Variablen */ /* Anweisungen */ } /* Hauptprogramm */ int main(...) { /* Lokale Variablen */ /* Anweisungen */ }

24 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI24 Wie ist ein C-Programm aufgebaut? 5 Beispiel: Temperaturregelung

25 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI25 Wie soll ein C-Programm nicht aussehen? 1 Quelle: International Obfuscated C Code ContestInternational Obfuscated C Code Contest

26 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI26 Wie soll ein C-Programm nicht aussehen? 2 Quelle: main.c des X-Programms xtermmain.c des X-Programms xterm

27 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI27 Wie soll ein C-Programm nicht aussehen? 3

28 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI28 Wie soll ein C-Programm nicht aussehen? 4

29 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI29 Wie soll ein C-Programm nicht aussehen? 5

30 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI30 So kann ein C-Programm aussehen! 1

31 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI31 So kann ein C-Programm aussehen! 2

32 Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI32 So kann ein C-Programm aussehen! 3


Download ppt "Programmieren in C / C++ Annäherung an C Hochschule Fulda – FB AI Wintersemester 2016/17 Peter Klingebiel, HS Fulda, FB AI."

Similar presentations


Ads by Google