Kontrollstrukturen -- Entscheidungen, Abfragen und Fallunterscheidungen

Größe: px
Ab Seite anzeigen:

Download "Kontrollstrukturen -- Entscheidungen, Abfragen und Fallunterscheidungen"

Transkript

1 Kontrollstrukturen -- Entscheidungen, Abfragen und Fallunterscheidungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling Hochschule Darmstadt Fachbereich Informatik WS 2013/14

2 Motivation Bisher sind alle unsere Programme sequentiell, d.h. Zeile für Zeile nacheinander abgearbeitet worden. Kontrollstrukturen dienen dazu, den Programmfluss so zu manipulieren, so dass an einer anderen Stelle im Programm mit der Ausführung fortgesetzt wird. Über lassen sich zur Laufzeit bestimmte Bedingungen prüfen und dazugehörige Aktionen realisieren. Es ist damit also nicht mehr länger gewährleistet, dass das Programm jede Programmzeile erreicht und abarbeitet. Auf der anderen Seite werden die Programme dadurch flexibler und der Programmierer kann auf die verschiedensten Eingaben und Situationen reagieren (robuster Code). Durch die Kenntnis von Boolescher Logik und deren Kombinationen lassen sich alle möglichen Fälle zu einer Bedingung mit entsprechenden Handlungsanweisungen ausstatten. 2 / 39

3 if-abfragen Überblick 1 if-abfragen Bedingungen definieren Wenn dann sonst -Abfragen mit else Mehrere Bedingungen prüfen mit booleschen Funktionen 2 Fallunterscheidungen Das switch-statement 3 Visualisierung des Programmablaufs 3 / 39

4 if-abfragen Entscheidungen definieren Eine Entscheidung wird in ihrer einfachsten Form in C++ folgendermassen verwendet: if (Bedingung) Anweisung; Nur dann, wenn die Bedingung in Klammern den booleschen Wert true ergibt, wird die Anweisung ausgeführt, sonst nicht. Man kann auch sagen, dass die Bedingung wahr oder falsch ist bzw. die Abfrage zutrifft oder nicht. 4 / 39

5 if-abfragen Mehrere Anweisungen bei Entscheidungen ausführen Für den Fall, dass mehrere Anweisungen nach der erfolgreichen Prüfung der Bedingung ausgeführt werden sollen, so müssen diese in einem Block eingeschlossen sein. if (Bedingung) { Anweisung1; Anweisung2; AnweisungN; } Andernfalls kann es zu ungewünschten Nebeneffekten kommen: 1 if ( Bedingung ) 2 Anweisung1 ; 3 Anweisung2 ; Der Compiler wird beim Fehlen der geschweiften Klammern davon ausgehen, dass nur Anweisung1 zu der Abfrage gehört (die Einrückungen spielen keine Rolle für ihn). In diesem Fall wird Anweisung2 in Zeile 3 immer ausgeführt werden, egal, ob die Bedingung zutrifft oder nicht. 5 / 39

6 if-abfragen Fallstrick bei der Verwendung von Semikolon Die if-anweisung selbst benötigt kein Semikolon am Ende. Wird doch ein Semikolon nach der Bedingung eingefügt, so wird der Compiler das nicht als Fehler melden und das Programm übersetzen. Vorsicht mit dem Semikolon: if (Bedingung); Anweisung; In diesem Fall wertet der Compiler das Semikolon als das Ende der if-anweisung. Die nachfolgende Anweisung wird auf jeden Fall ausgeführt, ganz egal ob die Bedingung zutrifft oder nicht. 6 / 39

7 Bedingungen definieren Überblick 1 if-abfragen Bedingungen definieren Wenn dann sonst -Abfragen mit else Mehrere Bedingungen prüfen mit booleschen Funktionen 2 Fallunterscheidungen Das switch-statement 3 Visualisierung des Programmablaufs 7 / 39

8 Bedingungen definieren Bedingungen mit Vergleichsoperatoren definieren Die Bedingung in der if-abfrage kann ein beliebiger Ausdruck sein, der entweder einen boolschen Wahrheitswert (true/false) oder nicht-null ergibt. Das bedeutet, dass der Ausdruck if (expression) die gleiche Bedeutung hat wie if (expression!= 0). Die folgenden Vergleichsoperatoren können verwendet werden: Operator Erläuterung Beispiel == liefert true, wenn beide Operanden gleich sind x == 2, für x = 2;!= ergibt true, falls beide Operatoren ungleich x!= 1 sind > ist true, sollte der linke Operand grösser als x > y der rechte sein >= wie oben, nur wird ebenfalls auf Gleichheit x >= y geprüft < true, wenn der linke Operand kleiner ist als x < y der rechte <= wie oben, nur wird ebenfalls auf Gleichheit geprüft x <= y 8 / 39

