Kontrollanweisungen: Teil Pearson Education, Inc. All rights reserved.

Größe: px
Ab Seite anzeigen:

Download "Kontrollanweisungen: Teil Pearson Education, Inc. All rights reserved."

Transkript

1 1 3 Kontrollanweisungen: Teil 1

2 2 3.1 Einführung 3.2 Algorithmen 3.3 Pseudocode 3.4 Euklidscher Algorithmus 3.5 Kontrollstrukturen 3.6 if Auswahlanweisung 3.7 if...else Zweifach-Auswahlanweisung 3.8 while Wiederholungsanweisung 3.9 Entwurf von Algorithmen: Zählerkontrollierte Wiederholung 3.10 Entwurf von Algorithmen: Signalwertkontrollierte Wiederholung 3.11 Zuweisungsoperatoren 3.12 Inkrementierungs- und Dekrementierungsoperatoren

3 3 3.1 Einführung Vor dem Schreiben eines Programms Das zu lösende Problem muss klar verstanden sein. Der Lösungsansatz muss sorgfältig geplant werden. Während des Schreibens eines Programms Die vorhandenen Bausteine müssen bekannt sein. Eingeführte Prinzipien der Programmierung müssen angewendet werden.

4 4 3.2 Algorithmen Algorithmus Eindeutige Beschreibung eines allgemeinen Verfahrens unter Verwendung ausführbarer elementarer (Verarbeitungs-)Schritte Verfahren zur Problemlösung, das sich auf einem Computer implementieren lässt Die Lösung eines komplexen Problems wird auf die Lösung von (oft sehr vielen) einfacheren Problemen zurückgeführt.

5 5 3.2 Algorithmen Kontrollfluss eines Programms Regelt die Reihenfolge, in der Aktionen innerhalb eines Programms ausgeführt werden Wird in C mit Kontrollanweisungen festgelegt

6 6 3.3 Pseudocode Pseudocode Künstliche, informelle Sprache für die Entwicklung von Algorithmen Ausdenken des Programms vor der Codierung Kann leicht in ein C Programm umgewandelt werden Wird selbst nicht direkt auf dem Rechner ausgeführt Orientiert sich an der Umgangssprache Es werden nur ausführbare Anweisungen formuliert Keine Deklarationen (z.b. von Variablen) Ersetzt heute meist die früher verwendeten graphischen Beschreibungen von Algorithmen ( Programmablaufplan, Struktogramm )

7 7 3.4 Euklidscher Algorithmus Gesucht: Größter gemeinsamer Teiler (ggt) zweier natürlicher Zahlen p und q Algorithmus: 1. Dividiere ganzzahlig p durch q; Ergebnis: Rest r zwischen 0 und q Wenn r = 0, dann gilt: ggt = q; Suche beendet. sonst benenne um: bisheriges q in p; bisheriges r in q 3. Wiederhole Schritt 1. und 2. bis r = 0 ist. also als Pseudo-Code: r = p modulo q solange r ungleich 0 p = q q = r r = p modulo q Gib aus: ggt ist q

8 8 3.4 Euklidscher Algorithmus Schritt p q r Anfang ggt=18

9 9 3.5 Kontrollstrukturen Sequenzielle Ausführung Anweisungen werden eine nach der anderen ausgeführt Änderung des Kontrollflusses Die nächste ausgeführte Anweisung ist nicht die folgende im Programmtext Strukturierte Programmierung Vermeiden von Sprüngen zu beliebigen Anweisungen (keine Verwendung von goto )

10 Kontrollstrukturen Strukturierte Programmierung Nur drei Kontrollstrukturen sind notwendig: Sequenzstruktur Programme werden standardmäßig sequenziell abgearbeitet Auswahlstruktur Verzweigung in 'Vorwärtsrichtung' Wiederholungsstruktur Verzweigung in 'Rückwärtsrichtung' Bewiesen von Böhm und Jacopini (1966)

11 Kontrollstrukturen Strukturierte Programmierung Kontrollanweisungen haben immer nur einen Eingang und einen Ausgang. Es gibt nur drei Typen von Kontrollanweisungen: Sequenzanweisung Auswahlanweisung if, if else, switch Wiederholungsanweisung while, do while, for Kontrollanweisungen werden nur auf zwei Arten kombiniert: Stapeln von Kontrollanweisungen Verbindung des Ausgangs der einen mit dem Eingang der nächsten Verschachteln von Kontrollanweisungen

12 12 Betrachtung zum Software Engineering Jedes C Programm kann aus nur sieben unterschiedlichen Typen von Kontrollanweisungen (Sequenz, if, if... else, switch, while, do... while und for) konstruiert werden, die auf nur zwei unterschiedliche Arten miteinander kombiniert werden (Stapeln und Verschachteln der Kontrollanweisungen).

