Operatoren, Kontrollstrukturen und Funktionen. Logische Operatoren  zum Vergleich zweier Ausdrücke  ==, !=,, =  Ergebnis ist vom Typ bool  Achtung!

Slides:



Advertisements
Ähnliche Präsentationen
3. Operatoren und Ausdrücke
Advertisements

Forschungszentrum caesar
10. Grundlagen imperativer Programmiersprachen
der Universität Oldenburg
Zusammenfassung Vorwoche
Das erste Programm (Folie 16)
DVG Ablaufsteuerung
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
Einführung in die Programmiersprache C 1
Informatik 1 Übung 2.
Kontrollstrukturen Verwendung: Steuerung des Ablaufs.
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Programmierung
Einführung in die Programmierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Grundkonzepte des Programmierens (mit ActionScript)
Purga - Scriptengine Ein Einblick.
Prof. Dr.-Ing. Franz-Josef Behr
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Einführung in PHP.
Einführung in PHP 5.
Datentypen Überblick Datentypen Einfache / fundamentale Datentypen
Programmieren in C Grundlagen C 2
BMEVIEEA100 Grundlagen der Programmierung
Vorlesung 3. if else Anweisung if (Ausdruck) Anweisung1 else Anweisung2 Ausdruck hat einen von 0 verschiedenen Wert, so wird Anweisung 1 ausgeführt. Bei.
PHP: Operatoren und Kontrollstrukturen
Variablen. var meineZahl:Number = 7; meineZahl 7 Name TypWert = Zuweisung von Variablen.
Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Grundlagen C 2
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Zusammenfassung des Kapitel 6
Einführung in die Programmiersprache C 2
Pointer. Precompiled Header  Vorübersetzung eingebundener Dateien häufig genutzt, selten geändert  Projekttyp „Win32 Console Application“
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
Variablen und Operatoren. C++ Teil 2: Grundstrukturen Variablen Operatoren Kontrollstrukturen Funktionen Header-Dateien Pointer und Referenzen.
Einführung. Ziel der Veranstaltung  Vermittlung von Grundkenntnissen in C++  Solide Basis für anschließende Weiterentwicklung  Fähigkeit, kleine Programme.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Tutorium Software-Engineering SS14 Florian Manghofer.
Inhalte der Übungen 1.Grundlagen, Ein- und Ausgabe 2.Kontrollstrukturen (Projekt 1) 3.Funktionen 4.Zeiger, Felder (Projekt 2) 5.Strings, Strukturen 6.Fileverarbeitung.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Singletons, Exceptions und (s)printf. Template Klassen  äquivalent zu Template-Funktionen  beim Erzeugen von Instanzen muss der Typ angegeben werden.
1 freedroidz – spielend Programmieren lernen. 2 Was ist freedroidz?
ESP Tutorium Studienassistent: Ewald Moitzi Gruppe 1.
Praktische Informatik 1
Hello World! Javakurs 2013 Arne Kappen
Datentypen: integer, char, string, boolean
Aufgaben zu Rückgabewerten
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Struktogramme.
Referenzen In c kennen wir gewöhnliche Variablen und Pointer.
Einführung in die Programmierung
Variable: typ varName = Wert Kiste: Art Aufschrift  Inhalt
Unterschiedliche Kontrollstrukturen
SS 04 Christiane Rauh Christian Hellinger
Arten von Kontrollstrukturen
Einführung in die Programmierung
Seminar Programmierstil: Codierungsstandards
Unterschiedliche Arten von Kontrollstrukturen
Einführung in die Programmierung
Einführung in die Programmierung
Polymorphie Überladen
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
«Delegierter» Methoden Schablone Funktionszeiger
Grundlagen der OO-Programmierung in C#
Datentyp- umwandlung.
Schleifen Datenfelder (Arrays) Verzweigungen
Einführung in die Programmierung
The Programming Language Pascal
 Präsentation transkript:

Operatoren, Kontrollstrukturen und Funktionen

Logische Operatoren  zum Vergleich zweier Ausdrücke  ==, !=,, =  Ergebnis ist vom Typ bool  Achtung! Große Verwechslungsgefahr von Vergleicher '==' mit Zuweiser '='  bool lvalue = expr expr

Logische Operatoren  logisches AND (binär): &&  logisches OR (binär): ||  logisches NOT (unär): !  Ergebnis vom Typ bool  result = ((true && false) || !true)

Bitweise Operatoren  AND &, OR |, XOR ^, NOT !  Bit shift left ( >) lvalue = expr dasDoppelte = wert << ^ = << =

Zuweisungen  Zuweisungsoperator =  Zuweisungskurzformen *=, /=, %=, +=, -=, >=, &=, |=, ^= binäre Operatoren einem der Operanden soll Ergebnis zugewiesen werden var1 = var1 + var2 wird zu var1 += var2  lvalue expr

Typecasts  explizite Umwandlung bei Variablen unterschiedlichen Typs der Compiler kann nicht immer entscheiden nur verwenden, wenn unbedingt nötig  Casts ohne Überprüfung reinterpret_cast Bitmuster wird einfach uminterpretiert möglichst nicht verwenden!