9 Bedingungen definieren Beispiel zu Vergleichsoperatoren Hier wird die Verwendung des Vergleichsoperators <= gezeigt, um das Alter abzufragen und basierend auf der Eingabe einen anderen Wert zurückzugeben. 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 int alter, returnwert = 0; 6 cout << " Bitte geben Sie ihr Alter in Jahren ein : "; 7 cin >> alter ; 8 if ( alter <= 17) 9 returnwert = 1; if ( alter == 100) 12 returnwert = -1; return returnwert ; 15 } Beachten Sie besonders den Unterschied zwischen dem Vergleich in Zeile 11 (==) und der Zuweisung in Zeile 12 mit nur einem =. Der Compiler akzeptiert auch Zuweisungen in der Bedingung einer if-abfrage, dies ist aber selten das, was man haben möchte! 9 / 39

10 Bedingungen definieren Vergleichen von char und string Zeichenketten und Strings lassen sich folgendermassen vergleichen. 1 # include <iostream > 2 # include <string > 3 using namespace std; 4 5 int main () { 6 char eingabezeichen ; 7 string eingabestring ; 8 9 cout << " Das Fragezeichen eingeben, um Hilfe zu erhalten : "; 10 cin >> eingabezeichen ; 11 if ( eingabezeichen ==? ) 12 cout << " Hilfe noch nicht implementiert "; cout << " Geben Sie Exit ein, um das Programm zu beenden : "; 15 cin >> eingabestring ; 16 if ( eingabestring == " Exit ") 17 cout << " Programm wird beendet!"; return 0; 20 } 10 / 39

11 Wenn dann sonst -Abfragen mit else Überblick 1 if-abfragen Bedingungen definieren Wenn dann sonst -Abfragen mit else Mehrere Bedingungen prüfen mit booleschen Funktionen 2 Fallunterscheidungen Das switch-statement 3 Visualisierung des Programmablaufs 11 / 39

12 Wenn dann sonst -Abfragen mit else else-abschnitte Sollte die Bedingung einer if-abfrage nicht zutreffen, kann ein alternativer Pfad eingeschlagen werden. Dieser wird immer dann ausgeführt, wenn die Bedingung nicht zutrifft und stellt dadurch eine Alternative dar, womit dann Wenn irgendetwas, dann x sonst y Verzweigungen im Programm ermöglicht werden. Die Syntax dazu lautet allgemein: Einzelne Anweisung ausführen: 1 if ( Bedingung ) 2 Anweisung ; 3 else 4 Anweisung ; Mehrere Anweisungen ausführen: 1 if ( Bedingung ) { 2 Anweisungen ; 3 } 4 else { 5 Anweisungen ; 6 } Natürlich lassen sich diese beiden Arten auch kombinieren, so dass bei einem else-abschnitt nur eine Anweisung stehen kann, während die if-abfrage mehrere Befehle ausführt, welche in geschweifte Klammern eingeschlossen sind und umgekehrt. 12 / 39

13 Wenn dann sonst -Abfragen mit else Hörsaalübung Schreiben Sie ein Programm, dass den Benutzer nach seinem Alter fragt. Ist der Benutzer mindestens 18 Jahre alt, so soll eine Begrüssungsmeldung ausgegeben werden. Falls das Alter noch nicht erreicht wurde, soll eine Meldung den Anwender darauf hinweisen, dass das Programm erst mit 18 Jahren benutzt werden darf. Verwenden Sie einen geeigneten Vergleichsoperator in einem if else-konstrukt und definieren Sie geeignete Variablentypen. 13 / 39

14 Wenn dann sonst -Abfragen mit else Eine mögliche Lösung zur Hörsaalübung 1 # include <iostream > 2 # include <string > 3 using namespace std; 4 5 int main () { 6 unsigned int alter ; 7 string nachricht ; 8 9 cout << " Bitte geben Sie ihr Alter ein: "; 10 cin >> alter ; if ( alter >= 18) 13 nachricht = " Willkommen!\n"; 14 else 15 nachricht = " Sie sind leider noch nicht alt genug!\n"; cout << nachricht ; 18 return 0; 19 } 14 / 39

15 Wenn dann sonst -Abfragen mit else Der Operator zur bedingten Bewertung Es gibt einen speziellen Operator der eine verkürzte Schreibweise zur bedingten Bewertung ermöglicht. Die allgemeine Syntax lautet: Ausdruck? Ausdruck_wahr : Ausdruck_falsch 1 int zahl ; 2 cout << " Bitte geben Sie eine Zahl ein: "; 3 cin >> zahl ; 4 cout << zahl << " ist " << ( zahl %2 == 0? " eine " : " keine ") << " gerade Zahl!"; Bei der Verwendung dieses Operators ist Vorsicht geboten, denn der Code der dadurch entsteht, kann schnell unleserlich werden. Benutzen Sie stattdessen das if else-konstrukt, wenn Sie die Übersicht verlieren. 15 / 39