13 if Auswahlanweisung Auswahlanweisungen Werden benutzt, um zwischen verschiedenen Aktionswegen auszuwählen Beispiel in Pseudocode Falls die Punktzahl des Studenten größer oder gleich 60 ist gib Bestanden aus Falls die Bedingung wahr ( true ) ist Ausgabeanweisung wird ausgeführt, Programm wird mit nächster Anweisung fortgesetzt Falls die Bedingung falsch ( false ) ist Ausgabeanweisung wird ignoriert, Programm wird mit nächster Anweisung fortgesetzt Einrückungen machen Programme besser lesbar C ignoriert Leerraumzeichen ( white-space )

14 if Auswahlanweisung Auswahlanweisungen Übersetzung in C: if( grade >= 60 ) puts( "Bestanden" ); Jeder Ausdruck kann als Bedingung benutzt werden Der Zahlenwert 0 gilt dabei als logisch falsch Die Funktion puts schreibt ihr String-Argument in die Standardausgabe und fügt automatisch ein Zeilenendezeichen (\n) an. Sie macht im Beispiel oben also das gleiche wie printf( "Bestanden\n" );

15 15 Fig. 3.4 Aktivitätsdiagramm für die if Auswahlanweisung.

16 16 Praxis-Tipp Vernünftige und einheitliche Einrückungsstandards in Programmen verbessern die Lesbarkeit erheblich. Empfohlen werden drei Leerzeichen pro Einrückungsebene. Einige Leute bevorzugen Tabulatoren, diese können aber von Editor zu Editor je nach Einstellung variieren.

17 17 Portabilitäts-Tipp Wegen der Kompatibilität mit älteren Versionen von C, die boolesche Werte durch ganze Zahlen darstellen, kann der bool Wert true auch durch jeden ganzzahligen Wert ungleich Null dargestellt werden (Compiler benutzen üblicherweise den Wert 1) und der bool Wert false auch durch den Wert 0. Visual Studio führt den C-Datentyp bool erst ab Version 2013 ein, bis dahin werden wahr und falsch durch ganze Zahlen 1 und 0 dargestellt.

18 3.7 if...else Zweifach- Auswahlanweisung 18 if Führt nur eine Aktion aus, wenn die Bedingung wahr ist if else Führt eine Aktion aus, wenn die Bedingung wahr ist und eine andere Aktion, wenn die Bedingung falsch ist Pseudocode Falls die Punktzahl des Studenten größer oder gleich 60 ist gib Bestanden aus sonst gib Durchgefallen aus C Code if( grade >= 60 ) puts( "Bestanden" ); else puts( "Durchgefallen" );

19 19 Praxis-Tipp Beide Zweige einer if... else Anweisung sollten auf gleiche Weise eingerückt werden. Falls es mehrere Einrückungsebenen gibt, sollte jede weitere Ebene um den gleichen Betrag (vorzugsweise drei Leerzeichen) eingerückt werden.

20 20 Fig. 4.5 Aktivitätsdiagramm der if...else Zweifach-Auswahlanweisung.

21 3.7 if...else Zweifach- Auswahlanweisung 21 Ternärer Bedingungsoperator (?:) Nimmt drei Argumente: Bedingung, Wert für den true-fall, Wert für den false-fall. Beispielcode könnte auch so geschrieben werden: puts( grade >= 60? "Bestanden" : "Durchgefallen" ); Bedingung Wert falls true Wert falls false

22 3.7 if...else Zweifach- Auswahlanweisung 22 Ternärer Bedingungsoperator (?:) Der zweite und dritte Operand des Bedingungsoperators können auch ausführbare Anweisungen sein. Weitere Variante des Beispielcodes: grade >= 60? puts("bestanden") : puts("durchgefallen");

23 3.7 if...else Zweifach- Auswahlanweisung 23 Geschachtelte if else Anweisungen Ineinander geschachtelt, realisieren eine Mehrfachauswahl Wenn eine Bedingung erfüllt ist, werden die anderen Anweisungen übersprungen. if( studentgrade >= 90 ) puts( "A" ); else if( studentgrade >= 80 ) puts( "B" ); else if( studentgrade >= 70 ) puts( "C" ); else if( studentgrade >= 60 ) puts( "D" ); else puts( "F" );

24 3.7 if...else Zweifach- Auswahlanweisung 24 Geschachtelte if else Anweisungen andere Einrückungsvariante: if( studentgrade >= 90 ) puts( "A" ); else if( studentgrade >= 80 ) puts( "B" ); else if( studentgrade >= 70 ) puts( "C" ); else if( studentgrade >= 60 ) puts( "D" ); else puts( "F" );

25 25 Tipp zur Performanz Eine geschachtelte if...else Anweisung kann oft deutlich schneller ausgeführt werden als eine Reihe von einfachen if Anweisungen, da die Möglichkeit besteht, dass eine Bedingung erfüllt wird und der Rest der geschachtelten Anweisung nicht mehr durchlaufen wird.

