Ausdrücke und primitive Typen

Ähnliche Dokumente
Programmierpraktikum

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

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

Datentypen & Zeichenketten

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Tag 4 Repetitorium Informatik (Java)

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

Primitive Datentypen

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

Institut für Informatik

3. Java - Sprachkonstrukte I

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Projekt 3 Variablen und Operatoren

Software Entwicklung & Programmierung - 0. Übungsblatt

Ein erstes Java-Programm

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

2 Eine einfache Programmiersprache

Institut für Informatik

Übungsblatt 3: Algorithmen in Java & Grammatiken

Methoden und Wrapperklassen

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Welche Informatik-Kenntnisse bringen Sie mit?

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Der Datentyp String. Stringvariable und -vergleiche

Tag 4 Repetitorium Informatik (Java)

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

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

Programmierkurs Java

Java Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9

Übung Praktische Informatik I

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Probeklausur Informatik 2 Sommersemester 2013

Einführung in die Informatik. Processing Numbers. Motivation. Primitive Datentypen. Operatoren versus Methoden

Einführung in die Informatik. Processing Numbers

Einstieg in die Informatik mit Java

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

Variablen und Datentypen

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

Software Entwicklung 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Intensivübung zu Algorithmen und Datenstrukturen

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Zentralübung Grundlagen der Programmierung

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Ausgabe:

Einführung in die Programmiersprache C

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

System.out.println("TEXT");

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Objektorientierte Programmierung

2.5 Primitive Datentypen

Einstieg in die Informatik mit Java

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

pue13 January 28, 2017

Übung Informatik I - Programmierung - Blatt 3

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Informatik I Processing Numbers. Cyrill Stachniss Wolfram Burgard

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

Computeranwendung und Programmierung (CuP)

Java - Programmierung - Prozedurale Programmierung 1

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

Kapitel 3: Variablen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Java Einführung Klassendefinitionen

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

L6. Operatoren und Ausdrücke

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

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

Klausur Fachprüfung Wirtschaftsinformatik. Name:

Algorithmen und Programmierung II

Java Datentypen und Variablen

12 Abstrakte Klassen, finale Klassen und Interfaces

Programmieren in C / C++ Grundlagen C 2

Einstieg in die Informatik mit Java

Die einfachsten Anweisungen

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

Java I Vorlesung Imperatives Programmieren

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Einführung in die Programmierung 1

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

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

Java für Anfänger Teil 3: Integer-Typen. Programmierkurs Manfred Jackel

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einführung in die Programmierung

Zeichenketten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java. 16.

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

Zeichen. Datentyp char. char ch = 'x'; Page 1. Zeichen braucht man zur Verarbeitung von Texten, Namen, Bezeichnungen. Zeichencodes

Übungen zu Algorithmen

Wie entwerfe ich ein Programm?

Einführung in die Informatik Iterations

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

Transkript:

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 0.3 == 0.1 + 0.1 + 0.1 evaluiert zu true Mit dem 32-bit Datentyp float lassen sich größere Zahlen darstellen als mit dem 64-bit Datentyp long Jeder 32-bit Integer kann in einem 32-bit Float dargestellt werden. Der Ausdruck (x + y) - y == x evaluiert immer zu true unter der Annahme, dass x und y vom selben Zahlentyp sind. Angenommen x und y sind vom Typen int, dann sind folgende Ausdrücke semantisch äquivalent x + 10 > y + 10 und x>y Der Ausdruck 2 + 5 + ">=" + 1 + 1 evaluiert zu "7>=11" Gegeben ist folgender Ausdruck 3*5+7. Ist der Syntaxbaum/Ableitungsbaum, der mithilfe der MiniJavaGrammatik erzeugt werden kann, eindeutig? Folgende Programmstücke sind semantisch äquivalent int x = read(); int y = x/x; und int x = read(); int y = 1;