16 Wenn dann sonst -Abfragen mit else Verschachtelung von if else Es lassen sich auch mehrere if Konstrukte ineinander mit den dazugehörigen else-abschnitten verschachteln. 1 if (x < 100) { 2 if (x == 50) { } else { } 7 } Es muss immer klar geregelt sein, zu welchem if ein else gehört. Daher gilt die Regel, dass ein else immer zum unmittelbar vorherigen if gehört, wobei die Blockstruktur zu beachten ist. 1 if (n > 0) 2 if (a > b) 3 z = a; 4 else 5 z = b; 1 if (n > 0) { 2 if (a > b) 3 z = a; 4 } 5 else 6 z = b; 16 / 39

17 Wenn dann sonst -Abfragen mit else Die else if Bedingung Es lassen sich mehrere Bedingungen nacheinander abprüfen, indem das else if (Bedingung)-Konstrukt verwendet wird. 1 if (x < 100) { } else if (y > 0) { } else { 6 // in allen anderen Faellen 7 } In diesem Fall lassen sich mehrere Bedingungen nacheinander abprüfen, die der Reihe nach ausgewertet werden. Falls keine dieser Bedingungen zutrifft, kann optional ein letztes else die übrigen Fälle abhandeln. 17 / 39

18 Mehrere Bedingungen prüfen mit booleschen Funktionen Überblick 1 if-abfragen Bedingungen definieren Wenn dann sonst -Abfragen mit else Mehrere Bedingungen prüfen mit booleschen Funktionen 2 Fallunterscheidungen Das switch-statement 3 Visualisierung des Programmablaufs 18 / 39

19 Mehrere Bedingungen prüfen mit booleschen Funktionen Prüfen mehrerer Bedingungen auf einmal In der if-bedingung können nicht nur eine, sondern beliebig viele Bedingungen geprüft werden. Da hier alle Aussagen entweder true oder false ergeben, entstehen verschiedene Kombinationen von Wahrheitswerten, die sich Mithilfe von Booleschen Funktionen miteinander verknüpfen lassen. So wird gewährleistet, dass alle möglichen Ergebnisse dieser Ausdrücke auch entsprechend abgearbeitet werden. Aus diesem Grund ist es wichtig, Boolesche Grundfunktionen zu kennen, um die richtige Verknüpfungsart in der if-bedingung zu wählen. 19 / 39

20 Mehrere Bedingungen prüfen mit booleschen Funktionen Logische Verknüpfungen Da wir nur boolesche Werte mit true und false betrachten, lassen sich sogenannte Wahrheitstabellen für deren Kombinationen miteinander aufstellen. Durch eine Wahrheitstabelle wird eine logische Verknüpfung mit mehreren Eingangssignalen zu einem (oder mehreren) Ausgangssignalen definiert. Durch die darin enthaltenen logischen Zusammenhänge zwischen Ein- und Ausgangssignalen erhält man die Gesetzmäßigkeiten dieser Verknüpfung. Allgemein lautet die Syntax für mehrere logische Verknüpfungen: (Bedingung1 Logische_Verknüpfung Bedingung2) Welche verschiedenen Verknüpfungstypen und Kombinationsmöglichkeiten es gibt wollen wir uns nun ansehen. 20 / 39

21 Mehrere Bedingungen prüfen mit booleschen Funktionen Die OR-Verknüpfung Wenn mindestens einer der beiden Ausdrücke true ist, dann ergibt auch der Zielwert true und es handelt sich um eine OR (Oder) Verknüpfung, die in C++ mit definiert wird. false false = false 21 / 39

22 Mehrere Bedingungen prüfen mit booleschen Funktionen Die OR-Verknüpfung Wenn mindestens einer der beiden Ausdrücke true ist, dann ergibt auch der Zielwert true und es handelt sich um eine OR (Oder) Verknüpfung, die in C++ mit definiert wird. false false = false false true = true 21 / 39

23 Mehrere Bedingungen prüfen mit booleschen Funktionen Die OR-Verknüpfung Wenn mindestens einer der beiden Ausdrücke true ist, dann ergibt auch der Zielwert true und es handelt sich um eine OR (Oder) Verknüpfung, die in C++ mit definiert wird. false false = false false true = true true false = true 21 / 39

24 Mehrere Bedingungen prüfen mit booleschen Funktionen Die OR-Verknüpfung Wenn mindestens einer der beiden Ausdrücke true ist, dann ergibt auch der Zielwert true und es handelt sich um eine OR (Oder) Verknüpfung, die in C++ mit definiert wird. false false = false false true = true true false = true true true = true 21 / 39

25 Mehrere Bedingungen prüfen mit booleschen Funktionen Beispiel zur Oder-Verknüpfung In einem vorherigen Beispiel hatten wir bemerkt, dass es einen Unterschied macht, ob ein Zeichen in Gross- oder in Kleinbuchstaben eingegeben und anschliessend den Vergleich angestellt wird. Wir wollen in diesem Beispiel dafür sorgen, dass sowohl x als auch X erkannt und in den entsprechenden Pfad verzweigt wird. Hierzu eignet sich die Oder-Verknüpfung: 1 char eingabe ; 2 cout << " Bitte druecken Sie X zum beenden : "; 3 cin >> eingabe ; 4 if ( eingabe == X eingabe == x ) 5 cout << " Programm wird beendet!\n"; 6 else 7 cout << " Programm wird fortgesetzt...\ n"; Zeile 4 kann so gelesen werden: Wenn die Variable eingabe den Wert X oder den Wert x hat, dann ist die if-bedingung erfüllt (true). Generell erlaubt die Oder-Verknüpfung mehr Zustände, die true ergeben. Es genügt, wenn nur einer von mehreren mit oder verknüpften Ausdrücken true ist, um die ganze Aussage mit true zu bewerten. 22 / 39

26 Mehrere Bedingungen prüfen mit booleschen Funktionen Die AND-Verknüpfung Bei der AND (Und) Verknüpfung ist der Ausgangswert nur dann true, falls alle Eingänge den Wert true besitzen. Mit && werden die einzelnen Bedingungen im Quellcode verknüpft. false && false = false 23 / 39

27 Mehrere Bedingungen prüfen mit booleschen Funktionen Die AND-Verknüpfung Bei der AND (Und) Verknüpfung ist der Ausgangswert nur dann true, falls alle Eingänge den Wert true besitzen. Mit && werden die einzelnen Bedingungen im Quellcode verknüpft. false && false = false false && true = false 23 / 39

28 Mehrere Bedingungen prüfen mit booleschen Funktionen Die AND-Verknüpfung Bei der AND (Und) Verknüpfung ist der Ausgangswert nur dann true, falls alle Eingänge den Wert true besitzen. Mit && werden die einzelnen Bedingungen im Quellcode verknüpft. false && false = false false && true = false true && false = false 23 / 39

29 Mehrere Bedingungen prüfen mit booleschen Funktionen Die AND-Verknüpfung Bei der AND (Und) Verknüpfung ist der Ausgangswert nur dann true, falls alle Eingänge den Wert true besitzen. Mit && werden die einzelnen Bedingungen im Quellcode verknüpft. false && false = false false && true = false true && false = false true && true = true 23 / 39

30 Mehrere Bedingungen prüfen mit booleschen Funktionen Beispiel zur Und-Verknüpfung In diesem Beispiel wird eine Bereichsüberprüfung für die Eingabe vorgenommen. Durch eine untere und obere Grenze wird der Wertebereich festgelegt. Somit müssen alle eingegebenen Werte sowohl grösser als der untere, als auch kleiner als der obere Bereich sein. 1 unsigned int zahl ; 2 cout << " Bitte eine ganze Zahl zwischen 1 und 100 eingeben : "; 3 cin >> zahl ; 4 if ( zahl >= 1 && zahl <= 100) 5 cout << " Die Zahl befindet sich im Wertebereich!"; 6 else 7 cout << " Die Zahl ist ausserhalb des Wertebereichs."; Die Und Verknüpfung ist restriktiver, weil diese nur den Wahrheitswert true ergibt, wenn alle Bedingungen zutreffen, was nicht oft der Fall ist. Sobald auch nur eine davon mit false ausgewertet wird, kann die Gesamtbedingung nicht mehr true werden. 24 / 39

31 Fallunterscheidungen Das switch-statement Überblick 1 if-abfragen Bedingungen definieren Wenn dann sonst -Abfragen mit else Mehrere Bedingungen prüfen mit booleschen Funktionen 2 Fallunterscheidungen Das switch-statement 3 Visualisierung des Programmablaufs 25 / 39

32 Fallunterscheidungen Das switch-statement Motivation Oftmals müssen in einem Programm Eingabewerte auf verschiedene Zielwerte geprüft werden. Ein typisches Beispiel ist ein Menü das verschiedene Funktionalitäten hinter Zahlen bereitstellt: 1) Neues Spiel 2) Spiel speichern 3) Spiel laden 4) Einstellungen 5) Spiel beenden Eingabe: Die Aufgabe ist nun, herauszubekommen, welche Zahl der Benutzer ausgewählt hat und entsprechend darauf zu reagieren. Es kann zwar ein grosses Konstrukt mit mehreren if else-anweisungen diese Aufgabe lösen, allerdings wird dieses mit der Zeit unübersichtlich, je grösser das Menü wird. Für diese Art von Fallunterscheidungen existiert in vielen Programmiersprachen ein eigenes Konstrukt. 26 / 39