26 26 Tipp zur Performanz In einer geschachtelten if... else Anweisung, sollten die Bedingungen, die am ehesten true sind, zu Beginn stehen. Dadurch wird die geschachtelte if... else Anweisung schneller durchlaufen, da oft ein großer Teil der Anweisung übersprungen wird.

27 3.7 if...else Zweifach- Auswahlanweisung 27 Hängendes else (Dangling else) Der Compiler ordnet ein else grundsätzlich dem direkt vorangehenden if zu. Beispiel if( x > 5 ) if( y > 5 ) puts( "x und y sind > 5" ); else puts( "x ist <= 5" ); Der Compiler interpretiert dies als: if( x > 5 ) if( y > 5 ) puts( "x und y sind > 5" ); else puts( "x ist <= 5" );

28 3.7 if...else Zweifach- Auswahlanweisung 28 Hängendes else Zur Vermeidung der falschen Interpretation müssen geschweifte Klammern ({}) verwendet werden: if( x > 5 ) { if( y > 5 ) puts( "x und y sind > 5" ); } else puts( "x ist <= 5" ); Die geschweiften Klammern bewirken, dass die zweite if Anweisung innerhalb des Körpers der ersten steht und das else entsprechend zur ersten if Anweisung gehört.

29 3.7 if...else Zweifach- Auswahlanweisung 29 Verbundanweisung Wird auch Block genannt Reihe von Anweisungen, von geschweiften Klammern eingeschlossen Benutzt, um mehrere Anweisungen in einen if Körper zu bringen Beispiel if( studentgrade >= 60 ) puts( "Bestanden." ); else { puts( "Durchgefallen." ); puts( "Nochmal an Pruefung teilnehmen." ); } Ohne geschweifte Klammern würde puts( "Nochmal an Pruefung teilnehmen." ); in beiden Fällen (if und else) ausgeführt werden!

30 30 Betrachtung zum Software Engineering Ein Block kann überall dort in einem Programm stehen, wo eine einzelne Anweisung stehen kann.

31 31 Häufiger Programmierfehler Vergisst man eine oder beide der geschweiften Klammern, die einen Block begrenzen, können Syntaxfehler oder logische Fehler in einem Programm resultieren.

32 32 Praxis-Tipp Immer geschweifte Klammern in einer if...else Anweisung setzen (oder auch in jeder anderen Kontrollanweisung) hilft zu verhindern, dass man sie vergisst - speziell wenn später Anweisungen zu dem if oder else Zweig hinzugefügt werden. Aus diesem Grund tippen einige Programmierer öffnende und schließende geschweifte Klammern schon bevor die Anweisungen des Blocks eingegeben werden.

33 3.7 if...else Zweifach- Auswahlanweisung 33 Leere Anweisung Ein Semikolon (;) an einer Stelle, wo sonst eine Anweisung stehen würde Führt keine Aktion aus Wird auch Nullanweisung genannt

34 34 Häufiger Programmierfehler Setzt man ein Semikolon direkt hinter die Bedingung in einer if Anweisung, führt dies in einer einfachen if Anweisung zu einem logischen Fehler und in if...else Anweisungen zu einem Syntaxfehler (falls der if Teil in seinem Körper eine Anweisung enthält).

35 while Wiederholungsanweisung Wiederholungsanweisung Eine Aktion wird wiederholt, solange eine Bedingung wahr bleibt Pseudocode Solange die Variable product kleiner oder gleich 1000 ist verdopple product while Schleife wird wiederholt bis Bedingung false ist Beispiel int product = 1; while( product <= 1000 ) product = 2 * product;

36 36 Häufiger Programmierfehler Wenn im Körper einer while Anweisung keine Aktion stattfindet, die irgendwann dazu führt, dass die Schleifenbedingung false wird, resultiert normalerweise ein logischer Fehler, den man Endlosschleife nennt. Die Wiederholungsanweisung wird nie abgeschlossen, weil das Programm in der Schleife hängen bleibt zumindest dann, wenn innerhalb der Schleife keine Interaktion mit dem Nutzer stattfindet.

37 37 Fig. 4.6 UML Aktivitätsdiagramm der while Wiederholungsanweisung.

38 38 Tipp zur Performanz Viele der hier angegebenen Tipps zur Performanz führen nur zu kleinen Verbesserungen, so dass man versucht sein könnte, sie zu ignorieren. Wenn eine solche kleine Verbesserung aber viele Male in einer Schleife stattfindet, kann durchaus eine substanzielle Performanzsteigerung entstehen.

39 3.9 Entwurf von Algorithmen: Zählerkontrollierte Wiederholung 39 Formulierung der Aufgabenstellung Eine Klasse von zehn Studenten hat einen Test absolviert. Die Bewertungen (ganze Zahlen im Bereich von 0 bis 100) sind vorhanden und können eingegeben werden. Es soll der Mittelwert aller Bewertungen berechnet und ausgegeben werden. Zählerkontrollierte Wiederholung Eine Schleife wird wiederholt, bis ein Zähler einen bestimmten Wert erreicht. Die Anzahl der Wiederholungen steht schon von Beginn an fest.

