Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder"

Transkript

1 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. Impliziert gleiche Syntax auch gleiche Semantik? Geben Sie ein Beispiel. 3. Erläutern Sie folgende Aussage: Ein syntaktisch korrektes Programm ist nicht immer korrekt. 1. Die Syntax einer Programmiersprache bezeichnet die Regeln, welche festlegen, ob eine Zeichenkette ein strukturell korrektes Programm ist, d.h. vom Compiler oder Interpreter der Programmiersprache eingelesen und ausgeführt werden kann. In der Regel wird die Syntax einer Programmiersprache durch eine Grammatik (beispielsweise in EBNF) skizziert. Oftmals beschreibt eine solche Grammatik allerdings eine Obermenge der vom Compiler oder Interpreter akzeptierten Programme, da dieser weitere Kriterien fordert (beispielsweise könnte er nur wohlgetypte Programme akzeptieren). Die Semantik einer Programmiersprache gibt ihren syntaktisch korrekten Programmen eine Bedeutung. Sie legt somit fest, was das Ergebnis und nach außen sichtbare Verhalten einer Ausführung eines Programms ist. 2. Nein. Zwei syntaktisch identische Programme (d.h. die gleiche Zeichenkette) können mit verschiedener Semantik verschieden interpretiert werden. Beispielsweise könnte man festlegen, dass die Division div(x,y) zweier Integer x und y in Sprache A definiert ist als x y und in Sprache B als x y. Somit hat der Ausdruck div(3,2) in Sprache A die Semantik 1 und in Sprache B die Semantik Die Aussage ist richtig. Ein Programm ist korrekt, wenn es genau die Anforderungen erfüllt, für die es entwickelt wurde. Lautet die Anforderung, dass das Programm die ersten eintausend Primzahlen ausgeben soll, so ist ein syntaktisch korrektes Programm welches stattdessen Hello world! ausgibt nicht korrekt. Tutoraufgabe 2 (Formale Sprachen und Grammatiken): Gegeben sei die folgende Sprache: L = {w {a, b Es existiert ein y {a, b mit w = ay oder b (w) = 2 Hierbei bezeichnet b (w) die Anzahl der b-s in dem Wort w. Das heißt, L enthält genau die endlichen Wörter, die mit a beginnen oder genau zwei b-s enthalten. Die folgenden Wörter sind beispielsweise in der Sprache enthalten: bab ababba abba Folgende Wörter sind nicht Bestandteil der Sprache: baa babaab b ε a) Geben Sie eine kontextfreie Grammatik an, welche die Sprache L erzeugt. b) Geben Sie eine Grammatik in EBNF mit nur einer Regel an, die L definiert. Um die Lesbarkeit zu erhöhen, dürfen Sie Anführungszeichen um Terminalsymbole weglassen. c) Geben Sie ein Syntaxdiagramm ohne Nichtterminalsymbole an, das die Sprache L definiert. 1