33 Fallunterscheidungen Das switch-statement Fallunterscheidung mit switch Um mehrere mögliche Ergebnisse mit einem eigenen Pfad abzudecken, eignet sich das switch case-statement. In der allgemeinen Form hat es folgenden Aufbau: switch (Ausdruck) { case const1: Anweisung(en)1; break; case const2: Anweisung(en)2; break; default: Anweisung(en); break; } Der Ausdruck wird evaluiert und abhängig von dessen Wert wird in den entsprechenden case-abschnitt verzweigt. Mit break wird dieser Zweig beendet, es ist also die letzte Anweisung und springt dann aus dem switch-konstrukt. Für den Fall, dass keiner der Pfade auf den Ausdruck zutrifft, kann ein optionaler default-pfad alle übrigen Fälle abhandeln. 27 / 39

34 Fallunterscheidungen Das switch-statement Beispiel zum switch case 1 # include <iostream > 2 using namespace std; 3 4 int main () { 5 char menuewahl ; 6 cout << "1) Vorspeise " << endl ; 7 cout << "2) Hauptgang " << endl ; 8 cout << "3) Nachspeise " << endl ; 9 cout << "4) Keinen Appetit " << endl ; 10 cin >> menuewahl ; 11 switch ( menuewahl ) { 12 case 1: cout << " Als Vorspeise gibt es..."; 13 break ; 14 case 2: cout << " Der Hauptgang beinhaltet... "; 15 break ; 16 case 3: cout << " Zum Dessert servieren wir... "; 17 break ; 18 default : cout << " Dann vielleicht morgen... "; 19 break ; 20 } 21 return 0; 22 } 28 / 39