40 3.9 Entwurf von Algorithmen: Zählerkontrollierte Wiederholung 40 Zählervariable (counter) Wird zum Zählen benutzt Gibt im Beispiel an, welche der zehn Bewertungen gerade eingegeben wird Summenvariable (total) Wird zum Aufaddieren einer Summe verschiedener Werte benutzt Wird zu Beginn normalerweise mit Null initialisiert Könnte sonst einen zufällig im Speicher stehenden (sinnlosen) Wert enthalten

41 41 1 Setze total auf Null 2 Setze counter auf Eins 3 4 Solange counter kleiner oder gleich zehn ist 5 Lies die nächste Bewertung 6 Addiere die Bewertung zu total 7 Erhöhe counter um Eins 8 9 Setze den Mittelwert auf total geteilt durch zehn Gib den Mittelwert aus Fig. 3.7 Pseudocode: Algorithmus für die zählerkontrollierte Wiederholung.

42 1 // Fig. 3.10: fig03_10.c 2 // Class average program with counter-controlled repetition. 3 #include <stdio.h> 4 5 int main( void ) 6 { 7 unsigned int counter; // number of the next grade 8 int grade; // next grade in gradestream 9 int total; // sum of grades 10 int average; // average of grades // initialization phase 13 total = 0; // initialize total 14 counter = 1; // initialize loop counter // processing phase 17 while( counter <= 10 ) { // loop 10 times 18 printf( "%s", "Punktzahl eingeben: " ); // prompt for input 19 scanf( "%d", &grade ); // read grade from user 20 total = total + grade; // add grade to total 21 counter = counter + 1; // increment counter by 1 22 } // end while // termination phase 25 average = total / 10; // integer division 26 printf( "\nder Klassendurchschnitt ist %d\n", average ); // display result 27 } // end main Outline fig03_10.c (1 von 2) Pearson Education, Inc. All rights reserved.

43 Punktzahl eingeben: 98 Punktzahl eingeben: 76 Punktzahl eingeben: 71 Punktzahl eingeben: 87 Punktzahl eingeben: 83 Punktzahl eingeben: 90 Punktzahl eingeben: 57 Punktzahl eingeben: 79 Punktzahl eingeben: 82 Punktzahl eingeben: 94 Der Klassendurchschnitt ist 81 Outline fig03_10.c (2 von 2) Pearson Education, Inc. All rights reserved.

44 44 Tipp zur Fehlervermeidung Jede Zähler- oder Summenvariable sollte initialisiert werden, entweder bei der Deklaration oder durch eine Zuweisung. Summenvariablen werden normalerweise mit 0 initialisiert, Zähler mit 0 oder 1, je nachdem, wie sie genutzt werden. (Wir werden Beispiele für beide Varianten sehen).

45 45 Häufiger Programmierfehler Benutzt man die Zählvariable einer Schleife ( Schleifenvariable ) in einer Rechnung nach dem Schleifenende entsteht oft ein logischer Fehler ( off-by-one-error ). In einer zählerkontrollierten Schleife, die bei jedem Schleifendurchgang den Zähler um Eins erhöht, wird die Schleife mit einem Zählerwert beendet, der um Eins höher ist als der letzte gültige Wert (d.h. 11 falls in der Schleife von 1 bis 10 gezählt wird).

46 46 Sicherheitsaspekte Ganzzahltypen ohne Vorzeichen (Unsigned Integer) In Fig. 3.10, Zeile 7 wurde die Variable counter als unsigned int deklariert, weil sie zum Zählen von nicht-negativen Werten benutzt wird. Allgemein sollten Zähler, die nur nicht-negative Werte abspeichern, mit unsigned vor dem ganzzahligen Typ deklariert werden. Variablen mit unsigned Typen können Werte von 0 bis etwa zum doppelten des positiven Bereichs der entsprechenden Ganzzahltypen mit Vorzeichen darstellen. Der größte unsigned int Wert des verwendeten Systems ist in der Konstanten UINT_MAX aus <limits.h> definiert.

47 3.10 Entwurf von Algorithmen: Signalwertkontrollierte Wiederholung 47 Formulierung der Aufgabenstellung Das betrachtete Mittelwertprogramm für die Testergebnisse einer Klasse soll die Bewertungen einer beliebigen Anzahl von Studenten verarbeiten können. Signalwertkontrollierte Wiederholung Auch unbestimmte Wiederholung genannt Benutzt einen Signalwert Dieser signalisiert das Ende der Dateneingabe. Der Signalwert darf kein gültiger Eingabewert sein.