2 a) Die kontextfreie Grammatik G = (N, T, P, S) mit N = {S, A, B, T = {a, b und P definiert wie folgt: S AbAbA S ab A aa A ε B ab B bb B ε erzeugt genau die Sprache L. Mit dem Nonterminal S wählt man, ob man ein Wort mit zwei b-s erzeugen möchte oder eines, das mit a beginnt. Das Nonterminal A erzeugt beliebig viele a-s. Dadurch bleibt die Anzahl der b-s im Wort konstant. B erzeugt beliebige Wörter aus {a, b, da nach dem Wortanfang a beliebige Folgen von a und b folgen können. Es ist auch möglich, die Lösung leicht abzuwandeln. Die erste Regel, S AbAbA, dient eigentlich zur Konstruktion eines Wortes, das genau zwei b-s enthält. Nutzt man aber das erste A zur Ableitung eines a, ist das Wort wegen der zweiten Bedingung in der Sprache enthalten und könnte genauso mithilfe der zweiten Regel abgeleitet werden. Es ist daher möglich, die erste Regel durch S baba zu ersetzen. b) Die folgende Grammatik in EBNF mit nur einer Regel definiert genau L. S = ({ab{ab{a a{(a b) ) {{{{ 1 2 Diese Konstruktion ist ähnlich zu der Grammatik aus Teilaufgabe a). In der ersten Hälfte wird ein Wort mit genau zwei b-s erzeugt. Im zweiten Teil wird ein Wort erzeugt, das mit a beginnt und mit einem beliebigen Wort aus {a, b endet. Analog zur alternativen Lösung in Teilaufgabe a) kann hier eine Vereinfachung vorgenommen werden: S = (b{ab{a a{(a b) ) {{{{ 1 2 c) Das folgende Syntaxdiagramm definiert die Sprache L: a b a b a a a b Auch hier gibt es wie in Teilaufgaben a) und b) eine etwas weniger komplexe 2

3 b a b a a a b Aufgabe 3 (Formale Sprachen und Grammatiken): Gegeben sei die folgende Sprache: ( = 9 Punkte) L = {w {a, b Es existiert ein y {a, b mit w = yb oder a (w) % 2 = 1 Hierbei bezeichnet a (w) die Anzahl der a-s in dem Wort w. Das heißt, L enthält genau die endlichen Wörter, die mit b enden oder ungerade viele a-s enthalten. Die folgenden Wörter sind beispielsweise in der Sprache enthalten: bab aaaab abbbbaa aaa Folgende Wörter sind nicht Bestandteil der Sprache: babababa abba ɛ a) Geben Sie eine kontextfreie Grammatik an, welche die Sprache L erzeugt. b) Geben Sie eine Grammatik in EBNF mit nur einer Regel an, die L definiert. Um die Lesbarkeit zu erhöhen, dürfen Sie Anführungszeichen um Terminalsymbole weglassen. c) Geben Sie ein Syntaxdiagramm ohne Nichtterminalsymbole an, das die Sprache L definiert. a) Die kontextfreie Grammatik G = (N, T, P, S) mit N = {S, A, B, T = {a, b und P definiert wie folgt: S Cb S Aa A BaBaA A B B bb B ε C ac C bc C ε erzeugt genau die Sprache L. Mit dem Nonterminal S wählt man, ob man ein Wort mit b am Ende, oder ein Wort mit einem a am Ende aber einer geraden Anzahl von a-s davor, erzeugen möchte. Das Nonterminal A erzeugt ein Wort mit beliebig viele b-s, aber einer geraden Anzahl von a-s. B erzeugt Wörter mit beliebig vielen b-s. 3

4 b) Die folgende Grammatik in EBNF mit nur einer Regel definiert genau L. S = ({(a b)b {{ba{ba{ba) {{{{ 1 2 Diese Konstruktion ist analog zu der Grammatik aus Teilaufgabe a). In Teil (1) wird ein Wort erzeugt, das mit b endet. In Teil (2) wird ein Wort erzeugt, das ungerade viele a-s enthält und mit einem a endet. c) Das folgende Syntaxdiagramm definiert die Sprache L: a b b b a b a b a Tutoraufgabe 4 (Zweierkomplement): a) Erklären Sie im Detail, wie die beiden Ausgaben des folgenden Programms berechnet werden. public class Test { public static void main ( String [] args ) { int zahl = ; System. out. println ( zahl + 1); System. out. println ( zahl - 1); Hinweis: 2 31 = b) Welche Zahlen repräsentieren die folgenden Bitfolgen im 5-Bit Zweierkomplement? c) Sei x eine ganze Zahl. Wie unterscheidet sich die Zweierkomplement-Darstellung von x und x? a) Im Folgenden werden Binärzahlen mit einem Z markiert, wenn die Zahl im Zweierkomplement verstanden werden muss. Die Zahl 1111Z ist also als 1 zu verstehen, während 1111 für die Zahl 15 steht. Der Datentyp int benutzt 32 Bit. Die Darstellung der Zahl im Zweierkomplement ist Z (31 Nullen) Das Ergebnis der Addition zahl + 1 berechnet sich wie folgt: 4

5 Z Z Z Auch hier gibt die führende 1 an, dass die dargestellte Zahl negativ ist. Den Dezimalwert der dargestellten Zahl erhält man durch Invertieren und Addieren von was für steht. Mit der Vorzeicheninformation von oben ergibt sich Berechnet man zahl - 1, berechnet sich das Ergebnis durch die Addition mit -1. Die Zahl -1 ist im Zweierkomplement dargestellt durch Z Die Addition (-1) ergibt demzufolge Z Z Z Das Ergebnis ist also nicht negativ (angedeutet durch die führende 0) und entspricht der Dezimalzahl Dieses Ergebnis wird auch durch das Java-Programm ausgegeben. b) Bitfolge 5-Bit Zweierkomplement c) Ausgehend von der Zweierkomplement-Darstellung von x erreicht man durch die folgenden beiden Schritte die Zweierkomplement-Darstellung von x. a) vertausche alle 0 und 1en b) addiere 1 Mit diesen beiden Schritten ist es auch die Rückrichtung ( x zu x) möglich. In der folgenden Tabelle finden Sie alle Binärzahlen mit drei Ziffern. Man erkennt, dass das genannte Verfahren funktioniert

6 Aufgabe 5 (Zweierkomplement): a) Welche Zahlen repräsentieren die folgenden Bitfolgen im 10-Bit Zweierkomplement? (2,5 + 3,5 = 6 Punkte) b) Die zwei folgenden Java-Ausdrücke werten jeweils zu true aus, obwohl dies auf den ersten Blick nicht offensichtlich erscheint. Geben Sie dafür jeweils eine kurze informelle Begründung. 1) > 0 2) ( ) < 0 a) Bitfolge 10-Bit Zweierkomplement b) 1) Die Berechnung von hat als Ergebnis Bei der weiteren Berechnung , also der Addition zweier negativer Zahlen, werden intern die Zweierkomplement-Darstellungen mittels normaler Binärzahl-Rechnung addiert. Hierbei ist das Ergebnis zu groß, um mit 32 Stellen dargestellt zu werden (ein Überlauf passiert). Das zusätzliche Bit wird ignoriert und das restliche Ergebnis wird als Zahl im Zweierkomplement interpretiert. Bei dieser konkreten Berechnung ergibt sich eine Binärzahl, bei der das vorderste Bit eine 0 ist, weshalb das Ergebnis der Berechnung eine positive Zahl ist. 2) Der Wert in der Klammer ist , also Bei der Berechnung von ( ) wird der entsprechende Bitvektor zunächst invertiert (was ergibt), und dann noch 1 auf diesen Bitvektor addiert (was den Bitvektor ergibt). Der entstandene Bitvektor ist genau derselbe, von dem wir ursprünglich ausgegangen sind und insbesondere negativ. Tutoraufgabe 6 (Typkonversion): Bestimmen Sie, falls möglich, den Typ und das Ergebnis der folgenden Java-Ausdrücke. Dabei seien die Variablen x, y und z wie folgt deklariert: int x = 1; int y = 2; int 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 6

7 int x = 1; int y = 2; int z = 3; a) false && true Der Ausdruck liefert den Wert false vom Typ boolean. b) 10 / 3 Der Ausdruck liefert den int-wert 3. c) 10 / 3. Der Ausdruck liefert den double-wert , da der int-wert 10 für die double-division erst zu double 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, da zuerst die int-addition durchgeführt wird und das Ergebnis +128 anschließend in den byte-datentypen konvertiert wird, wobei dieser den Wert allerdings nicht darstellen kann. Hierbei werden nur die letzten 8 Bit berücksichtigt (alle zusätzlichen Bits werden also abgeschnitten ). f) x + y + z Durch die Auswertung von links nach rechts wird zuerst x + y ausgewertet. Dafür wird das Zeichen x zuerst in die int-zahl 120 konvertiert. Dies ergibt also 120+2=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 Gesamtaudruck 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. 7

8 Aufgabe 7 (Typkonversion): (8 0,5 = 4 Punkte) Bestimmen Sie, falls möglich, den Typ und das Ergebnis der folgenden Java-Ausdrücke. Dabei seien die Variablen x, y und z wie folgt deklariert: int x = 1; int y = 2; int z = 3; Begründen Sie Ihre Antwort. a) "x" - y b) y < z false c) 9 / 3f d) x + "y" + z e) 9d / 3f f) y!= y? x : z / x g) h) (byte) 256 * int x = 1; int y = 2; int z = 3; a) "x" - y Der Ausdruck liefert einen Fehler, da der Operator - nicht auf Strings arbeitet und ein String auch nicht implizit zu int konvertiert werden kann. b) y < z false Der Ausdruck liefert true vom Typ boolean, da der Vergleich zu true auswertet und damit der logische Oder-Ausdruck ebenfalls. c) 9 / 3f Der Ausdruck liefert 3.0 vom Typ float, da der Divident 3 erst in einen float-wert konvertiert wird und anschließend eine float-division durchgeführt wird. d) x + "y" + z Da von links nach rechts ausgewertet wird, ist das erste + als String-Konkatenation zu verstehen. Hierfür wird der int-wert von x in den String "1" konvertiert, als Zwischenergebnis ergibt sich also "1y". Anschließend wird auch der int-wert von z in einen String konvertiert und schließlich konkateniert, was dann den String "1y3" ergibt. e) 9d / 3f Der Ausdruck liefert 3.0 vom Typ double, da der Divisor 3f erst in einen double-wert konvertiert wird und anschließend eine double-division durchgeführt wird. f) y!= y? x : z / x Der Ausdruck liefert 3 vom Typ int, da der Vergleich zu false und die Ganzzahldivision zu 3 auswertet. g) Der Ausdruck liefert einen Fehler, da die Zahl nicht als int dargestellt werden kann. h) (byte) 256 * Der Ausdruck liefert 0 vom Typ int. Der Cast von 256 auf byte ergibt den Wert 0, denn die letzten 8 Bits von 256 sind alle 0. Anschließend wird dieses Zwischenergebnis wieder zu einem int konvertiert (mit dem Wert 0) und die Multiplikation mit dem int ergibt schließlich 0. 8