35 Fallunterscheidungen Das switch-statement Hinweise zum switch-statement Die Konstanten in den case-abschnitten müssen nicht fortlaufend aufgelistet werden, sondern können eine beliebige Reihenfolge haben. 1 switch ( zahl ) { 2 case 17: cout << " Siebzehn "; 3 break ; 4 case 4: cout << " Vier "; 5 break ; 6 } Es ist jedoch übersichtlicher, diese geordnet der Reihe nach aufzulisten. Achtung: In den case-marken dürfen nur Konstanten und keine Variablen benutzt werden. Der folgende Code wird deshalb vom Compiler mit einer Fehlermeldung in Zeile 3 quittiert: 1 int x = 2; 2 switch ( zahl ) { 3 case x/2: cout << "x/2"; 4 break ; 5 } 29 / 39

36 Fallunterscheidungen Das switch-statement Gezieltes Auslassen von break Wird das break in den case-abschnitten vergessen, so wird die darunterliegende Marke ebenfalls abgearbeitet. Dies passiert so lange, bis entweder das nächste break erreicht wird oder das gesamte switch-statement beendet ist. Obwohl dieser Fall meist unerwünscht ist, lässt sich diese Funktionalität trotzdem nützlich einsetzen, um andere Pfade ebenfalls mit abzulaufen. 1 char eingabe ; 2 cout << " Geben Sie X zum beenden ein.\n"; 3 cin >> eingabe ; 4 switch ( eingabe ) { 5 case X : ; // keine Funktion, nutzt naechste case - Marke 6 case x : cout << " Programm wird beendet "; 7 break ; 8 } Das Beispiel zeigt, dass im Menü sowohl bei der Eingabe von X als auch bei x die gleiche Funktionalität aufgerufen wird, da das break nach Zeile 5 absichtlich weggelassen wurde und dadurch die Verarbeitung bei der nächsten case-marke fortfährt. 30 / 39

37 Visualisierung des Programmablaufs Überblick 1 if-abfragen Bedingungen definieren Wenn dann sonst -Abfragen mit else Mehrere Bedingungen prüfen mit booleschen Funktionen 2 Fallunterscheidungen Das switch-statement 3 Visualisierung des Programmablaufs 31 / 39

38 Visualisierung des Programmablaufs Motivation Durch die Verzeigungsmöglichkeiten, die wir in diesem Abschnitt kennengelernt haben, ist der Programmfluss nicht mehr linear (zeilenweise). Aus diesem Grund macht es Sinn, für die weitere Programmierung den Programmfluss zu visualisieren. Gerade, wenn die Programm grösser und komplexer werden, sollten diese vorher skizziert werden, um z.b. zu gewährleisten, dass alle Pfade in if else auch mit Programmlogik versehen sind. Bevor wir also an das Erstellen von Programmtext in der IDE gehen, sollte der Programmfluss und Ablauf strukturiert sein. Ist dieser erstmal klar, ist die Übertragung in Programmcode nicht mehr allzu schwierig. Mitteln DIN-genormter Diagramme können wir für uns und andere Programmierer unsere Gedanken zum Programmablauf als Entwurfsmethode strukturiert darstellen. Eine solche Diagrammart sind sogenannte Struktogramme nach DIN / 39

39 Visualisierung des Programmablaufs Regeln für die Erstellung von Struktogrammen Die folgenden Regeln gelten für die Erstellung von Struktogrammen: Anweisungsexklusivität Jede Anweisung erhält einen eigenen Block, um die Übersichtlichkeit zu erhalten. Beispiel: Sprachunabhängig Es wird keine programmiersprachliche Syntax verwendet, da man sich zu diesem Zeitpunkt erst um den Algorithmus im Klaren sein sollte, als um die Frage, mit welcher Sprache dies geschehen soll. Die so dargestellte Logik sollte möglichst einfach zu verstehen sein, z.b. zaehler um eins erhöhen. Es handelt sich dabei also um Pseudocode. Deklarationslosigkeit In einfachen Struktogrammen werden keine Variablen- und Konstantendeklarationen als Anweisungen beschrieben. Es soll durch das Diagramm der Ablauf und die Struktur des Programms ersichtlich werden. 33 / 39

40 Visualisierung des Programmablaufs Linearer Programmablauf als Struktogramm Jede Anweisung wird im Struktogramm als separates Kästchen gezeichnet. Lineare Programme werden wie folgt dargestellt: Der Programmablauf beginnt oben und wird nach unten hin durchlaufen. Ein leerer Strukturblock ist nur in Verzweigungen möglich. 34 / 39

41 Visualisierung des Programmablaufs Einfache Verzweigungen mit Struktogrammen darstellen Eine einfache if-abfrage kann mit einem Struktogramm folgendermassen dargestellt werden: Da es keinen else-abschnitt gibt, wird die rechte Seite (Nein) leer bleiben. Beispiel 35 / 39

42 Visualisierung des Programmablaufs Zweifache Verzweigungen mit Struktogrammen darstellen Eine if else-abfrage wird mit gefülltem Nein-Abschnitt beschrieben: Beispiel 36 / 39

43 Visualisierung des Programmablaufs Verschachtelte Abfragen mit Struktogrammen darstellen Verschachtelte if-else Abfragen lassen sich durch die konsequente Anwendung der bisherigen Regeln ebenfalls visualisieren. Beispiel Natürlich ist sowohl nur im Nein-Abschnitt als auch in beiden (Ja und Nein) eine Verschachtelung möglich. 37 / 39

44 Visualisierung des Programmablaufs Fallunterscheidungen mit Struktogrammen beschreiben Das switch case-statement lässt sich inklusive dem optionalen default-abschnitt so darstellen: Beispiel Weitere Darstellungsmöglichkeiten werden wir im Laufe der Vorlesung noch kennenlernen. 38 / 39

45 Visualisierung des Programmablaufs Struktogrammeditoren Es existieren eine Reihe von Editoren zur Erstellung von Struktogrammen. Ein paar davon sind hier aufgeführt: / 39

Kontrollstrukturen -- Schleifen und Wiederholungen

Kontrollstrukturen -- Schleifen und Wiederholungen Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Java Anweisungen und Ablaufsteuerung

Java Anweisungen und Ablaufsteuerung Informatik 1 für Nebenfachstudierende Grundmodul Java Anweisungen und Ablaufsteuerung Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Erklären

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 4 Pkt.) Gegeben

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