48 48 1 Initialisiere total auf Null 2 Initialisiere counter auf Null 3 4 Lies die erste Bewertung (möglicherweise den Signalwert) 5 6 Solange der Signalwert noch nicht gelesen wurde 7 Addiere diese Bewertung zur laufenden Summe 8 Addiere Eins zu counter 9 Lies die nächste Bewertung (möglicherweise den Signalwert) Falls counter ungleich Null ist 12 Setze den Mittelwert auf total geteilt durch counter 13 Gib die Summe aller Bewertungen aus 14 Gib den Mittelwert aller Bewertungen aus 15 sonst 16 Gib aus: Es wurden keine Bewertungen eingegeben Fig Pseudocode: Algorithmus für die signalwertkontrollierte Wiederholung.

49 49 Tipp zur Fehlervermeidung Wenn durch einen Ausdruck geteilt wird, dessen Wert Null werden kann, sollte auf diese Möglichkeit explizit getestet und entsprechend reagiert werden (z.b. durch die Ausgabe einer passenden Fehlermeldung).

50 50 Praxis-Tipp Wenn eine Nutzereingabe erwartet wird, sollte der Nutzer explizit darauf hingewiesen werden, auch auf die erwartete Form der Eingabe und spezielle Eingabewerte. So sollte beispielsweise bei einer signalwertkontrollierten Wiederholung der Nutzer durch die Eingabeaufforderung auf den erwarteten Signalwert hingewiesen werden.

51 51 Betrachtung zum Software Engineering Viele erfahrene Programmierer schreiben Programme, ohne Programmentwicklungshilfen wie Pseudocode zu benutzen. Diese Programmierer meinen, dass es ihr wesentliches Ziel ist, ein Problem mit dem Rechner zu lösen und das Schreiben von Pseudocode nur die Produktion von Ergebnissen verzögert. Dies mag für einfache und vertraute Aufgabenstellungen richtig sein, bei großen, komplexen Projekten führt diese Sichtweise zu ernsten Problemen.

52 1 // Fig. 3.14: fig03_14.c 2 // Class average program with sentinel-controlled repetition. 3 #include <stdio.h> 4 5 int main( void ) 6 { 7 int total; // sum of grades 8 unsigned int counter; // number of grades in parameter grades 9 int grade; // grade value 10 double average; // number with decimal point for average // initialization phase 13 total = 0; // initialize total 14 counter = 0; // initialize loop counter // processing phase 17 printf( "%s", "Punktzahl eingeben, -1 zum Beenden: " ); // prompt for input 18 scanf( "%d", &grade ); // read grade from user 19 // loop while sentinel value not yet read from user 20 while( grade!= -1 ) { // while grade is not total = total + grade; // add grade to total 22 counter = counter + 1; // increment counter 23 // get next grade from user 24 printf( "%s", "Punktzahl eingeben, -1 zum Beenden: " ); // prompt 25 scanf( "%d", &grade ); // read grade from user 26 } // end while 27 Outline fig03_14.c (1 von 2) Pearson Education, Inc. All rights reserved.

53 28 29 // termination phase 30 // if user entered at least one grade if( counter!= 0 ) { 32 // calculate average of all grades entered 33 average = ( double ) total / counter; // avoid truncation // display average (with two digits of precision) 36 printf( "\nder Klassendurchschnitt ist %.2f\n", average ); 37 } // end if 38 else // if no grades were entered, output message 39 puts( "Es wurde keine Punktzahl eingegeben." ); 40 } // end main Punktzahl eingeben, -1 zum Beenden: 75 Punktzahl eingeben, -1 zum Beenden: 94 Punktzahl eingeben, -1 zum Beenden: 97 Punktzahl eingeben, -1 zum Beenden: 88 Punktzahl eingeben, -1 zum Beenden: 70 Punktzahl eingeben, -1 zum Beenden: 64 Punktzahl eingeben, -1 zum Beenden: 83 Punktzahl eingeben, -1 zum Beenden: 89 Punktzahl eingeben, -1 zum Beenden: -1 Der Klassendurchschnitt ist Outline fig03_14.c (2 von 2) 53 Punktzahl eingeben, -1 zum Beenden: -1 Es wurde keine Punktzahl eingegeben Pearson Education, Inc. All rights reserved.

54 3.10 Entwurf von Algorithmen: Signalwertkontrollierte Wiederholung 54 Zahlen mit Gleitpunktdarstellung (Floating-point numbers) Zahlen mit Dezimalkomma (in C Dezimalpunkt!) C stellt hierfür die Datentypen float und double zur Verfügung double Zahlen haben einen größeren Wertebereich ( bis ) mit höherer Genauigkeit (ca. 15 Dezimalstellen) Floating-point Konstanten werden standardmäßig als double behandelt Floating-point Werte sind wegen der begrenzten Speicherbreite in der Regel nur Näherungswerte

55 55 Häufiger Programmierfehler Wenn man Gleitpunktzahlen auf eine Weise benutzt, die annimmt, sie wären exakt im Rechner dargestellt (beispielsweise bei Test auf Gleichheit) können falsche Resultate entstehen. Gleitpunktzahlen lassen sich in aller Regel nur näherungsweise im Rechner darstellen.