9 Tutoraufgabe 8 (Einfache Programmierung): Schreiben Sie ein einfaches Java-Programm, welches den Benutzer auffordert, eine positive Zahl ganze Zahl (d. h. größer als 0) einzugeben. Danach soll das Programm eine durch die Return-Taste beendete Zahl einlesen. Diese Eingabeaufforderung mit anschließendem Einlesen soll solange wiederholt werden, bis der Benutzer eine positive Zahl eingibt. Anschließend soll der Benutzer aufgefordert werden, ein Wort einzugeben. Dieses soll ebenfalls durch die Return-Taste beendet werden. Das Wort soll eingelesen und schließlich so oft hintereinander in einer Zeile ausgeben werden, wie durch die eingegebene positive Zahl festgelegt. public class Multiecho { public static void main ( String [] args ) { int zahl = 0; while ( zahl < 1) { System. out. println (" Bitte geben Sie eine positive Zahl ein :"); zahl = Integer. parseint ( System. console (). readline ()); System. out. println (" Bitte geben Sie ein Wort ein :"); String wort = System. console (). readline (); int i = 0; while (i < zahl ) { System. out. print ( wort ); i ++; Aufgabe 9 (Einfache Programmierung): (6 Punkte) Schreiben Sie ein einfaches Java-Programm, welches ein Spiel für zwei Spieler realisiert. Zunächst soll Spieler 1 um die Eingabe einer Zahl zwischen 0 und 100 gebeten und diese verdeckt eingelesen werden (die Eingabe soll durch die Return-Taste beendet werden). Diese Eingabeaufforderung mit anschließendem Einlesen soll so lange wiederholt werden, bis die eingegebene Zahl zwischen 0 und 100 (jeweils einschließlich) liegt. Danach soll Spieler 2 aufgefordert werden, die von Spieler 1 eingegebene Zahl zu erraten. Spieler 2 soll also so lange zur (nicht-verdeckten) Eingabe von Zahlen aufgefordert und seine Eingaben eingelesen werden, bis die von Spieler 2 eingegebene Zahl mit der ursprünglich von Spieler 1 eingegebenen Zahl übereinstimmt. Stimmt die von Spieler 2 eingegebene Zahl nicht mit der gesuchten Zahl überein, so soll das Programm ausgeben, ob die gesuchte Zahl kleiner oder größer als die eingegebene Zahl ist. Sobald die gesuchte Zahl erraten worden ist, soll das Programm die Anzahl an Rateversuchen ausgeben, die Spieler 2 zum Erraten der Zahl benötigt hat. Ein beispielhafter Ablauf des Programms könnte wie folgt aussehen (wobei Spieler 1 die verdeckte Eingabe 73 macht): Spieler 1, geben Sie eine Zahl zwischen 0 und 100 ein : Spieler 2, raten Sie die eingegebene Zahl : 50 Die gesuchte Zahl ist groesser! Spieler 2, raten Sie die eingegebene Zahl : 75 Die gesuchte Zahl ist kleiner! 9

10 Spieler 2, raten Sie die eingegebene Zahl : 73 Spieler 2, Sie haben die gesuchte Zahl in 3 Versuchen erraten. Hinweise: Um in Java eine Zahl verdeckt einlesen zu lassen, kann der Aufruf Integer.parseInt(String.valueOf(System.console().readPassword())) verwendet werden. public class ZahlenRaten { public static void main ( String [] args ) { // vorgegebene Zahl int ziel ; do { System. out. println ( " Spieler 1, geben Sie eine Zahl zwischen 0 und 100 ein :" ); ziel = Integer. parseint ( String. valueof ( System. console (). readpassword ()) ); while ( ziel < 0 ziel > 100); // benoetigte Anzahl an Rateversuchen int anzahl = 0; // geratene Zahl int versuch ; do { System. out. println ( " Spieler 2, raten Sie die eingegebene Zahl :" ); versuch = Integer. parseint ( System. console (). readline ()); if ( versuch > ziel ) { System. out. println (" Die gesuchte Zahl ist kleiner!"); else if ( versuch < ziel ) { System. out. println (" Die gesuchte Zahl ist groesser!"); anzahl ++; while ( versuch!= ziel ); System. out. print (" Spieler 2, Sie haben die gesuchte Zahl "); if ( anzahl == 1) { System. out. print (" sofort "); else { System. out. print ("in " + anzahl + " Versuchen "); System. out. println (" erraten."); 10

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 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

Mehr

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

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

Mehr

Programmierkurs Java

Programmierkurs 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

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

System.out.println("TEXT");

System.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

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

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

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

Einfü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

Mehr

Java I Vorlesung Imperatives Programmieren

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

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l

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

Tag 3 Repetitorium Informatik (Java)

Tag 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

Mehr

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuÿ, Henning Timm Übungsblatt 2

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

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

Mehr

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

Ein erstes Java-Programm

Ein 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

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

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax Einführung in die Programmierung für NF Algorithmen, Datentypen und Syntax Ziele Begriffsbildungen: InformaCk, Algorithmus, Programm, Compiler und andere Einordnung von Java Ein einfaches Java- Programm

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Was sind Operatoren Ein Operator ist eine in die Programmiersprache eingebaute Funktion, die

Mehr

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA 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

Mehr

Javakurs für Anfänger

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

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015 Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable 1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem

Mehr

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Kapitel 3. Grunddatentypen, Ausdrücke und Variable Kapitel 3 Grunddatentypen, Ausdrücke und Variable Grunddatentypen, Ausdrücke und Variable 1 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen

Mehr

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration

Mehr

Einführung in die Informatik. Programming Languages

Einführung in die Informatik. Programming Languages Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

2.5 Primitive Datentypen

2.5 Primitive Datentypen 2.5 Primitive Datentypen Wir unterscheiden 5 primitive Datentypen: ganze Zahlen -2, -1, -0, -1, -2,... reelle Zahlen 0.3, 0.3333..., π, 2.7 10 4 Zeichen a, b, c,... Zeichenreihen "Hello World", "TIFI",

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

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Unser erstes Java Programm Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 39 Hello World!

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

JAVA für Nichtinformatiker - Probeklausur -

JAVA für Nichtinformatiker - Probeklausur - JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils

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

Einstieg in die Informatik mit Java

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

Mehr

Einführung in C. EDV1-04C-Einführung 1

Einführung in C. EDV1-04C-Einführung 1 Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 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)

Mehr

Datentypen und Operatoren

Datentypen 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

Prinzipielle Ausführungsvarianten I

Prinzipielle Ausführungsvarianten I Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Unser erstes Java Programm AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 39 Hello World!

Mehr

Übung 1: Installation + Test von Eclipse. Übung 2: Hello World

Übung 1: Installation + Test von Eclipse. Übung 2: Hello World Übung 1: Installation + Test von Eclipse Es soll die Installation der Entwicklungsumgebung Eclipse durchgeführt werden gemäss Dokument "InstallationTest.Eclipse.15.0.pdf" auf der DVD im Verzeichnis Eclipse.

Mehr

Die einfachsten Anweisungen

Die einfachsten Anweisungen 2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser

Mehr

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Michael Jugovac Dominik Kopczynski Jan Quadflieg Till Schäfer Stephan Windmüller Dortmund, den 30. Oktober 2014 Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Es können 12 (+5

Mehr

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen Einführung in die Programmierung für NF Rückgabewerte, EBNF, Fallunterscheidung, Schleifen FUNKTIONEN UND PROZEDUREN 3 Rückgabewerte, EBNF, Fallunterscheidung, Schleifen 2 Funk@on und Prozedur Methoden

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

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

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

1.) Zahlensysteme (10 Punkte)

1.) Zahlensysteme (10 Punkte) 1.) Zahlensysteme (10 Punkte) (a) Stellen Sie die folgenden zur Basis 8 (oktal) angegebenen Ganzzahlen als vorzeichenbehaftete Binärzahlen in 7 Bit dar. Negative Binärzahlen sollen im Zweierkomplement

Mehr

pue13 January 28, 2017

pue13 January 28, 2017 pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern

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

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Test-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,

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA 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

Mehr

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik

Mehr

Übungen zu Algorithmen

Übungen zu Algorithmen Institut für Informatik Universität Osnabrück, 08.11.2016 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~ainf Lukas Kalbertodt, B.Sc. Testat bis 16.11.2016, 14:00 Uhr Nils Haldenwang, M.Sc. Übungen

Mehr

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

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

Mehr

Informatik I Übung, Woche 41

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

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

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

Informatik I Übung, Woche 41

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

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

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung

Mehr

Prof. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002

Prof. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002 Prof. H. Herbstreith 30.01.2002 Fachbereich Informatik Leistungsnachweis Informatik 1 WS 2001/2002 Bearbeitungszeit 120 Minuten. Keine Hilfsmittel erlaubt. Aufgabe 1: 20 Punkte Vervollständigen Sie folgende

Mehr

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe Ludwig-Maximilians-Universität München München, 04.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

CoMa 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. 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)

Mehr

Informatik I - Einstiegskurs

Informatik I - Einstiegskurs Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13

Mehr

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?) 5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im

Mehr

Wie entwerfe ich ein Programm?

Wie 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 +

Mehr

Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1

Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1 Kapitel 2: Python: Ausdrücke und Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2016/2017 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen u.ä. 2

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

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

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Kapitel 5: Syntaxdiagramme und Grammatikregeln 5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische

Mehr

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis Allgemeine Einführung Aufbau formaler Sprachen Notationsformen formaler Sprachen Backus-Naur-Formen Erkennen formaler Sprachen Implementierung

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 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

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Programmierpraktikum

Programmierpraktikum 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

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

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

Mehr

7. Syntax: Grammatiken, EBNF

7. Syntax: Grammatiken, EBNF 7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik

Mehr

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt? 1.8 Kontrollstrukturen 75 1.8.5 Wiederholungen Häufig muss die gleiche Teilaufgabe oft wiederholt werden. Denken Sie nur an die Summation von Tabellenspalten in der Buchführung oder an das Suchen einer

Mehr

Wo sind wir? Übersicht lexikale Struktur von Java

Wo sind wir? Übersicht lexikale Struktur von Java Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.

Ein 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";

Mehr

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Programmieren in Java

Programmieren 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

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen

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. Java - Sprachkonstrukte I

3. 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,

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

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.

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 - ! 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

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

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

Mehr

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002 1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben

Mehr