Grundlagen der Informatik 4. Kontrollstrukturen I

Grundlagen der Informatik 4. Kontrollstrukturen I 4. Kontrollstrukturen I Anweisungen und Blöcke Grundlagen der Informatik (Alex Rempel) 1 Anweisungen und Blöcke Anweisungen ("statements") Immer mit Semikolon abzuschließen "Leere" Anweisung besteht aus

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

Variablen, Konstanten und Datentypen

Variablen, Konstanten und Datentypen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick

Mehr

Operatoren und Ausdrücke

Operatoren und Ausdrücke Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 11 Motivation Es gibt eine Reihe

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen . Gleitkommazahlen In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen Umrechnen von Einheiten und Währungen Jede Zahl x Q mit x 0 lässt sich folgendermaßen schreiben: x = s m e mit

Mehr

Entscheidungen. INE1, Montag M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Entscheidungen. INE1, Montag M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert Entscheidungen INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Ablaufstrukturen bis jetzt nur Sequenzen von Code neu Auswahl (Programmverzweigung) - Code aufgrund

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung

Mehr

4. Verzweigungen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

4. Verzweigungen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04) 4. Verzweigungen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Ausdruck und Anweisungen!Verkürzte Operatoren, Vergleichsoperatoren!Die if Anweisung!Die if else Anweisung!Logische Operatoren