56 3.10 Entwurf von Algorithmen: Signalwertkontrollierte Wiederholung 56 Formatierung von Gleitpunktzahlen Fig verwendet das printf Umwandlungssymbol %.2f, um den Wert von average auszugeben. Das f gibt an, dass ein Gleitkommawert (floating-point value) ausgegeben werden soll. Zwischen % und f steht.2 für die Genauigkeit, mit der der Wert dargestellt werden soll mit zwei Stellen rechts vom Dezimalpunkt. Die Standardgenauigkeit ist 6 Stellen: %f entspricht also %.6f Der ausgegebene Wert wird auf die angegebene Stellenzahl gerundet; der Wert der Variablen im Speicher bleibt unverändert.

57 3.10 Entwurf von Algorithmen: Signalwertkontrollierte Wiederholung 57 Typumwandlungsoperator (cast operator) Erzeugt eine temporäre Kopie seines Operanden mit einem anderen Datentyp Beispiel ( double ) total Erzeugt eine temporäre Kopie der ganzzahligen Variablen total vom Gleitpunkttyp double Explizite Umwandlung Promotion Automatische Umwandlung eines Wertes (im Beispiel der Wert von counter vom Typ int) in einen anderen Datentyp (hier double), um eine Berechnung durchzuführen Implizite Umwandlung

58 58 Häufiger Programmierfehler Der Typumwandlungsoperator kann zur Umwandlung primitiver Datentypen wie int und double benutzt werden und auch zur Umwandlung verwandter Klassentypen (s. Kapitel C++ Polymorphie ). Umwandlung in den falschen Typ kann zu Übersetzungsfehlern oder zu Laufzeitfehlern führen.

59 Zuweisungsoperatoren Abkürzungen für Zuweisungsausdrücke Kombination von Addition und Zuweisung Beispiel total = total + grade; total += grade; wird abgekürzt durch Ausdrücke der Form Variable = Variable Operator Ausdruck; können abgekürzt geschrieben werden als Variable Operator= Ausdruck; Andere Zuweisungsoperatoren d -= 4 (d = d - 4) e *= 5 (e = e * 5) f /= 3 (f = f / 3) g %= 9 (g = g % 9)

60 60 Zuweisungsoperator Beispiel Ausdruck Erläuterung Voraussetzung: int c = 3, d = 5, e = 4, f = 6, g = 12; += c += 7 c = c an c -= d -= 4 d = d an d *= e *= 5 e = e * 5 20 an e /= f /= 3 f = f / 3 2 an f %= g %= 9 g = g % 9 3 an g Zuweisung Fig Arithmetische Zuweisungsoperatoren.

61 3.12 Inkrementierungs- und Dekrementierungsoperatoren 61 Inkrementierungsoperator ++ Erhöht den Variablenwert um Eins Beispiel: counter = counter + 1; wird abgekürzt durch ++counter; Dekrementierungoperator -- Erniedrigt den Variablenwert um Eins Beispiel: counter = counter - 1; wird abgekürzt durch --counter;

62 3.12 Inkrementierungs- und Dekrementierungsoperatoren 62 Präinkrement Der Operator wird angewendet und der veränderte Wert wird zurückgegeben (++c oder --c). Die Variable wird geändert, danach wird der Ausdruck, in dem sie steht ausgewertet, wobei der neue Wert benutzt wird. Postinkrement Der Operator wird angewendet, aber der alte (unveränderte) Wert wird zurückgegeben (c++ oder c--). Der Ausdruck, in dem die Variable steht, wird ausgewertet, wobei der alte Wert benutzt wird, erst danach wird die Variable geändert.

63 63 Praxis-Tipp Im Gegensatz zu binären Operatoren sollten die unären Inkrementierungs- und Dekrementierungsoperatoren direkt neben ihren Operanden stehen, ohne Leerzeichen dazwischen.

64 1 // Fig. 3.21: fig03_21.c 2 // Preincrementing and postincrementing. 3 #include <stdio.h> 4 5 int main( void ) 6 { 7 int c; 8 9 // demonstrate preincrement 10 c = 5; // assign 5 to c 11 printf( "%d ", c ); // print 5 12 printf( "%d ", ++c ); // preincrement then print 6 13 printf( "%d\n\n", c ); // print // demonstrate postincrement 16 c = 5; // assign 5 to c 17 printf( "%d ", c ); // print 5 18 printf( "%d ", c++ ); // print 5 then postincrement 19 printf( "%d\n", c ); // print 6 20 } // end main Outline fig03_21.c (1 von 1) Pearson Education, Inc. All rights reserved.

65 3.12 Inkrementierungs- und Dekrementierungsoperatoren 65 Wenn die Inkrementierung einer Variablen der einzige Ausdruck in einer Anweisung ist, haben Präund Postinkrement den gleichen Effekt. Beispiel: und ++c; printf( "%d ", c ); c++; printf( "%d ", c ); geben immer den gleichen Wert für c aus.

