Tutoraufgabe 1 (Typcasting):
|
|
- Kasimir Weiss
- vor 5 Jahren
- Abrufe
Transkript
1 Prof. aa Dr. J. Giesl Programmierung WS18/19 S. Dollase, M. Hark, D. Korzeniewski Tutoraufgabe 1 (Typcasting: Bestimmen Sie den Typ und das Ergebnis der folgenden Java-Ausdrücke. Begründen Sie Ihre Antwort und geben Sie dabei für alle auftretenden Typkonvertierungen den resultierenden Typ und den resultierenden Wert an. Geben Sie darüber hinaus an, ob es sich um explizite oder implizite Konvertierungen handelt. Sollte der Ausdruck nicht typkorrekt sein, begründen Sie, worin der Fehler besteht. Dabei seien die Variablen x, y und z wie folgt deklariert: var x = 1; var y = 2; var z = 3; a false && true b 10 / 3 c 10 / 3. d x == y? x > y : y < z e (byte ( f x + y + z g x + y + "z" h 1 0 i 5 + (2 > 3? 7.2 : 4 1
2 var x = 1; var y = 2; var z = 3; Die Variablen x, y und z haben alle den Typ int. a false && true Der Ausdruck liefert den Wert false vom Typ boolean, da die logische Und-Verknüpfung zweier boolean Werte hier ganz normal ausgeführt werden kann. b 10 / 3 Der Ausdruck liefert den int-wert 3, da bei der Division zweier int-werte in Java Ganzzahldivision ohne Rest verwendet wird. c 10 / 3. Der Ausdruck liefert den double-wert , da der int-wert 10 für die double-division erst implizit zum double 10.0 konvertiert wird. d x == y? x > y : y < z Der Ausdruck liefert den boolean-wert true, da zuerst der boolean-vergleich x == y zu false und anschließend y < z zu true ausgewertet wird. Der Typ von x > y ist ebenfalls boolean, weshalb kein Fehler auftritt. e (byte ( Der Ausdruck liefert das Ergebnis -128 vom Typ byte, da zuerst die int-addition durchgeführt wird und das Ergebnis +128 anschließend explizit in den byte-datentypen konvertiert wird. Dieser Datentyp kann diesen Wert allerdings nicht darstellen. Die sich ergebende Dualzahl wird im 8-Bit Zweierkomplement als -128 interpretiert. f x + y + z Durch die Auswertung von links nach rechts wird zuerst x + y ausgewertet. Dafür wird das Zeichen x zuerst implizit in die int-zahl 120 konvertiert. Dies ergibt also = 122. Dieser Wert wird dann mit der int-zahl 3 addiert, und somit wird der Gesamtausdruck zu 125 vom Typ int ausgewertet. g x + y + "z" Durch die Auswertung von links nach rechts wird zuerst x + y zur int-zahl 3 ausgewertet. Dieser Wert wird dann mit dem String "z" verkettet, und somit wird der Gesamtausdruck zu "3z" vom Typ String ausgewertet. h 1 0 Der Ausdruck liefert einen Fehler, da 1 und 0 vom Typ int sind und damit der boolean-vergleich nicht möglich ist. i 5 + (2 > 3? 7.2 : 4 Zuerst wird der Typ des bedingten Ausdruck inferiert. Da 7.2 den Typ double hat, wird der int 4 implizit in den double 4.0 gecastet, d.h. der bedingte Ausdruck wertet zu einem double aus. Somit wird der int 5 implizit in den double 5.0 gecastet. Bei der Auswertung wird ebenfalls erst der bedingte Ausdruck ausgewertet. Da 2 > 3 zu false auswertet, wird die Gleitkommazahladdition von 5.0 und 4.0 ausgewertet und das Endergebnis ist der double 9.0. Aufgabe 2 (Typcasting: ( = 9 Punkte Bestimmen Sie den Typ und das Ergebnis der folgenden Java-Ausdrücke. Begründen Sie Ihre Antwort und geben Sie dabei für alle auftretenden Typkonvertierungen den resultierenden Typ und den resultierenden Wert an. Geben Sie darüber hinaus an, ob es sich um explizite oder implizite Konvertierungen handelt. Sollte der Ausdruck nicht typkorrekt sein, begründen Sie, worin der Fehler besteht. Dabei seien die Variablen x, y und z wie folgt deklariert: var x = 5.; var y = false; var z = 3; 2
3 a (float (2/(long 3 b x == y && x!= y c x == z && x!= z d a /98 == 3.F/(int4.6 e (x < z + 2.2F f result, wobei result folgende Variablendeklaration hat: int result = x < (byte a? a : b g u, wobei u folgende Variablendeklaration hat: var u = true? 1 : 2.0; var x = 5.; var y = false; var z = 3; x hat den Typ double, y den Typ boolean und z den Typ int. a (float (2/(long 3 Der int Wert 3 wird explizit in den Typ long umgewandelt. Anschließend wird 2 vom Typ int implizit in den Typ long umgewandelt und die Ganzzahldivision des Typs long durchgeführt, welche den long Wert 0 ergibt. Anschließend wird dieser explizit in den float 0.0 gecastet. b x == y && x!= y Die Variable x hat den Typ double, welcher nicht in den Typ boolean gecastet werden kann. Da auch boolean nicht zu double gecastet werden kann, ergibt sich ein Typfehler. c x == z && x!= z Die Variable z wird implizit in den double Wert 3.0 gecastet und mit x verglichen. Es ergibt sich false. Da der zweite Ausdruck korrekt getypt ist, da z implizit in einen double gecastet werden kann, wird der Ausdruck zu false ausgewertet. Java geht von links nach rechts vor und wertet den rechten Ausdruck nicht mehr aus. d a /98 == 3.F/(int4.6 Der char a wird implizit in den int 97 gecastet. Anschließend wird die int Division zu 0 ausgewertet. Auf der rechten Seite wird 4.6 zuerst explizit in den int 4 gecastet und anschließend implizit in den float 4.0. Die float Division ergibt dann Anschließend wird das Ergebnis 0 der linken Seite implizit in den float 0.0F gecastet. Der Vergleich ergibt den boolean false. e (x < z + 2.2F Das Ergebnis des Vergleichs ist ein boolean. Da boolean und float nicht ineinander gecastet werden können, ergibt sich ein Typfehler. f result, wobei result folgende Variablendeklaration hat: int result = x < (byte a? a : b Wie eben wird der char a explizit in den byte 97 gecastet und anschließend implizit in den double Der Vergleich wertet dann zum boolean true aus, weshalb sich der char a ergibt, der schließlich implizit zum int 97 gecastet wird. g u, wobei u folgende Variablendeklaration hat: var u = true? 1 : 2.0; Da 2.0 den Typ double hat, wird der int 1 implizit in den double 1.0 gecastet. Der bedingte Ausdruck wertet dann zu 1.0 aus, da die Bedingung true ist. Also hat die Variable u den Typ double und den Wert
4 Tutoraufgabe 3 (Programmierung: Schreiben Sie ein einfaches Java-Programm, welches den Benutzer auffordert, eine positive ganze Zahl (d. h. größer als 0 einzugeben. Danach soll das Programm eine Zahl einlesen. Diese Eingabeaufforderung mit anschließendem Einlesen soll solange wiederholt werden, bis der Benutzer wirklich eine positive Zahl eingibt. Wenn die Benutzereingabe keine Zahl ist, darf sich das Programm beliebig verhalten. Anschließend soll der Benutzer aufgefordert werden, ein Wort einzugeben. Das Wort soll eingelesen und schließlich so oft hintereinander geschrieben ausgeben werden, wie durch die eingegebene positive Zahl festgelegt wurde. Ein Ablauf des Programms könnte z.b. so aussehen: Bitte geben Sie eine positive Zahl ein 0 Bitte geben Sie eine positive Zahl ein 3 Bitte geben Sie ein Wort ein Programmierung ProgrammierungProgrammierungProgrammierung Hinweise: Verwenden Sie die Klasse SimpleIO zum Einlesen und Ausgeben von Werten. 4
5 /** * Programm zum Einlesen einer positiven Zahl und eines Worts, welches das Wort * anschliessend so oft ausgibt, wie durch die Zahl festgelegt wurde. */ public class Multiecho { public static void main ( String [] args { // Einlesen der Zahl mit Ueberpruefung, dass die Zahl positiv ist : int zahl = 0; while ( zahl < 1 { zahl = SimpleIO. getint (" Bitte geben Sie eine positive Zahl ein "; // Einlesen des Wortes : String wort = SimpleIO. getstring (" Bitte geben Sie ein Wort ein "; // Ausgabe des Wortes so oft wie durch die Zahl festgelegt wurde : int i = 0; String multi = ""; while (i < zahl { multi += wort ; i ++; SimpleIO. output ( multi, " MultiEcho "; Aufgabe 4 (Programmierung: (9 Punkte Implementieren Sie einen einfachen 8 Bit-Zweierkomplement Konverter in Java. Für die Ein-/Ausgabe soll die bereitgestellte Klasse SimpleIO genutzt werden. Die Benutzung anderer vordefinierten Methoden als der hier explizit genannten ist nicht gestattet. Um einen String str1 in einem Fenster mit dem Titel 1 str2 auszugeben, nutzen Sie SimpleIO.output(str1, str2. Um einen Wert vom Typ type einzulesen, nutzen Sie SimpleIO.getType(str, wobei str der Text ist, der dem Benutzer im Eingabefenster angezeigt wird. Um einen Wert vom Typ int einzulesen, benutzen Sie also z.b. SimpleIO.getInt("Bitte eine ganze Zahl eingeben". Das Programm soll den Benutzer zunächst auswählen lassen, ob von Dezimaldarstellung in Binärdarstellung oder von Binärdarstellung in Dezimaldarstellung konvertiert werden soll. Zur Dezimaldarstellung benutzen wir den primitiven Datentyp int, zur Binärdarstellung den vordefinierten Typ String. Bedenken Sie, dass mit dem 8 Bit Zweierkomplement die ganzen Zahlen { dargestellt werden können und alle Binärdarstellungen genau 8 Einträge haben. Zur Auswahl sollen folgende Schlüsselwörter verwendet werden: Decimal Bei dieser Auswahl soll der Benutzer eine ganze Zahl als Dezimalzahl eingeben. Falls diese nicht im 8 Bit Zweierkomplement dargestellt werden kann, soll die Eingabe wiederholt werden, bis eine darstellbare Zahl eingegeben wird. Anschließend soll die Eingabe mit dem Verfahren aus der Vorlesung ins Zweierkomplement konvertiert und ausgegeben werden. Binary Bei dieser Auswahl soll das Programm den Benutzer nach einer ganzen Zahl im 8 Bit Zweierkomplement fragen, die als String eingelesen wird. Das Einlesen soll wiederholt werden bis ein String der 1 Sie dürfen in dieser Aufgabe immer z.b. Zweierkomplement als Titel verwenden. 5
6 Länge 8 eingegeben wird. Enthält der String Zeichen, die weder 0 noch 1 sind, soll eine Fehlermeldeung ausgegeben und das Programm beendet werden. Eine korrekte Eingabe soll mit dem Verfahren aus der Vorlesung in eine Dezimalzahl umgewandelt und ausgegeben werden. Gibt der Nutzer weder Decimal noch Binary ein, so soll er erneut gefragt werden. Ein Beispiellauf des Programms könnte also so aussehen: Bitte waehlen Sie aus : Decimal : Dezimalzahl ins Zweierkomplement konvertieren. Binary : 8- Bit - Zweierkomplement als Dezimalzahl darstellen. Programmierung Bitte waehlen Sie aus : Decimal : Dezimalzahl ins Zweierkomplement konvertieren. Binary : 8- Bit - Zweierkomplement als Dezimalzahl darstellen. Decimal Bitte geben Sie eine ganze Zahl zwischen -128 und 127 ein. -13 Ihre Dezimalzahl im Zweierkomplement dargestellt ist bzw. Bitte waehlen Sie aus : Decimal : Dezimalzahl ins Zweierkomplement konvertieren. Binary : 8- Bit - Zweierkomplement als Dezimalzahl darstellen. Binary Bitte geben Sie eine ganze Zahl im 8- Bit - Zweierkomplement ein Ihr 8- Bit - Zweierkomplement entspricht der Dezimalzahl -13 Hinweise: Um zwei Strings str1 und str2 auf Gleichheit zu testen, verwenden Sie str1.equals(str2 (und nicht str1 == str2. Für die Berechnung der Länge eines String str rufen Sie str.length( auf. Um den i-ten char eines String str zu bestimmen, rufen Sie str.charat(i auf. Der vorderste Eintrag eines String hat den Index 0. Der letzte Buchstabe hat den Index str.length(-1. Die Benutzung von impliziter Typinferenz durch var x =...; ist nicht gestattet, da diese zu unleserlichem Programmcode führt. Legen Sie die bereitgestellte Datei SimpleIO.java einfach im gleichen Verzeichnis wie ihre Lösung ab. Dann findet javac diese automatisch und kompiliert sie. Ihr Konverter muss die Verfahren aus der Vorlesung verwenden, um die Eingabe zu konvertieren. Ansonsten werden keine Punkte vergeben. /** * Programm zur Konvertierung von kleinen Dezimalzahlen in 8- Bit Binaerdarstellung * und von 8- Bit - Binaerdarstellung in Dezimalzahlen. */ public class Zweierkomplement { public static void main ( String [] args { String mode ; do{ mode = SimpleIO. getstring (" Bitte waehlen Sie aus :\ n" + " Decimal : Dezimalzahl ins Zweierkomplement konvertieren.\ n" + 6
7 " Binary : 8- Bit - Zweierkomplement als Dezimalzahl darstellen."; while (!( " Decimal ". equals ( mode " Binary ". equals ( mode ; if(" Decimal ". equals ( mode { int inputint ; do{ inputint = SimpleIO. getint ( " Bitte geben Sie eine ganze Zahl zwischen -128 und 127 ein."; while ( inputint < -128 inputint > 127; // Zu negativen Zahlen muss 2^8=256 addiert werden if ( inputint < 0{ inputint = 256+ inputint ; String output = ""; // Berechnet den Bit - String for ( int i = 0; i < 8; i ++{ if( inputint % 2 == 0{ output = " 0" + output ; inputint = inputint /2; else { output = " 1" + output ; inputint = ( inputint -1/2; SimpleIO. output ( " Ihre Dezimalzahl im Zweierkomplement dargestellt ist " + output," Zweierkomplement "; else { String inputstring ; do{ inputstring = SimpleIO. getstring ( " Bitte geben Sie eine ganze Zahl im 8- Bit - Zweierkomplement ein."; while ( inputstring == null inputstring. length (!= 8; int result = 0; // Die Zweierpotenzen werden " on the run " berechnet int power = 1; // Wird true, wenn es kein Bit - String ist. boolean error = false ; // Durchlaeuft den String und berechnet die Dezimahlzahl for ( int pos = 7; pos >=0 &&! error ; pos --{ char curr = inputstring. charat ( pos ; if( curr == 1 { // Das vorderste Bit symbolisiert -2^8 result += ( pos == 0? (- power : power ; // Kein Bit - String -> Fehlermeldung und Schleifenabbruch else if ( curr!= 0 { SimpleIO. output (" Das ist kein Bit String "," Zweierkomplement "; error = true ; power *= 2; // Ausgabe nur bei Fehlerfreiheit 7
8 if (! error { SimpleIO. output (" Ihr 8- Bit - Zweierkomplement entspricht der Dezimalzahl " + result," Zweierkomplement "; Tutoraufgabe 5 (Verifikation: Gegeben sei folgendes Java-Programm über den Integer-Variablen x, y, z und r: 0 x 0 < y (Vorbedingung z = 0; r = x; while (r >= y { r = r - y; z = z + 1; z = x div y (Nachbedingung Vervollständigen Sie die folgende Verifikation der partiellen Korrektheit des Algorithmus im Hoare-Kalkül, indem Sie die unterstrichenen Teile ergänzen. Hierbei dürfen zwei Zusicherungen nur dann direkt untereinander stehen, wenn die untere aus der oberen folgt. Hinter einer Programmanweisung darf nur eine Zusicherung stehen, wenn dies aus einer Regel des Hoare-Kalküls folgt. Hinweise: div steht für die Integer-Division, d.h. 5 div 3 ergibt z.b. 1. Sie dürfen beliebig viele Zusicherungs-Zeilen ergänzen oder streichen. In der Musterlösung werden allerdings genau die angegebenen Zusicherungen benutzt. Bedenken Sie, dass die Regeln des Kalküls syntaktisch sind, weshalb Sie semantische Änderungen (beispielsweise von x + 1 = y + 1 zu x = y nur unter Zuhilfenahme der Konsequenzregeln vornehmen dürfen. Es empfiehlt sich oft, bei der Erstellung der Zusicherungen in der Schleife von unten (d. h. von der Nachbedingung aus vorzugehen. z = 0; r = x; while (r >= y { r = r - y; 0 x 0 < y 0 = 0 x = x 0 x 0 < y z = 0 x = x 0 x 0 < y z = 0 r = x 0 x 0 < y x div y = z + r div y 0 r 0 < y x div y = z + r div y 0 r 0 < y r y x div y = z (r y div y 0 r y 0 < y x div y = z r div y 0 r 0 < y 8
9 z = z + 1; x div y = z + r div y 0 r 0 < y x div y = z + r div y 0 r 0 < y r y z = x div y Aufgabe 6 (Verifikation: Gegeben sei folgendes Java-Programm über den Integer-Variablen x, res und c: x 0 (Vorbedingung res = -x; c = x; while (c > 0 { res = res + 2 * c; c = c - 1; res = x x (Nachbedingung (7 Punkte Vervollständigen Sie die folgende Verifikation der partiellen Korrektheit des Algorithmus im Hoare-Kalkül, indem Sie die unterstrichenen Teile ergänzen. Hierbei dürfen zwei Zusicherungen nur dann direkt untereinander stehen, wenn die untere aus der oberen folgt. Hinter einer Programmanweisung darf nur eine Zusicherung stehen, wenn dies aus einer Regel des Hoare-Kalküls folgt. Hinweise: Sie können die Gauß sche Summenformel benutzen: Für eine natürliche Zahl x gilt x = x k=0 k = x (x+1 2. Somit ist also x 2 = 2 x k x. Die leere Summe (bei der der Startindex größer als der Zielindex ist wird als 0 interpretiert. Beispielsweise gilt also k = x 0. k=x+1 Sie dürfen beliebig viele Zusicherungs-Zeilen ergänzen oder streichen. In der Musterlösung werden allerdings genau die angegebenen Zusicherungen benutzt. Bedenken Sie, dass die Regeln des Kalküls syntaktisch sind, weshalb Sie semantische Änderungen (beispielsweise von x + 1 = y + 1 zu x = y nur unter Zuhilfenahme der Konsequenzregeln vornehmen dürfen. Es empfiehlt sich oft, bei der Erstellung der Zusicherungen in der Schleife von unten (d. h. von der Nachbedingung aus vorzugehen. k=0 res = -x; c = x; x 0 x 0 x = x x = x x 0 res = x x = x x 0 ( res = x c = x x res = 2 k x c 0 k=c+1 9
10 while (c > 0 { ( x res = k=c+1 res + 2 c = res = res + 2 * c; ( res = c = c - 1; x k=c k ( x k=c 1+1 x c 0 c > 0 2 k x c k x c 1 0 ( x res = 2 k x c 0 k=c+1 ( x res = 2 k x c 0 c > 0 k=c+1 res = x x Um von der vierten auf die fünfte Zusicherung zu kommen benutzen wir die Konsequenzregel, denn die leere Summe, bei der also der Startindex echt größer als der Zielindex ist, wird als 0 interpretiert, d.h. ( x 2 k x = x. k=x+1 Um von der vorletzten auf die letzte Zusicherung zu kommen, benutzen wir ebenfalls die Konsequenzregel, denn nach der Gauß schen Summenformel gilt ( x ( x x (x k x = 2 k x = 2 x = x x + x x = x x. 2 k=1 k=0 Tutoraufgabe 7 (Verifikation: Gegeben sei folgendes Java-Programm, das zu zwei Eingaben x = a und y = b den Wert a b berechnet. x = a y = b (Vorbedingung res = 0; while (x!= y { if (x > y { x = x - 1; else { y = y - 1; res = res + 1; res = a b (Nachbedingung a Vervollständigen Sie die folgende Verifikation des Algorithmus im Hoare-Kalkül, indem Sie die unterstrichenen Teile ergänzen. Hierbei dürfen zwei Zusicherungen nur dann direkt untereinander stehen, wenn die untere aus der oberen folgt. Hinter einer Programmanweisung darf nur eine Zusicherung stehen, wenn dies aus einer Regel des Hoare-Kalküls folgt. Hinweise: 10
11 Für alle x, y Z gilt: und x > y = (x 1 y = x y 1 x y (x > y = x (y 1 = x y 1. Achtung: Falls lediglich x y bzw. x y gilt, gelten beide Gleichungen nicht im Allgemeinen. Sie dürfen beliebig viele Zusicherungs-Zeilen ergänzen oder streichen. In der Musterlösung werden allerdings genau die angegebenen Zusicherungen benutzt. Bedenken Sie, dass die Regeln des Kalküls syntaktisch sind, weshalb Sie semantische Änderungen (beispielsweise von x+1 = y+1 zu x = y nur unter Zuhilfenahme der Konsequenzregeln vornehmen dürfen. Klammern dürfen und müssen Sie jedoch eventuell bei der Anwendung der Zuweisungsregel setzen. Es empfiehlt sich oft, bei der Erstellung der Zusicherungen in der Schleife von unten (d. h. von der Nachbedingung aus vorzugehen. b Beweisen Sie die Terminierung des Algorithmus im Hoare-Kalkül. a x = a y = b x = a y = b 0 = 0 res = 0; x = a y = b res = 0 res = a b x y while (x!= y { res = a b x y x y res + 1 = a b ( x y 1 x y if (x > y { res + 1 = a b ( x y 1 x y x > y res + 1 = a b (x 1 y x = x - 1; res + 1 = a b x y else { res + 1 = a b ( x y 1 x y (x > y res + 1 = a b x (y 1 y = y - 1; res + 1 = a b x y res + 1 = a b x y res = res + 1; res = a b x y res = a b x y x = y res = a b b Eine gültige Variante für die Terminierung ist V = x y. Die Schleifenbedingung B = x y impliziert x y > 0 und damit V 0. Es gilt: if (x > y { x y = m x y x y 1 < m x y x y 1 < m x y x > y (x 1 y < m 11
12 x = x - 1; else { y = y - 1; res = res + 1; x y < m x y 1 < m x y (x > y x (y 1 < m x y < m x y < m x y < m Damit ist die Terminierung der einzigen Schleife des Programms gezeigt. Aufgabe 8 (Verifikation: Gegeben sei folgendes Java-Programm über den Integer-Variablen a, b, x, res und y: b 0 (Vorbedingung x = b; res = a; y = 1; while (x > 0 { if (x % 2 == 0 { y = 2 * y; x = x / 2; else { res= res + y; y = 2 * y; x = (x - 1 / 2; res = a + b (Nachbedingung (9 + 3 = 12 Punkte a Vervollständigen Sie die folgende Verifikation des Algorithmus im Hoare-Kalkül, indem Sie die unterstrichenen Teile ergänzen. Hierbei dürfen zwei Zusicherungen nur dann direkt untereinander stehen, wenn die untere aus der oberen folgt. Hinter einer Programmanweisung darf nur eine Zusicherung stehen, wenn dies aus einer Regel des Hoare-Kalküls folgt. Hinweise: Die Programmanweisung x / 2 berechnet das abgerundete Ergebnis der Ganzzahldivision, d.h. x 2. Sie dürfen beliebig viele Zusicherungs-Zeilen ergänzen oder streichen. In der Musterlösung werden allerdings genau die angegebenen Zusicherungen benutzt. Bedenken Sie, dass die Regeln des Kalküls syntaktisch sind, weshalb Sie semantische Änderungen (beispielsweise von x+1 = y+1 zu x = y nur unter Zuhilfenahme der Konsequenzregeln vornehmen dürfen. Es empfiehlt sich oft, bei der Erstellung der Zusicherungen in der Schleife von unten (d. h. von der Nachbedingung aus vorzugehen. res = a + b 12
13 b Untersuchen Sie den Algorithmus P auf seine Terminierung. Für einen Beweis der Terminierung muss eine Variante angegeben werden und mit Hilfe des Hoare-Kalküls die Terminierung bewiesen werden. a b 0 b 0 b = b a = a 1 = 1 x = b; x 0 x = b a = a 1 = 1 res = a; x 0 x = b res = a 1 = 1 y = 1; x 0 x = b res = a y = 1 a + b = res + x y x 0 while (x > 0 { a + b = res + x y x 0 x > 0 if (x % 2 == 0 { a + b = res + x y x 0 x > 0 x mod 2 = 0 a + b = res + x 2 2 y x 2 0 y = 2 * y x = x / 2 else { res = res + y y = 2 * y x = (x - 1 / 2; a + b = res + x 2 y x 2 0 a + b = res + x y x 0 a + b = res + x y x 0 x > 0 (x mod 2 = 0 a + b = res + y + x y x a + b = res + x 1 2 a + b = res + x y x 1 2 a + b = res + x y x 0 a + b = res + x y x 0 0 y x a + b = res + x y x 0 x > 0 res = a + b b Wir wählen als Variante V = x. Hiermit lässt sich die Terminierung des Programms beweisen, denn für die einzige Schleife im Programm (mit Schleifenbedingung B = x > 0 gilt: B V 0, denn B = x > 0 V > 0 und die folgende Ableitung ist korrekt: x = m x > 1 if (x % 2 == 0 { x = m x > 1 x mod 2 = 0 x 2 < m y = 2 * y x = x / 2 else { x 2 < m x < m x = m x > 1 (x mod 2 = 0 x 1 2 < m 13
14 res = res + y y = 2 * y x = (x - 1 / 2; x 1 2 < m x 1 2 < m x < m x < m Aufgabe 9 (Deck 1: (Codescape Lösen Sie die Räume von Deck 1 des Spiels Codescape. Ihre Lösung für Räume dieses Codescape Decks wird nur dann für die Zulassung gezählt, wenn Sie die Lösung bis Mittwoch, den um 08:00 abschicken. 14
Tutoraufgabe 1 (Casting): Programmierung WS17/18 Übungsblatt 2 (Abgabe ) Allgemeine Hinweise:
Prof. aa Dr. J. Giesl Programmierung WS17/18 M. Hark, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
MehrTutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen
MehrTutoraufgabe 1 (Hoare-Kalkül):
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
MehrTutoraufgabe 1 (Verifikation):
Prof. aa Dr. M. Müller C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet werden.
MehrProgrammierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.
MehrÜbung zur Vorlesung Programmierung
RWTH Aachen Lehrgebiet Theoretische Informatik Frohn Reidl Rossmanith Sánchez Ströder WS 013/14 Übungsblatt 4 18.11.013 Übung zur Vorlesung Programmierung Aufgabe T8 Ein Stack ist eine Datenstruktur, die
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
Mehrn 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays)
n 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation n Spezifikation: Angabe, was ein
Mehr! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation! Spezifikation: Angabe, was ein Programm
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
Mehrint x = 3; int y = 11; public A () { this.x = z; y *= z;
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Aufgabe 1 (Programmanalyse): (13 + 6 = 19 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen
MehrInstitut 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
MehrProgrammierung WS14/15 Lösung - Präsenzübung C. Aschermann, F. Frohn, J. Hensel, T. Ströder
Prof. aa Dr. J. Giesl C. Aschermann, F. Frohn, J. Hensel, T. Ströder Aufgabe 1 (Programmanalyse): (14 + 6 = 20 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu
MehrTutoraufgabe 1 (Pilze):
Prof. aa Dr. J. Giesl Programmierung WS14/15 C. Aschermann, F. Frohn, J. Hensel, T. Ströder Tutoraufgabe 1 (Pilze): In dieser Aufgabe beschäftigen wir uns mit dem berühmten Gaunerpärchen Bonnie und Clyde.
MehrProgrammierung WS18/19 Lösung - Präsenzübung
Prof. aa Dr. J. Giesl S. Dollase, M. Hark, D. Korzeniewski Aufgabe 1 (Programmanalyse): (9.5 + 4.5 = 14 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu jeweils
MehrVorkurs 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
MehrJava 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.
MehrVorkurs 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
MehrProgrammierung WS12/13 Lösung - Präsenzübung M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Aufgabe 1 (Programmanalyse): (9 + 1 = 10 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
MehrGegeben sind die folgenden Programmausschnitte: I. Programmausschnitt: II. Programmausschnitt: III. Programmausschnitt: IV. Programmausschnitt:
Technische Informatik für Ingenieure WS 00/0 Übungsblatt Nr. 0. Januar 0 Übungsgruppenleiter: Matthias Fischer Mouns Almarrani Rafał Dorociak Michael Feldmann Thomas Gewering Benjamin Koch Dominik Lüke
MehrEinführung in die Programmierung
Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf
MehrPräsenzübung Programmierung WS 2016/2017
Prof. aa Dr. J. Giesl F. Frohn, J. Hensel, D. Korzeniewski Vorname: Präsenzübung Programmierung WS 2016/2017 Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik Lehramt
MehrProgrammierung WS17/18 Lösung - Präsenzübung 09./
Prof. aa Dr. J. Giesl M. Hark, J. Hensel, D. Korzeniewski Aufgabe 1 (Programmanalyse): (11.5 + 4.5 = 16 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu jeweils
MehrAufgabe 1 (Programmanalyse):
Prof. aa C. Bischof, Ph.D. M. Brockschmidt, F. Emmes, M. Lülfesmann, J. Willkomm Aufgabe 1 (Programmanalyse): (18 Punkte) Gegeben sei das folgende Java-Programm. Dieses Programm gibt sechs Zeilen Text
MehrProgrammierpraktikum
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 04 (17.11.2016) Stefan Berktold s.berktold@tum.de PRÄSENZAUFGABEN Heutige Übersicht
MehrÜbung Informatik I - Programmierung - Blatt 2
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp ZAIK Universität zu Köln WS 07/08 1 / 6 Datentypen Arten von Datentypen
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Mehr2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
MehrPräsenzübung Programmierung WS 2017/2018
Prof. aa Dr. J. Giesl M. Hark, J. Hensel, D. Korzeniewski Vorname: Präsenzübung Programmierung WS 2017/2018 Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik Lehramt (Bachelor)
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrKorrektheit und Hoare-Kalkül für Imperative Programme
Korrektheit und Hoare-Kalkül für Imperative Programme Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Partielle und totale Korrektheit kennen lernen Die Regeln des Hoare-Kalkül
MehrEinstieg 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
MehrAbschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
MehrVorname: Nachname: Matrikelnummer: Studiengang (bitte ankreuzen): Informatik Bachelor Informatik Lehramt Mathematik Bachelor Sonstige:
Prof. aa C. Bischof, Ph.D. M. Brockschmidt, F. Emmes, M. Lülfesmann, J. Willkomm Vorname: Nachname: Studiengang (bitte ankreuzen): Informatik Bachelor Informatik Lehramt Mathematik Bachelor Sonstige: Anzahl
MehrInformatik I Übung, Woche 40
Giuseppe Accaputo 1. Oktober, 2015 Plan für heute 1. Nachbesprechung Übung 2 2. Vorbesprechung Übung 3 3. Zusammenfassung der für Übung 3 wichtigen Vorlesungsslides Informatik 1 (D-BAUG) Giuseppe Accaputo
MehrJAVA-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).
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrPK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben
PK-Einstufungstest 34 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 4 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig
MehrEin erstes Java-Programm
Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println
MehrDatentypen und Operatoren
Programmiervorkurs SS 2013 Datentypen und Operatoren Termin 2 Wiederholung: Einfache Datentypen Welche Datentypen kennt Ihr bereits? Einfache Datentypen Zeichen public class MyCharTest { char c1 = 'a';
MehrÜbungen zur Vorlesung Wissenschaftliches Rechnen I
Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =
MehrGedä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
MehrWie entwerfe ich ein Programm?
Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +
MehrSystem.out.println("TEXT");
Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class
MehrPK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Aufgabe 1.1. Alle Aufgaben beziehen sich auf Java.
PK-Einstufungstest 59 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 14 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java
Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
MehrErste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
MehrTutoraufgabe 1 (Verikation mit Arrays):
Prof. aa Dr. M. Müller Programmierung WS15/16 C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung
MehrAusdrücke und primitive Typen
Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 04 14.11.2016 Ausdrücke und primitive Typen Aufgabe 4.1 Java-Quiz Wahr Falsch Der Ausdruck
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrJavaScript. 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
Mehr2 Programmieren in Java I noch ohne Nachbearbeitung
1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe
MehrEinfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein
MehrPK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Alle Aufgaben beziehen sich auf Java.
PK-Einstufungstest 69 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 11 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrProgrammiervorkurs Einführung in Java Tag 1
Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,
MehrInformatik 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Übung Informatik I - Programmierung - Blatt 3
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.
MehrEinstieg 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
MehrEin String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.
Strings Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Beispiel: String zeile = "Cusanus-Gymnasium Wittlich";
MehrFunktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
MehrIntensivü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
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrÜbungsblatt 1. Java Vorkurs (WS 2017)
Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die
MehrInformatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben
Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben Aufgabe 1: Zahlensysteme a) Stellen sie die Zahl Z als allgemeine Formel mittels eines polyadischen Zahlensystems zur Basis B dar. b)
MehrProgrammierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom bis zum 22.5.
Programmierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom 18.5. bis zum 22.5.2009 (KW 21) Organisatorisches Die Webseiten zur Veranstaltung sind unter
MehrWelche 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
MehrJavakurs 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
MehrEinstieg 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,
MehrTag 3 Repetitorium Informatik (Java)
Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung
MehrSchwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme
Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung
MehrAlgorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems
4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um
MehrTest-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO
Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO Dipl.-Ing. Klaus Knopper 21.12.2006 Hinweis: Bitte schreiben Sie auf das Deckblatt und auf jede Seite Ihren Namen und Ihre Matrikelnummer,
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
MehrVorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 4 Besprechung: 19. 23.11.2018 (KW 47) Vorbereitende
Mehr{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel
Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales
Mehr3. Java - Sprachkonstrukte I
Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,
MehrAlgorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems
4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um
MehrAlgorithmen und ihre Programmierung
Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines
MehrJava 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
Mehr1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
MehrEinstieg 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
MehrEinstieg 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
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile
MehrProgrammieren in Java
Einführung in die (imperative) Programmierung 2 Wiederholung: Allgemein Hohe Programmiersprache Compiler Interpreter Maschinensprache Zielsystem 3 Wiederholung: Java Java Compiler Bytecode JRE Just-In-Time
MehrCoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
MehrSprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Sprachkonstrukte Einführung in Java Folie 1 von 20 12. Mai 2011 Ivo Kronenberg Inhalt Kommentare Identifier (Bezeichner) Variablen Numerische Ausdrücke und Typen Kontrollstrukturen Verzweigungen Bedingungen
Mehr5.3 Auswertung von Ausdrücken
5.3 Auswertung von Ausdrücken Funktionen in Java bekommen Parameter/Argumente als Input, und liefern als Output den Wert eines vorbestimmten Typs. Zum Beispiel könnte man eine Funktion i n t min ( i n
MehrAngewandte 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
MehrProgrammiertechnik Übungen zu Klassen & -methoden
Programmiertechnik Übungen zu Klassen & -methoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Übung 1 Ein Verfahren, den größten gemeinsamen Teiler (ggt) zweier Zahlen a und b, a
MehrWiederholungsanweisungen II
Wiederholungsanweisungen II (1.) (a.) Die Fakultät einer positiven ganzen Zahl wird als n!(fakultät) geschrieben und wie folgt definiert: n!=n(n-1)(n-2)* * 4*3*2*1 0!=1 Beispiel: 5!=5*4*3*2*1=120 (a.)
Mehr