Mehr

Tag 2 Repetitorium Informatik (Java)

Tag 2 Repetitorium Informatik (Java) Tag 2 Repetitorium Informatik (Java) Dozent: Daniela Novac Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Zeichen und

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Ein- und Ausgabe (I/O)

Ein- und Ausgabe (I/O) Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 14 Motivation Computer arbeiten

Mehr

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen Gehe nach links oder rechts Gehe solange geradeaus... Leibniz Universität IT Services Anja Aue Programmabläufe grafisch abbilden

Mehr

Java Ablaufsteuerung (Beispiele)

Java Ablaufsteuerung (Beispiele) Informatik 1 für Nebenfachstudierende Grundmodul Java Ablaufsteuerung (Beispiele) Kai-Steffen Hielscher Folienversion: 16. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Blöcke Anweisungen

Mehr

Arbeitsblätter für Algorithmierung und Strukturierung

Arbeitsblätter für Algorithmierung und Strukturierung Prof. Dr.- Ing. Ch. Wahmkow Fachbereich Maschinenbau Fachhochschule Stralsund Arbeitsblätter für Algorithmierung und Strukturierung Inhalt : Struktogramme, Beispiele und Erläuterungen - Sequenz - vollständige

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

Mehr

Bedingte Anweisungen

Bedingte Anweisungen Bedingte Anweisungen Bedingte Anweisungen werden nicht immer ausgeführt, sondern nur, wenn eine Bedingung erfüllt (wahr) ist. C/C++/Java bieten hier 2 Konstruktionen an: if-anweisung sowie switch-case

Mehr

Grundlagen der Programmentwicklung

Grundlagen der Programmentwicklung Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Annehmende Schleife do while

Annehmende Schleife do while Annehmende Schleife do while Schleife mit nachfolgender Bedingungsprüfung: annehmende Schleife B S Mit B wird eine Bedingung (logischer Ausdruck) bezeichnet, S ist ein Strukturblock. Zuerst wird S ausgeführt,

Mehr

Programmsteuerung mit PHP - if/else, elseif,switch

Programmsteuerung mit PHP - if/else, elseif,switch Programmsteuerung mit PHP - if/else, elseif,switch Bei der Programmierung geht es meist vor allem darum festzulegen, welche Aktionen wie oft unter welchen Bedingungen ausgeführt werden sollen. Hierzu steht

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Kontrollstrukturen Wichtig: bedingte Ausführung

Mehr

Programmieren lernen mit Visual Basic

Programmieren lernen mit Visual Basic Programmieren lernen mit Visual Basic Teil 5: Fallunterscheidungen (Teil 1) Ein paar Operatoren fehlen noch. Zum einen logische Operatoren, die mit Wahrheitswerden arbeiten. Die folgenden drei verwenden

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

Kontrollstrukturen Blöcke / Schleifen / Bedingungen

Kontrollstrukturen Blöcke / Schleifen / Bedingungen Kontrollstrukturen Blöcke / Schleifen / Bedingungen 1 Einfache Anweisungen und Blöcke einfache Anweisung abgeschlossen mit Semikolon ; typische Fälle: o Deklaration, Zuweisung, Funktionsaufruf Sonderfall

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Vom Problem zum Programm

Vom Problem zum Programm Aussagenlogik Vom Problem zum Programm Kontrollstrukturen der prozeduralen Programmierung Grundprinzipien: Sequenz Alternative Iteration Beschreibungsformen Ablaufpläne Struktogramme Pseudocode Programmentwicklung

Mehr

BKTM - Programmieren leicht gemacht.

BKTM - Programmieren leicht gemacht. BKTM Programmieren leicht gemacht. + Struktogramm Das Struktogramme ist eine Entwurfsmethode für die strukturierte Programmierung. Es ist nach der DIN 66261 genormt. Es ist 1972/73 von Dr. Isaac Nassi

Mehr

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Kompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen

Kompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen Kompaktkurs Einführung in die Programmierung 4. Kontrollstrukturen Stefan Zimmer 28.2.2008-1- Anweisungen: was bisher geschah Bisher kennen wir zwei Formen von Anweisungen Ein Ausdruck mit Semikolon ist

Mehr

Einführung in die Programmierung II. 3. Kontrollstrukturen

Einführung in die Programmierung II. 3. Kontrollstrukturen Einführung in die Programmierung II 3. Kontrollstrukturen Thomas Huckle, Stefan Zimmer 2.5.2007-1- Anweisungen: was bisher geschah Bisher kennen wir zwei Formen von Anweisungen Ein Ausdruck mit Semikolon

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