66 66 Häufiger Programmierfehler Inkrementierungs- und Dekrementierungsoperatoren können nur auf veränderbare Variablen oder Referenzen (sog. L-Werte ) angewendet werden. Folgende Schreibweise ist demnach ein Syntaxfehler: ++(x + 1)

67 67 Operatoren Assoziativität Typ () links nach rechts Klammern static_cast< type >() links nach rechts unär (postfix) rechts nach links unär (präfix) * / % links nach rechts multiplikativ + - links nach rechts additiv << >> links nach rechts Ausgabe/Eingabe < <= > >= links nach rechts relational ==!= links nach rechts Gleichheit?: rechts nach links Bedingung = += -= *= /= %= rechts nach links Zuweisung Fig Operatorvorrang für die bisher behandelten Operatoren.

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

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

ModProg 15-16, Vorl. 5

ModProg 15-16, Vorl. 5 ModProg 15-16, Vorl. 5 Richard Grzibovski Nov. 18, 2015 1 / 29 Übersicht Übersicht 1 Logische Operationen 2 Priorität 3 Verzweigungen 4 Schleifen 2 / 29 Logische Werte Hauptkonzept: Besitzt ein C-Ausdruck

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

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

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Algorithmen & Programmierung. Ausdrücke & Operatoren (1) Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck

Mehr

Programmieren für Wirtschaftswissenschaftler SS 2015

Programmieren für Wirtschaftswissenschaftler SS 2015 DEPARTMENT WIRTSCHAFTSINFORMATIK FACHBEREICH WIRTSCHAFTSWISSENSCHAFT Programmieren für Wirtschaftswissenschaftler SS 2015 Lucian Ionescu Blockveranstaltung 16.03 27.3.2015 3. Verzweigungen und Schleifen

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Schleifenanweisungen

Schleifenanweisungen Schleifenanweisungen Bisher: sequentielle Abarbeitung von Befehlen (von oben nach unten) Nun: Befehle mehrfach ausführen (= Programmschleife): for-anweisung - wenn feststeht, wie oft z.b.: eine Berechnung

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011 Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 Operatoren für elementare Datentypen 2 Bedingte Anweisungen 3 Schleifen Zuweisungsoperator Die Zuweisung von Werten an

Mehr

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

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

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

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

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

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Fallunterscheidung: if-statement

Fallunterscheidung: if-statement Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

4.Grundsätzliche Programmentwicklungsmethoden

4.Grundsätzliche Programmentwicklungsmethoden 4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden

Mehr

C- Kurs 04 Anweisungen

C- Kurs 04 Anweisungen C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

4. Ablaufsteuerung (Kontrollstrukturen)

4. Ablaufsteuerung (Kontrollstrukturen) 4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung 4-1 4.1 Anweisungen Ein Programm besteht

Mehr

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

Mehr

Hochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung.

Hochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung. Zahldarstellung Lernziele: Vertiefen der Kenntnisse über Zahldarstellungen. Aufgabe 1: Werte/Konstanten Ergänzen Sie die Tabelle ganzzahliger Konstanten auf einem 16- Bit- System. Die Konstanten in einer

Mehr

Flussdiagramm / Programmablaufplan (PAP)

Flussdiagramm / Programmablaufplan (PAP) Flussdiagramm / Programmablaufplan (PAP) Basissysmbole Grenzstelle (Anfang, Zwischenhalt oder Ende des Programms/Algorithmus) Verbindung Zur Verdeutlichung der Ablaufrichtung werden Linien mit einer Pfeilspitze

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

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren

1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren 1 und der Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2015 27. Oktober 2015 B. Nebel Info I 3 / 21 Der Vergleichsoperatoren

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der Java-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 3: Kontrollstrukturen Einfache Anweisungen Anweisungsblöcke Steuerung

Mehr

L6. Operatoren und Ausdrücke

L6. Operatoren und Ausdrücke L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe

Mehr

C++ Teil 1. Sven Groß. 9. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr / 19

C++ Teil 1. Sven Groß. 9. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr / 19 C++ Teil 1 Sven Groß IGPM, RWTH Aachen 9. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr 2015 1 / 19 Organisatorisches Anmeldung zu Vorlesung und Praktikum über CampusOffice heute! Zugang zu

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen der Informatik I (Studiengang Medieninformatik) Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Werkzeuge zur Programmentwicklung

Werkzeuge zur Programmentwicklung Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 3: Anweisungen, Blöcke und Programmfluss Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung

Mehr

Grundelemente der C++ Programmierung. 2006 Pearson Education, Inc. All rights reserved.

Grundelemente der C++ Programmierung. 2006 Pearson Education, Inc. All rights reserved. 1 2 Grundelemente der C++ Programmierung 2 2.1 Einführung 2.2 Erstes Programm in C++: Eine Zeile Text ausgeben 2.3 Varianten des ersten C++ Programms 2.4 Zweites C++ Programm: Ganze Zahlen addieren 2.5

