34
C-Programmierung Mehre (Subject) / Skript_Mehre_Programmieren-C (Lesson)
Advertisement
- Kritikpunkt an C Mangelndes Überprüfen des Programms zur Laufzeit Keine saubere Ausnahmebehandlung Wild Casting Unbedachter Umgang mit Pointer möglich
- Was fehlt bei C(nativ)? Grafik Netzwerk-Programmierung Multimedia und andere "AddOns" → Nicht entscheidend zum Erlernen einer Programmiersprache!!!
- Wdh. - Programmieren / Programme entwickeln /Programme schreiben Problembechreibung Modellbildung; dazu gehört der Entwurf von Datenstrukturen und Algorithmen Programmtext (auch Quelltext genannt) eingeben und bearbeiten Compilieren (d.h. Übersetzen) in eine Objektdatei (* .o bzw. *obj) Linken (Zusammenbinden) der Objektdatei zu einem ausführbaren Programm (*.exe) Testen des Programms fertiges Programm
- Grundkonzepte von Programmiersprachen 1/2 Datentypen Variablen + Konstanten Ausdrücke Zuweisungen
- Grundkonzepte von Programmiersprachen 1/2 Datentypen ? Elementare + strukturierte Modellierung verschiedenartiger Größen Sicherheit durch Typüberprüfung
- Grundkonzepte von Programmiersprachen 1/2 Variablen + Konstanten ? Verwende von Namen anstelle von Speicheradressen für den Zugriff
- Grundkonzepte von Programmiersprachen 1/2 Ausdrücke ? Verwendung in Formeln zur Verknüpfung von Variablen und Konstanten in Zuweisungen
- Grundkonzepte von Programmiersprachen 1/2 Zuweisungen ? Speicherung von Zustandswerten in Variablen Auswertung von Formeln
- Grundkonzepte von Programmiersprachen 2/2 Ablaufsteuerungsanweisungen Unterprogramme Klasse
- Grundkonzepte von Programmiersprachen 2/2 Ablaufsteuerungsanweisungen ? Verzweigungen + Schleifen Sichere Manipulation des Programmablaufs (Kontrollfluss)
- Advertisement
- Grundkonzepte von Programmiersprachen 2/2 Unterprogramme ? Prozeduren, Funktionen, Methode Kapselung von Programmstücken zur Wiederverwendung Und zur übersichtlichen Gestaltung und Strukturierung des Programms
- Grundkonzepte von Programmiersprachen 2/2 Klassen ? Zusammenfassung von Daten + Methoden in einer eigenständigen gekapselten Entität
- Syntaxnotation in C 1/2 Syntax einer Programmiersprache regelt die erlaubten Kombinationen von Symbolen Erweiterte Backus-Naur-Form Verbale Beschreibung als Ergänzungen Kontext-sensitiv → Groß- und Kleinschreibung
- Syntaxnotation in C 1/2 Linien-breite, 2raumwohnung maximaler_Wert, min_Value Mittlerer_Wert_über_alle_Eingaben
- Variabeln 1/2 In der Regel will man mehrfach auf eine Speicherzelle zugreifen Dazu gibt man der Speicherzelle einen Namen (identifier), unter dem man immer wieder auf sie zugreifen kann - einer Variablen
- Variabeln 2/2 In der Regel will man mehrfach auf eine Speicherzelle zugreifen einen Wert zuweisen den Inhalt verändern den Inhalt abfragen und ausgeben
- Variabeln 2/2 Dazu gibt man der Speicherzelle einen Namen (identifier), unter dem man immer wieder auf sie zugreifen kann - einer Variablen eine Variable hat einen bestimmten Typ eine Variable muss vor der ersten Benutzung festgelegt (vereinbart) werden eine Variable kann den Typ nicht ändern
- Übung 1 Der Benutzer möchte ein Programm, welches ihm zwei beliebige ganze Zahlen addiert auf dem Bildschirm ausgibt Entwerfen und realisieren Sie eine Lösung in C !!!
- Übung Der Benutzer möchte ein Programm, welches ihm zwei beliebige ganze Zahlen addiert auf den Bildschirm ausgibt. Entwerfen und realisieren Sie eine Lösung in C !!!
- Übung Der Benutzer möchte ein Programm, welches ihm zwei beliebige ganze Zahlen addiert auf den Bildschirm ausgibt. Entwerfen und realisieren Sie eine Lösung in C !!!
- Regeln für Variablennamen Der Name beginnt mit einem Buchstaben Anschließend folgt eine beliebige Folge von alphanumerischen Zeichen Der Unterstrich (underscore) kann wie ein Buchstabe eingesetzt werden Groß- und Kleinschreibung wird unterschieden in C reservierte Wörter (Schlüsselwörter) sind verboten (also nicht int long) die Länge des Namens ist beliebig, jedoch unterscheiden viele Compiler nur die ersten 31 Zeichen C Konvention: Namen von Variablen beginnen mit einem Kleinbuchstaben
- Regeln für Variablennamen - idetifier 2/2 Namen sollten passend und weitgehend selbsterklärend (aussagekräftig) sein (nicht int eineintvariable) Namen von Integer Variablen fangen oft mit Buchstaben von i bis n an. Für kurzlebige Variablen können kurze Bezeichnungen wie i, j, k verwendet werden. Konsequent sein: wenn sich die Bedeutung einer Variable im Programm ändert, auch ihren Namen anpassen Einheitliche Sprache ( Englisch oder Deutsch) Konsistenz! Ein einmal eingeführter Stil für Namen, Einrückungen, etc. Konsistenz! Ein einmal eingeführter Stil für Namen, Einrückungen, etc, sollte beibehalten werden
- Variable für Zahlen 1/2 Der Typ einer Variable bstimmt, wie groß der Speicherplatz der Variablen ist und wie der Inhalt der Variablen interpretiert wird Beispiel: int number; Diese Anweisung vereinbart eine Variable mit dem Bezeichner number und den Datentyp int Der Inhalt der Variablen number wird als ganze Zahl interpretiert
- Variable für Zahlen 2/2 Jede Variable muss mit einem Wert belegt werden, bevor diese lesend verwendet wird; int number; Diese Anweisung weist der Variablen number keinen expliziten Wert zu. Der Wert der Variablen ist daher "quasi zufällig" Deklaration mit Initialisierung int number = 7; int num_count = number * 4;
- Elementare Datentypen char ganze Zahl -128 bis 127 short ganze Zahl -32768 bis 32767 int ganze Zahl -231 bis 231 - 1 long ganze Zahl -231 bis 231 - 1 unsigned char ganze Zahl 0 bis 255 unsigned short ganze Zahl 0 bis 65535 unsigned int ganze Zahl 0 bis 232 - 1 insigned long ganze Zahl 0 bis 232 - 1 float Kommazahl - 3.4*1038 bis 3.4*1038 double Kommazahl - 1.7*10308 bis 1.7*10308 long double Kommazahl - 1.1*104932 bis 1.1*104932
- Bedeutung der Datentypen für Programmiersprache Angabe des Wertebereichs Menge der möglichen Ausprägungen Zuässige Operationen auf den Wertebereich Möglichkeit der Typumwadlungen implizite und explizite Siehe "cast-Operator"
- Bedeutung der Datentypen für Programmiersprachen Datentypüberprüfung statisch und dynamisch Überladung (Datentyp, Operator, Operanden) Klassenkonzepte
- Operatoren Programmiersprache C enthält u.a. folgende Operatoren = Zuweisung + Addition - Subtraktion * Multiplikation / Division % Modulo (Rest der ganzzahligen Division) > Vergleich auf größer < Vergleich auf kleiner == Vergleich auf gleich != Vergleich auf ungleich >= Vergleich auf kleiner oder gleich && Logisch und -Verknüpfung von log. Ausdrücken II Logisch oder - Verknüpfung von log. Ausdrücken ! Logische Negation
- Arithmetische Operatoren + - * / % + unär oder binär, alle ganzzahligen oder Fliekommatypen - unär oder binär, alle ganzzahligen oder Fließkommatypen * binär, alle ganzzahlingen oder Fließkommatypen / binär, alle ganzzahligen oder Fließkommatypen, bei ganzahligen Operanden wird abgeschnitten, die Richtung bei negativen Operanden ist maschinenabhängig % binär, nur ganzzahlige Typen liefert den Rest der ganzzahligen Division, das Vorzeichen bei negativen Operanden ist maschinenahängig
- Typumwandlung und Cast-Operator Bei gemischten Ausdrücken (Ausdrücke, die verschiedenen Datentypen enthalten), nimmt der Compiler implizit Typumwandlungen vor i.A. vom "kleineren" zum größeren" Typ casting ist die explizite Umwandlung einer Variablen in einen anderen Typ Sie sind einfach durch die in Klammern gesetzteTypangabe vor einem Asudruck erreicht
- Advertisement
- Rangordnung der Operatoren "Traditionelle Rangordnung" vgl. Mathmatik ("Punkt vor Strich" - Regel) Manipulation der Ordnung durch explizites Setzen von (runden) Klammern
- Sichtbarkeit von Variablen Global Scope - "Globale Sichtbarkeit" Variablen sind "überall" sichtbar Block Scope - "Lokale Sichtbarkeit" Ist in einem Block ein weiterer innerer Block eingeschachtelt, so sind die Variablen des äußeren Blocks im inneren sichtbar (aber nicht umgekehrt) Ist im inneren Block eine Variable definiert, die den gleichen Namen besitzt, wie eine Variable des äußeren Blocks, so überdeckt die innere Variable die äußere count global Scope, nfound block scope, nerrors block scope, ntimees block scope nfound (!)
- Kurzformen für Ausdrücke ++x - -x x++ x- - ++x Wert von x(1 - Wert) wird inkrementiert und wieder in x gespeichert. Der Wert des Ausdricks ist der neue Wert von x. - -x Wert von x (1 - Wert) wird dekrementiert und wieder in x gespeichert. Der Wert des Ausdricks ist der neue Wert von x. x++ Wert von x (1 - Wert) wird inkrementiert und wieder in x gespeichert. Der Wert des Ausdrucks it der alte Wert von x x - - Wert von x (1 - Wert) wird dekrementiert und wieder in x Gespeichert. Der Wert des Ausdrucks ist der alte Wert von x.
- Kurzformen für Wertzuweisungen x+= y x- = y x*= y x/= y x%=y x= y x &= y x I = y x Λ = y x += y x =x + y x -= y x = x - y x*= y x = x * y x/= y x = x / y x%=y x = % y x<<= y x = << y (shift: später) x>>= y x = >> y (shift: später) x&= y x = & y xI= y x = I y xΛ= y x = x Λ y