Mehr

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Verzweigungen. Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014)

Verzweigungen. Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014) Verzweigungen Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014) Ausdruck und Anweisungen Verkürzte Operatoren, Vergleichsoperatoren Die if Anweisung Die if else Anweisung Die switch Anweisung Logische

Mehr

Kontrollstrukturen und Logik

Kontrollstrukturen und Logik Programmieren mit Java Modul 2 Kontrollstrukturen und Logik Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 1.1 Anweisungen und Blöcke........................... 3 2 Operatoren (Teil II) 4 2.1 Relationale

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 25.4.07, Anweisungen Übersicht 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung, Vorbereitungen 4 Verbundanweisung 5 Bedingte Anweisung 6 Auswahlanweisung 7 for

Mehr

Übungspaket 9 Logische Ausdrücke

Übungspaket 9 Logische Ausdrücke Übungspaket 9 Logische Ausdrücke Übungsziele: Skript: 1. Umgang mit logischen Vergleichs- und Verknüpfungsoperatoren 2. Bilden einfacher und komplexer logischer Ausdrücke Kapitel: 22 Semester: Wintersemester

Mehr

Informatik für Elektrotechnik und Informationstechnik

Informatik für Elektrotechnik und Informationstechnik Informatik für Elektrotechnik und Informationstechnik Praktikum 1 Wintersemester 2013/14 1 Kennenlernen der Entwicklungsumgebung Netbeans Netbeans ist eine moderne Entwicklungsumgebung für mehrere Programmiersprachen,

Mehr

if ( Logischer Operator ) { } else { Anweisungen false

if ( Logischer Operator ) { } else { Anweisungen false if ( Logischer Operator ) { Anweisungen true else { Anweisungen false Bedingte Anweisungen Operatoren verknüpfen Variable zu neuen Ausdrücken, wir unterscheiden Arithmetische Operatoren Berechnung von

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Ausdrücke (1) Grundlegende Eigenschaften

Ausdrücke (1) Grundlegende Eigenschaften Ausdrücke () Grundlegende Eigenschaften bestehen aus Literalen, Konstanten, Variablen und Operatoren einfachster Ausdruck ist das Semikolon, es bewirkt nichts. Ausdrücke werden mit einem Semikolon abgeschlossen.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

Arbeitsblätter für Algorithmierung und Strukturierung C #

Arbeitsblätter für Algorithmierung und Strukturierung C # Prof. Dr.- Ing. Ch. Wahmkow Fachbereich Maschinenbau Fachhochschule Stralsund Arbeitsblätter für Algorithmierung und Strukturierung C # Inhalt : Struktogramme, Beispiele und Erläuterungen - Sequenz - vollständige

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Für eine

Mehr

4.4 Imperative Algorithmen Prozeduren

4.4 Imperative Algorithmen Prozeduren 4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):

Mehr

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen. Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten

Mehr

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

12 == 12 true 12 == 21 false 4 === 7 true 4 === vier false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false Die if-anweisung if (Bedingung 1) { Code 1 else { Code 2 ; Anm.1: Das ; kann entfallen, da innerhalb { ein sog. Codeblock geschrieben wird. Anm.2: Es gibt noch andere Schreibweisen, aber wir wollen uns

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung

Mehr

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Funktionales C++ zum Ersten

Funktionales C++ zum Ersten Funktionales C++ zum Ersten WiMa-Praktikum 1, Teil C++, Tag 1 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 26.08.08

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Zeigern, sowie Records und Funktionen Aufgabe 5: Diese Aufgabe basiert auf der Aufgabe 4. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl möglicher

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik Seite 1 von 7 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 4 Pkt.) Gegeben

Mehr

Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array)

Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array) Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Aufgabe 3: Diese Aufgabe baut auf der 2. Aufgabe auf und erweitert diese. Die Funktionalität der 2. Aufgabe wird also

Mehr

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe Informatik Vorlesung 03b Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe 12. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik

Mehr

Grundlagen von C# - 2

Grundlagen von C# - 2 Grundlagen von C# - 2 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Arrays 2. Kontrollstrukturen 3. Verzweigungen Bedingte Verzweigung (if else) 4. Schleifen Kopfgesteuerte Schleife (while) Fußgesteuerte

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration

Mehr

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen.

Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen. Grundlegende Programmstrukturen Seite 1 von 14 Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen. Sequenzen Eine Sequenz ist eine Folge von en (sblock) ohne Verzweigungen. Der

Mehr

Kontrollstrukturen (1)

Kontrollstrukturen (1) Kontrollstrukturen (1) Selektionen, if ermöglicht das alternative Ausführen von Programteilen in Abhängigkeit einer Bedingung if (Bedingung) Block 1 else Block 2 Ist die Bedingung wahr, also ungleich 0,

Mehr