Mehr

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,

Mehr

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen Neben der Aneinanderreihung von Anweisungen (Sequenz)

Mehr

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei

Mehr

INE1 Entscheidungen. Ablaufstrukturen Logische Ausdrücke Auswahl: if... else... Mehrfachauswahl: switch... Konstanten und Aufzähltypen

INE1 Entscheidungen. Ablaufstrukturen Logische Ausdrücke Auswahl: if... else... Mehrfachauswahl: switch... Konstanten und Aufzähltypen INE1 Entscheidungen Ablaufstrukturen Logische Ausdrücke Auswahl: if... else... Mehrfachauswahl: switch... Konstanten und Aufzähltypen Ablaufstrukturen 2 von 61 Entscheidungen Bis jetzt: Sequenz Anweisungen

Mehr

Programmieren in C / C++ Grundlagen C 2

Programmieren in C / C++ Grundlagen C 2 Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen

Mehr

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts Kapitel 6: Arithmetik in JavaCard Problem: Keine Integers in JavaCard ToDo: Rechnen mit Bytes und Shorts Java SmartCards, Kap. 6 (1/20) Hex-Notation 1 Byte = 8 Bit, b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 0101

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

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In

Mehr

Präzedenz von Operatoren

Präzedenz von Operatoren Präzedenz von Operatoren SWE-30 Die Präzedenz von Operatoren bestimmt die Struktur von Ausdrücken. Ein Operator höherer Präzedenz bindet die Operanden stärker als ein Operator geringerer Präzedenz. Mit

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1 Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

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

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Informatik I Übung, Woche 40

Informatik I Übung, Woche 40 Giuseppe Accaputo 2. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 2 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 3 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung

Mehr

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität IT Services Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt?

Mehr

2.5 Programmstrukturen Entscheidung / Alternative

2.5 Programmstrukturen Entscheidung / Alternative Entscheidung, ob der folgende Anweisungsblock ausgeführt wird oder ein alternativer Block Entscheidung ob die Bedingung wahr oder falsch (True / False) ist Syntax: 2.5 Programmstrukturen 2.5.1 Entscheidung

Mehr

Tutorium für Fortgeschrittene

Tutorium für Fortgeschrittene Tutorium für Fortgeschrittene Stroop Aufgabe: Die Farbe gesehener Wörter ist zu klassifizieren. Es gibt 4 Farben (rot, blau, gelb, grün) In Eprime: red, blue, yellow and green. Jeder Farbe ist einer Taste

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Übersicht. C Ein-/Ausgabe und Kontrollanweisungen. I/O-Funktionen aus stdio. printf() Ein-/Ausgabe. Kontrollanweisungen.

Übersicht. C Ein-/Ausgabe und Kontrollanweisungen. I/O-Funktionen aus stdio. printf() Ein-/Ausgabe. Kontrollanweisungen. Übersicht Ein-/Ausgabe C Ein-/Ausgabe und Kontrollanweisungen Kontrollanweisungen 1 2 I/O-Funktionen aus stdio printf() printf() - zum formatierten Ausgaben #include scanf() - zum formatierten

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Grundlagen der Programmierung in C++ Kontrollstrukturen

Grundlagen der Programmierung in C++ Kontrollstrukturen Grundlagen der Programmierung in C++ Kontrollstrukturen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Block Keine Kontrollstruktur im eigentlichen Sinn Dient

Mehr

Das erste C++ Programm

Das erste C++ Programm Das erste C++ Programm // Program: power8.c // Raise a number to the eighth power. #include int main() { // input std::cout > a; // computation int

Mehr

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32 Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"

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

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Abstrakte Algorithmen und Sprachkonzepte

Abstrakte Algorithmen und Sprachkonzepte Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise

Mehr

Processing Info zu Variablen und Bedingungen

Processing Info zu Variablen und Bedingungen Processing Info zu Variablen und Bedingungen Dieses Dokument enthält - Variablen (Variablen, Datentypen, Deklaration, Geltungsbereich, Benennung) - Bedingungen (if, mousepressed, else) Variablen Eine Variable

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Webbasierte Programmierung

Webbasierte Programmierung Webbasierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der HTML5-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 6: JavaScript Kontrollstrukturen Verzweigungen Einseitig, zweiseitig,

Mehr

Algorithmen & Programmierung. Rekursive Funktionen (1)

Algorithmen & Programmierung. Rekursive Funktionen (1) Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten.

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten. Folge 6 WHILE-Schleife JAVA 6.1 Schleifen Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten. Zu einer Schleife gehören die Schleifenbedingung und der Rumpf. Die Schleifenbedingung

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Einführung in die Programmierung

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

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

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

C.3 Funktionen und Prozeduren

C.3 Funktionen und Prozeduren C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens

Mehr