Typecasts  Überprüfung zur compile-time static_cast Probleme, wenn Wertebereich nicht ausreicht Typinformation muss zur compile-time vorliegen lvalue = static_cast (expr)  Überprüfung zur run-time dynamic_cast nur für Objekte, nicht primitive Datentypen lvalue = dynamic_cast (expr)

Kontrollstrukturen: if … else  if (condition) statement else statement if (a < b) cout << "a bigger than b"; else cout << "b bigger or equal a";  geschweifte Klammern, falls mehr als ein Statement  Erweiterungen möglich: if () … else if () … else  Verkürzte Form: „conditional expression“ a = b > c ? b : c; condition ? true : false

Kontrollstrukturen: switch … case  Kopf: switch (condition) condition muss ein Ganzzahldatentyp sein (incl. char!)  Rumpf: case const_n: statement_n beliebige Anzahl von case-Klauseln Abarbeitung der Statements ab condition==const_n mittels break; wird der switch-Block verlassen Standardbearbeitung mittels default:

Kontrollstrukturen: switch … case switch (a) { case 1: cout << "a = 1" << endl; case 2: cout << "a < 3" << endl; break; case 3: cout << "a = 3" << endl; break; default: cout 3" << endl; }

Kontrollstrukturen: while while (condition) statement  Überprüfung von condition vor Abarbeitung von statement do statement while (condition)  Überprüfung von condition nach Abarbeitung von statement

Kontrollstrukturen: for for (init; condition; step-expr) statement  Ausdrücke können leer sein  break; Schleife wird sofort verlassen  continue; nächster Schleifendurchlauf

Funktionen  Zusammenfassung mehrerer Anweisungen [qualifier] retval function-name (param-list) { block-of-code }  Funktionskopf und Funktionsrumpf  Parameterübergabe immer call-by-value  Rückgabewert über return expr;

Funktionen  Strukturierung der Software  Schaffung von Abstraktionslevel  Gemeinsamkeiten von Code auf sinnvoll parametrisierbare Codestücke abbilden  Deklaration: Signatur (Kopf) der Funktion vor der Benutzung (Prototyp)

Funktionen // function declaration int square(int num, bool show); // function call int b = 10; int a = square(b, true); // function definition int square(int num, bool show) { int result = num * num; if (show) cout << "Calculated result: " << result; return result; }

Funktionen – Overloading  mehrere Funktionen mit dem selben Namen  müssen sich in mindestens einem Parameter unterscheiden  Anzahl und/oder Typ  Unterscheidung durch Rückgabetyp reicht nicht aus int square(int num, bool show); float square(float num);

Funktionen – Overloading  Name-Mangling bei Funktionsdeklaration interne Erweiterung des Funktionsnamens um Parametersatz und return-Wert (Typen)  interne Aufhebung der Namensgleichheit  Bei Funktionsaufruf Auswahl der passenden Funktion durch den Compiler  nur Parametersatz zur Unterscheidung

Funktionen – Default Parameter  Zuweisung des default-Wertes des Parameters in der Funktionsdeklaration int square(int num, bool show = false);  Aufruf auch ohne Parameter möglich int b = 10; int a = square(b);

Funktionen – Default Parameter  Anzahl Default-Parameter beliebig  müssen alle am Ende der Parameterliste stehen  Zuweisung von Werten von links nach rechts int defFunc(int v1, int v2 = 0, int v3=0, int v4=0);

Funktionen - inline  Einfügen des Funktionscodes an die Aufrufstelle durch den Compiler  Reduktion des Overheads durch einen Funktionsaufruf  inline ist nur ein „Vorschlag“ an den Compiler  Verwendung bei: kurzen Funktionen häufigen Aufrufen inline int square(int num) { return num * num; }

Funktionen - Rekursion  Aufruf der Funktion aus sich selbst  Gefahr von Endlosschleifen oder stack- overflow long fact(long num) { if (num <= 1) return 1; else return num * fact(num -1); }

Aufgabe 4: Spiel Zahlenraten  Begrüßung  Spieler gibt gewünschten Schwierigkeitsgrad an leicht: Bereich 1 – 10 mittel: Bereich 1 – 50 schwer: Bereich 1 – 500  Ermittlung der Zufallszahl  Spieler rät, bis er die Zahl gefunden hat Hinweis geben, ob geratene Zahl größer oder kleiner als die gesuchte Zahl  Verabschiedung mit Angabe der Anzahl der Versuche

Zufall – nicht wirklich  Generator ermittelt Folge zufällig wirkender Zahlen komplexes Muster Muster immer gleich zufällige Initialisierung des Startwertes, meist über aktuelle Zeit Generator liefert Zahl zwischen 0 und // Zufallsgenerator initialisieren srand(timeGetTime()); // Zufallszahl ermitteln int randomNumber = rand();

Einbinden von Bibliotheken  Bibliotheken liegen in compiliertem Zustand vor  Einbindung über #pragma comment (lib, "libName") ggf. libName mit vollständigem Pfad // Bibliothek zur Ermittlung der aktuellen Zeit #include #pragma comment (lib, "winmm.lib")