Aufgabe 4.2 Vokalersetzung Schreiben Sie ein Programm Vokalersetzung, das im unten gegebenen Text alle Vokale durch einen vom Benutzer eingegebenen Vokal ersetzt. Achten Sie darauf, dass die Groß- und Kleinschreibung nach der Ersetzung mit der vor der Ersetzung übereinstimmt. Um- laute (Ä/ä, Ö/ö, usw.) sollen dabei nicht als Vokale betrachtet werden. Beispiel: Das Wort "Exenmeister" wird bei Eingabe von O oder o zu "Oxonmoostor". Verwenden Sie keine Bibliotheksfunktionen der Klasse String außer char charat(int i) und int length(). int length() Um die Länge eines Strings zu bestimmen rufen Sie die Methode length() auf. Beispiel: String s = "Hello Students"; s.length(); speichertdenwert 14 in der int l Variable = l. char charat(int index) Um auf ein Zeichen innerhalb eines Strings zuzugreifen, können sie die Methode charat(i) verwenden, welche ein Character an der Position i zurück liefert. Beispiel: String s = "Hello Students"; char c = s.charat(7); speichert den Character 't' in der Variable c. Achtung: Java indiziert ab der Stelle 0 und nicht erst ab 1. Hinweis: Eine Integer-Expression e können Sie wie folgt in einen Character umwandeln: (char) e. Zum Beispiel int i = 64; char c = (char) i; speichert in der Character-Variable c das Zeichen 'A'. Machen Sie sich mit der ASCII-Tabelle vertraut. Verwenden Sie das folgende Codegerüst: public class Vokalersetzung extends MiniJava { public static void main(string[] args) { String text = "Hat der alte Hexenmeister\n" + "sich doch einmal wegbegeben!\n" + "Und nun sollen seine Geister\n" + "auch nach meinem Willen leben.\n" + "Seine Wort und Werke\n" + "merkt ich und den Brauch,\n" + "und mit Geistesstärke\n" + "tu ich Wunder auch.\n" + "Walle! walle\n" + "Manche Strecke,\n" +

} } "daß, zum Zwecke,\n" + "Wasser fließe\n" + "und mit reichem, vollem Schwalle\n"+ "zu dem Bade sich ergieße."; Aufgabe 4.3 Rechtschreibschwäche Schreiben Sie ein MiniJava-Programm, dass einen String einliest und jeden Kleinbuch- staben durch den jeweiligen Grossbuchstaben und umgekehrt ersetzt. Alle anderen Zeichen sollen nicht ersetzt werden. Geben Sie den konvertierten String via der Methode write(string s) aus. Beispiel: "Hello Students!" wird umgewandelt in "hello students!". Folgende Methoden können Sie zusätzlich verwenden: int length() und char charat(int index), siehe Aufgabe 4.2 Aufgabe 4.4 Funktionsaufrufe Gegeben sind die folgenden Funktionssignaturen: double max(double a, int b) double max(int a, double b) double max(double a, float b) Vergleichen Sie alle Funktionen miteinander. Welche ist spezifischer als die andere? Welche sind unvergleichbar? Betrachten Sie folgenden Funktionsaufruf max(3, x). Welche primitiven numeri- schen Typen kann die Variable x haben, so dass der Aufruf mit den oben gegebenen Funktionen nicht ungültig ist? Welche der folgenden Funktionsaufrufe sind gültig? Welche der Funktionen wird bei einem gültigen Aufruf verwendet? max(3.0, 5.0); max(3f, 3); max(3f, 3.0); max(3.0, 4f); max(5.0, 2);

Aufgabe 4.5 Seiteneffekte (H) Geben Sie für jeden Ausdruck eine Folge von Ausdrücken an, so dass die Variablen im Ausdruck nach der Auswertung den gleichen Wert haben wie nach der Auswertung, der von Ihnen angegeben Ausdrücke. In den Ausdrücken dürfen Sie nur Wertzuweisungen, Addition und Subtraktion (keine Inkrement-/Dekrementoperatoren) verwenden. Sie dürfen keine zusätzlichen Variablen verwenden. Bei allen Variablen handelt es sich um Integer. 1) c=b+++++b---b; 2) a=d+1---d; 3) e=f+++f+++f++; 4.6 Cäsar der Kryptische Schreiben Sie ein Programm, dass einen String einliest und diesen mittels der Cäsar-Chiffre verschlüsselt. Machen Sie sich mit der Cäsar-Verschlüsselung vertraut. Dazu ist die Wikipedia Ihr Freund und Helfer: https://de.wikipedia.org/wiki/caesar-verschl%c3%bcsselung Der Einfachheit halber werden wir nur Buchstaben a bis z und A bis Z verschlüsseln. D.h. alle anderen Zeichen sollen nicht verschlüsselt werden und tauchen somit als Klartext im Geheimtext auf. Beispiel: Der Geheimtext zum Klartext "Hello Students!.aAbBcC? >wwxxyyzz<" lautet "Khoor Vwxghqwv!.dDeEfF? >zzaabbcc<" wenn der zyklische Shift 3 beträgt. Gehen Sie wie folgt vor: a) Lesen Sie einen String mittels der MiniJava-Methode readstring() ein, der später ver/entschlüsselt werden soll. b) Lesen Sie einen Integer mittels der MiniJava-Methode read() ein,der als zyklischer Shift verwendet werden soll. c) Implementieren Sie nun den Algorithmus und ver/entschlüsseln den String aus (a) anhand des Schlüssels aus (b). d) Beachten sie Groß- und Kleinschreibung im Klartext als auch Geheimtext. e) Geben Sie den verschlüsselten String mittels der MiniJava-Methode write(string s) aus. Folgende Methoden können Sie zusätzlich verwenden: int length() und char charat(int index), siehe Aufgabe 4.2

Hinweis: Sie können Ihre Implementierung selber testen, indem Sie den Geheimtext mit dem Schlüssel -n nochmals verschlüsseln, sofern der Geheimtext vorher mit dem Schlüssel n verschlüsselt wurde. Die Ausgabe sollte der initiale Klartext sein. Erinnert Sie das an inverse Funktionen von bijektiven Funktionen à la x = f 1(f(x))? Verwenden Sie nur die Methoden aus dem Angabentext oder welche MiniJava bereit stellt.