Übungen zu Algorithmen
|
|
- Monika Fürst
- vor 7 Jahren
- Abrufe
Transkript
1 Institut für Informatik Universität Osnabrück, Prof. Dr. Oliver Vornberger Lukas Kalbertodt, B.Sc. Testat bis , 14:00 Uhr Nils Haldenwang, M.Sc. Übungen zu Algorithmen Wintersemester 2016/2017 Blatt 5: Rekursion und Sichtbarkeit Aufgabe 5.1: JavaDoc (0 Punkte) Benutzen Sie fortan in jedem Programm immer Javadoc-Kommentare. Ein Javadoc-Kommentar sieht folgendermaßen aus: Berechnet die Anzahl der Iterationen des Collatz - Algorithmus fuer die Zahl zahl natuerliche Zahl, an der der Algorithmus ausgefuehrt werden Anzahl der RuntimeExceptionen wenn <tt>zahl</tt> negativ ist public static int collatz(int zahl){... Sie haben bisher nur Javadoc-Kommentare benutzt, um die jeweilige Klasse zu beschreiben. Nutzen Sie diese jetzt zusätzlich, um jede Methode wie im Beispiel oben zu dokumentieren. Soweit vorhanden, dokumentieren Sie Übergabeparameter, Rückgabeparameter und mögliche RuntimeExceptions mit analog zum Beispiel. Wenn die Kommentierung im Quellcode abgeschlossen ist, können Sie mit dem Kommando javadoc -author -version -d doku.java automatisch alle Javadoc-Seiten zu allen.java-dateien im aktuellen Ordner erzeugen und im Ordner doku ablegen. Erzeugen Sie ab sofort für jede Programmieraufgabe die entsprechende Dokumentation. Aufgabe 5.2: Fragen (30 Punkte) Beantworten Sie Ihrer Tutorin beziehungsweise Ihrem Tutor Fragen zu den Inhalten der Veranstaltung. Aufgabe 5.3: Rekursive Berechnungen (20 Punkte) Implementieren Sie in einer Klasse folgende, rekursive Methoden: a) public static int ackermann(int n, int m) Berechnet rekursiv die Ackermann Funktion. Diese mathematische Funktion mit zwei natürlichen Zahlen als Parametern ist eine extrem schnell wachsende Funktion, die in der theoretischen
2 Informatik und Mathematik von Bedeutung ist. Sie ist definiert wie folgt: a(0,m) = m + 1 a(n,0) = a(n 1,1) a(n,m) = a(n 1,a(n,m 1)) Testen Sie Ihre Funktion zuerst mit sehr kleinen Werten! b) public static boolean istpalindrom(char[] wort) Berechnet rekursiv, ob wort ein Palindrom ist, also ob das Wort rückwärts gelesen dem originalen Wort entspricht (wie anna oder lagerregal). In Ihrer Implementation sollen sie Groß- und Kleinbuchstaben als unterschiedlich ansehen Anna wäre also kein Palindrom. c) public static double potenz(double basis, int exponent) Berechnet rekursiv basis exponent. Schreiben Sie in der main-methode ein Programm, das dem Benutzer ermöglicht, alle implementierten Methoden zu testen. Dazu soll zunächst eingelesen werden, welche Methode benutzt werden soll. Dann sollen die dazu nötigen Parameter eingelesen und der Rückgabewert der Methode ausgegeben werden. Achten Sie auf geeignete Fehlerbehandlung und eine sinnvolle Benutzerführung. Wenn eine Methode mit ungeeigneten Werten aufgerufen wird, soll eine RuntimeException geworfen werden. Zusätzlich sollen die Parameter sicher eingelesen werden, sodass der Benutzer nie direkt Exceptions sieht. Musterlösung: AlgoMath.java import AlgoTools.IO; Implementation verschiedener Hilfs-Methoden. Die Methoden koennen von aussen angesprochen werden, oder mit diesem Programm getestet werden. public class AlgoMath { Berechnet die Ackermann n Erster Parameter in der Definition von m Zweiter Parameter in der Definition von Ergebnis der Funktion public static int ackermann(int n, int m) { if(n < 0 m < 0) { throw new RuntimeException("Die Parameter der Ackermann Funktion " 2
3 + "müssen positiv sein!"); return ackerrek(n, #ackermann(int, int) public static int ackerrek(int n, int m) { if(n == 0) { return m + 1; if(m == 0) { return ackerrek(n - 1, 1); return ackerrek(n - 1, ackerrek(n, m - 1)); Berechnet, ob eine Zeichenkette ein Palindrom wort die zu prüfende <tt>true</tt>, wenn <tt>wort</tt> ein Palindrom ist public static boolean istpalindrom(char[] wort) { if(wort.length <= 1) { return true; char[] mitte = new char[wort.length - 2]; for(int i = 0; i < mitte.length; ++i) { mitte[i] = wort[i + 1]; return wort[0] == wort[wort.length - 1] && istpalindrom(mitte); Berechnet die Potenz einer basis natuerliche Zahl als exponent natuerliche Zahl als <tt>basis</tt> hoch <tt>exponent</tt> 3
4 @throws RuntimeException basis=exponent=0 public static double potenz(double basis, int exponent) { if(basis == 0) { if(exponent <= 0) { throw new RuntimeException("0^" + exponent + " ist nicht definiert"); else { return 0; return (exponent < 0)? (1f / potenzrek(basis, -exponent)) : potenzrek(basis, #potenz(double, int) private static double potenzrek(double basis, int exponent) { if (exponent == 0) { return 1; return potenzrek(basis, exponent - 1) basis; Gibt das Menue fuer die Benutzung aller Methoden auf der Konsole aus. public static void menue() { IO.println(" "); IO.println(" Folgende Optionen stehen zur Wahl "); IO.println(" a - berechnet die Ackermann Funktion "); IO.println(" p - prüft, ob ein Wort ein Palindrom ist "); IO.println(" e - berechnet Potenz mit ganzzahligem Exponenten "); IO.println(" RETURN - beenden "); IO.println(" "); Das Programm, fragt beim Benutzer ab welche Methode gewaehlt werden soll, dann die dazu passenden Parameter und schliesslich wird das Ergebnis der 4
5 Methode ausgegeben. Da keine RuntimeException an den Benutzer gelangen soll, wird auch hier Fehlerbehandlung gemacht. public static void main(string[] args) { IO.println(" Willkommen "); char option; do { menue(); option = IO.readChar("Was moechten sie tun? "); switch (option) { case a : case A : IO.println(">>> Ackermann <<<"); int n, m; do { n = IO.readInt("Bitte ersten Parameter n eingeben: "); m = IO.readInt("Bitte zweiten Parameter m eingeben: "); while(n < 0 m < 0); IO.println("Ackermann(" + n + ", " + m + ") = " + ackermann(n, m)); break; case p : case P : IO.println(">>> Palindrom <<<"); char[] wort = IO.readChars("Bitte einen String eingeben: "); if(istpalindrom(wort)) { IO.println("Das eingegebene Wort ist ein Palindrom! :-)"); else { IO.println("Das eingegebene Wort ist kein Palindrom! : ("); break; case e : case E : IO.println(">>> Potenz <<<"); double basis; int exponent; do { IO.println("Beachte: 0^e ist undefiniert, falls e <= 0!"); basis = IO.readDouble("Bitte eine Zahl als Basis eingeben: "); exponent = IO.readInt("Bitte eine ganze Zahl " + "als Exponent eingeben: "); while(basis == 0 && exponent <= 0); IO.println(basis + "^" + exponent + " = " + potenz(basis,exponent)); 5
6 break; case \n : IO.println("Auf Wiedersehen!"); break; default: IO.println("Falsche Eingabe, bitte nochmal versuchen"); while (option!= \n ); Aufgabe 5.4: Determinante (35 Punkte) Schreiben Sie ein Java-Programm, welches eine ganzzahlige quadratische Matrix in ein zweidimensionales int-array einliest und nach geeigneter Fehlerbehandlung rekursiv die Determinante der Matrix berechnet und auf der Konsole ausgibt. Benutzen Sie folgende Formel für die Berechnung der Determinate einer Matrix A = (a i j ) der Dimension n: Für n = 1 ist det(a) = a 11. Für n > 1 definieren wir det(a) := n j=1 ( 1) j+1 a 1 j det(a 1 j ). Hierbei bezeichnet a i j den Eintrag in der i-ten Zeile und j-ten Spalte. Weiter ist A i j die Matrix, welche aus A entsteht, wenn man die i-te Zeile und j-te Spalte weglässt. Musterlösung: Determinante.java import AlgoTools.IO; Programm berechnet Determinante einer gegebenen Matrix public class Determinante { Bestimmt die Untermatrix nach Streichen von Zeile zeilex und Spalte zeilex die zu streichende spaltex die zu streichende matrix die Ausgangsmatrix 6
7 @return die Untermatrix private static int[][] untermatrix(int zeilex, int spaltex, int[][] matrix) { int[][] unterm = new int[matrix.length - 1][matrix.length - 1]; int zeilenschieber = 0; int spaltenschieber = 0; // neue Matrix füllen, ggf. Zeile/Spalte mit Schieber überspringen for(int zeile = 0; zeile < unterm.length; zeile++) { if(zeile == zeilex) { zeilenschieber = 1; spaltenschieber = 0; for(int spalte = 0; spalte < unterm.length; spalte++) { if(spalte == spaltex) { spaltenschieber = 1; unterm[zeile][spalte] = matrix[zeile + zeilenschieber][spalte + spaltenschieber]; return unterm; Berechnet der Determinante der übergebenen Matrix per Entwicklung nach erster Zeile mit vorangegangener RuntimeException falls Matrix nicht matrix die die Determinante public static int determinante(int[][] matrix) { int dimension = matrix.length; int index = 0; // ist jede Spalte so lang wie die Zeilen? while(index < dimension){ if(matrix[index].length!= dimension) { throw new RuntimeException("Keine quadratische Matrix eingegeben!"); index++; 7
8 return det(matrix); Berechnet der Determinante der übergebenen Matrix per Entwicklung nach erster matrix die die Determinante private static int det(int[][] matrix) { // Rekursionsanker: berechne Determinante von 1x1 Matrix if(matrix.length == 1) { return matrix[0][0]; int determinante = 0; // in erster Zeile jede Spalte durchgehen for(int spalte = 0; spalte < matrix.length; spalte++) { int vorzeichen = (spalte % 2 == 0)? 1 : -1; // rekursiv Unterdeterminante berechnen determinante += vorzeichen matrix[0][spalte] det(untermatrix(0, spalte, matrix)); return determinante; Gibt Matrix auf Konsole matrix die Ausgangsmatrix private static void printm(int[][] matrix) { for(int zeile = 0; zeile < matrix.length; zeile++) { IO.print(" "); for(int spalte = 0; spalte < matrix[zeile].length; spalte++) { IO.print(" "+matrix[zeile][spalte],5); IO.println(" "); 8
9 public static void main(string[] argv) { int[][] matrix; int dimension=0; do { dimension = IO.readInt("Welche Größe soll die Matrix haben? "); while(dimension < 1); matrix = new int[dimension][dimension]; // Matrixeintraege einlesen for(int zeile = 0; zeile < dimension; zeile++) { for(int spalte = 0; spalte < dimension; spalte++) { matrix[zeile][spalte] = IO.readInt( "A["+ (zeile + 1) + "][" + (spalte + 1) + "]=" ); printm(matrix); // Determinante berechnen und ausgeben IO.println("Det = " + determinante(matrix)); Aufgabe 5.5: Sichtbarkeit (15 Punkte) Betrachten Sie die im Anhang befindliche Klasse Sichtbarkeit.java. Geben Sie die aktuellen Werte der Variablen a, b und c an den Stellen 1 bis 15 an. Machen Sie sich und Ihrem Tutor klar, welche Variable wo mit welchem Wert sichtbar ist und warum. Schreiben Sie die Werte und die Begründungen auf! Musterlösung: Stelle a= b= c= ; 12; 2; ; 12; 2; ; 12; 2; ; 10; 2;
10 ; 10; 2; ; 10; 2; ; 10; 2; ; 0; 0; ; 10; 2; ; 0; 0; ; 10; 2; 4 SichtbarkeitLoesung.java import AlgoTools.IO; Hier geht es um die Sichtbarkeit von Variablen public class SichtbarkeitLoesung { static int a; static int i = 1; // Zaehler fuer Ausgabe "Stelle" public static void main(string argv[]) { kopf(); // Ausgabe des Tabellenkopfs int a = 6; int [] c = {38, 12, 2, 6; Stelle 1 write(a, c); // Ausgabe von a,c (b ist undefiniert) initialize(); Stelle 3 write(a, c); // Ausgabe von a,c (b ist undefiniert) for (int b = 0; b < 1; b++) { Stelle 4 write(a, b, c); //Ausgabe von a,b,c a /= 3; c[b+1] -= c[b+2]; Stelle 5 write(a, c); // Ausgabe von a,c (b ist undefiniert) 10
11 int b = method1(a + c[a-2]); Stelle 7 write(a, b, c); // Ausgabe von a, b, c for (a = 3; a < 5; a += 2) { b = 2; c[a] -= c[b]; Stelle 8 write(a, b, c); // Ausgabe von a,b,c Stelle 9 write(a, b, c); // Ausgabe von a,b,c b = 7 + method2(++a, c); Stelle 11 write(a, b, c); // Ausgabe von a,b,c a = method1(method2(method1(a), c)); Stelle 15 write(a, b, c); // Ausgabe von a,b,c static void initialize() { int b = 4; a = 3; Stelle 2 write(a, b); // Ausgabe von a und b static int method1(int b) { Stelle 6, 12 bzw. 14 write(a, b); // Ausgabe von a und b return a; static int method2(int a, int[] c) { a++; c[0] /= 2; c = new int[4]; Stelle 10 bzw. 13 write(a, c); // Ausgabe von a,c (b undefiniert 11
12 return a; static void kopf() { // Ausgabe Tabellenkopf IO.println("Stelle a= b= c="); IO.println(" "); static void write(int a, int[] c) { // Ausgabe von a,c;b undefiniert IO.print(i++, 2); IO.print(". "); IO.print(a, 3); IO.print(" "); for (int j = 0; j < c.length - 1; j++) IO.print(c[j] + "; "); IO.println(c[c.length - 1]); static void write(int a, int b) { // Ausgabe von a,b IO.print(i++, 2); IO.print(". "); IO.print(a, 3); IO.print(" "); IO.print(b, 3); IO.println(" "); static void write(int a, int b, int[] c) { // Ausgabe von a,b,c IO.print(i++, 2); IO.print(". "); IO.print(a, 3); IO.print(" "); IO.print(b, 3); IO.print(" "); for(int j = 0; j < c.length - 1; j++) IO.print(c[j] + "; "); IO.println(c[c.length - 1]); 12
Ü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Übungen zu Algorithmen
Institut für Informatik Universität Osnabrück, 01.11.2016 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~ainf Lukas Kalbertodt, B.Sc. Testat bis 09.11.2016, 14:00 Uhr Nils Haldenwang, M.Sc. Übungen
MehrPraktikum 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 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben
Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Alexander Lochmann, Iman Kamehkhosh, Marcel Preuß, Dominic Siedhoff Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester
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
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrJava - Programmierung - Prozedurale Programmierung 1
Java - Programmierung - Prozedurale Programmierung 1 // elementare Datentypen public class el_dt public static void main(string args []) byte b = 127; short s = 32767; int i = 2147483647; long l = 9223372036854775807L,
MehrEinstieg 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
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
MehrInformatik 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
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
MehrJava Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.
Java Übung Übung 3 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 2. Mai 2006 (UniDUE) 2. Mai 2006 1 / 17 Aufgabe 1 Umwandeln von do while in for Schleife. Listing 1: aufgabe3 1.java 1 public
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/
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2014/2015
Fakultät IV NI & CV Probeklausur Java Einführung in die Informatik Wintersemester 2014/2015 Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen
MehrDelegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein
Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat
MehrName: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie sieht -5 in der 4Bit 2-er Komplementdarstellung aus? 2. Berechnen Sie
MehrWiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
MehrArrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik
Arrays Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arraytypen Speicherdarstellung von Arrays Auswertung
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt
MehrKlausur "C#" WS 2012/2013
PD Dr. J. Reischer 13.02.2013 Klausur "C#" WS 2012/2013 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus!
MehrJavakurs 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
MehrAlgorithmen und Programmierung III
Musterlösung zum 4. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Amortisierte Analyse 10 Punkte Zu erst betrachte ich wie oft die letzte Ziffer
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
MehrJAVA - Methoden
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können
MehrÜbungen zum Bioinformatik-Tutorium. Blatt 3
Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 3 Termin: Dienstag, 6.11.2018, 11 Uhr 1. Hello World
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.
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
MehrPrüfung Softwareentwicklung I (IB)
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 1 B Wintersemester 2017/18 Prüfung Softwareentwicklung I (IB) Datum : 01022018, 14:30 Uhr Bearbeitungszeit
MehrFakultät IV Elektrotechnik/Informatik
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2016/2017
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrEinfü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
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2014/2015. Musterlösung
Fakultät IV NI & CV Probeklausur Java Einführung in die Informatik Wintersemester 2014/2015 Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen
MehrProbeklausur Informatik 2 Sommersemester 2013
Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel
MehrSelbststudium OOP7 & ALG2 Auftrag
Selbststudium OOP7 & ALG2 Auftrag Kapitel 5.6 1. zu bearbeitende Aufgaben: 5.24 bis 5.30 5.24: Return Method Set entryset() V get(object key) Set keyset() V put(k key, V value) void
MehrEinführung in die Programmierung. (K-)II/Wb17
Probeklausur Hochschule Zittau/Görlitz, Prüfer: Prof. Dr. Georg Ringwelski Einführung in die Programmierung (K-)II/Wb17 Matrikelnummer: Punkte: 1 2 3 4 5 6 Gesamt /21 /19 /20 /20 /20 /20 /120 Spielregeln:
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2017/2018
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
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
MehrKlausur "ADP" SS 2013
PD Dr. J. Reischer 24.07.2013 Klausur "ADP" SS 2013 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die
MehrKlausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09
Klausur zur Lehrveranstaltung Technische Informatik für Ingenieure WS 2008/09 23. Februar 2009 Aufgabe 1 2 3 4 5 5 5 Summe mögliche Punkte 10 15 25 20 20 15 15 120 erreichte Punkte Note: Hinweise: Diese
MehrKlausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10
Klausur zur Lehrveranstaltung Technische Informatik für Ingenieure WS 2009/10 22. Februar 2010 Aufgabe 1 2 3 4 5 6 7 Summe mögliche Punkte 15 15 20 15 20 20 15 120 erreichte Punkte Note: Hinweise: Diese
MehrProgrammieren in Java
Programmieren in Java Vorlesung 02: Methoden Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 17 Inhalt Scanner
MehrMusterlösung Stand: 5. Februar 2009
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrInstitut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
MehrProgrammierung für Mathematik (HS13)
software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 11 1 Aufgabe: Codeverständnis 1.1 Aufgabenstellung Notieren Sie, was der folgende Code ausgeben würde, wenn er so in einer
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 10. Blatt Für den und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 10. Blatt Für den 30.6. und 1.7.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrInformatik Praktikum 5
Informatik Praktikum 5 Michael Roth Andreas Behr michael.roth@h-da.de andreas.behr@h-da.de 1 Programmieraufgaben Diese kleinen Aufgaben sollen Ihnen helfen das gelernte noch ein wenig mehr zu vertiefen.
MehrTeil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
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
MehrÜ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.
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration
MehrSelbststudium OOP6 & ALG Programmieren 1 - H1103 Felix Rohrer
Kapitel 5.2 1. zu bearbeitende Aufgabe: 5.1 5.1: done 2. Auf Seite 133 wird in der Methode start()ein while-loop verwendet. Kreieren Sie ein Code-Fragment mit derselben Funktionalität unter Verwendung
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2018 Prof. Dr. Wolfram Burgard Andreas Kuhner Daniel Büscher Übungsblatt 13 Abgabe / Besprechung
Mehrhue12 January 24, 2017
hue12 January 24, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
MehrProgrammierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6.
Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom 31.5. bis zum 4.6.2010 (KW 22) Organisatorisches Diese Woche führen wir Methoden ein und behandeln
MehrInformatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 18/19
Informatik 1 - Translation Studies in Information Technology INF1 TSIT MUSTERLÖSUNG: PFLICHTÜBUNG 1 Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 18/19 Praktikum zur Vorlesung
MehrInformatik Funktionen
Informatik Seite 1 Funktion Mathematik: Zuordnung Argumentwert(e) => Ergebniswerte Beispiel: f(x,y) = 2*x+y Informatik / Programmierung: Zusammenfassung von Anweisungen die von Argumentwerten abhängen
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
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 05: Programmablauf Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Nutzereingaben EVA Prinzip Eingaben über die Konsole Eingaben über GUI
MehrPrüfung Softwareentwicklung I (IB)
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 1 B, IB 1 C Wintersemester 2012/13 Prüfung Softwareentwicklung I (IB) Datum : 25.01.2013, 10:30
MehrInstitut fu r Informatik
Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013/14 Aufgabenblatt 5 2. Dezember
MehrPraktische Informatik I WS 1999/2000
Universität Mannheim Lehrstuhl für Praktische Informatik IV Prof. Dr. W. Effelsberg Christoph Kuhmünch, Gerald Kühne Praktische Informatik I WS 999/2 Übungsblatt 2 Ausgabe: Mi, 26.. Abgabe: Di,.2., 8 Uhr
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
MehrAufgabenblatt: Methoden - rekursiv
Aufgabenblatt: Methoden - rekursiv- Seite 1 Aufgabenblatt: Methoden - rekursiv (1.) Wird noch erstellt! Lösen Sie die folgenden Aufgaben indem Sie: - Basis und Rekursive Bedingung formulieren! - die vorgegebene
MehrKlausur "ADP" WS 2013/2014
PD Dr. J. Reischer 4.2.2014 Klausur "ADP" WS 2013/2014 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrProgrammieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik
Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem
MehrGrundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 139
Aufgabe 139 Aufgabe 139 Aufgabenstellung Stellen Sie den folgenden in Feldbaum-Darstellung beschriebenen Binärbaum a) graphisch (welcher Knoten ist die Wurzel?), b) in halbsequentieller Darstellung, c)
MehrJava für Anfänger Teil 4: Anweisungen. Programmierkurs Manfred Jackel
Java für Anfänger Teil 4: Anweisungen Programmierkurs 11.-15.10.2010 Manfred Jackel Anweisungen Werzuweisung (hatten wir schon) Verzweigung Fallunterscheidung Schleifen Methodenaufruf Wiederholung: Klassendeklaration
MehrJava Übung. Übung Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Werner Gaulke.
Java Übung Übung 5 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 9. Mai 2006 (UniDUE) 9. Mai 2006 1 / 20 Beispiel Anforderungen: Klasse Mensch mit Attributen: Name, Alter, Laune, Geschlecht.
MehrDie for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben
18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (
MehrEinfü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
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrKlausur "ADP" SS 2012
PD Dr. J. Reischer 26.07.2012 Klausur "ADP" SS 2012 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die
MehrName: Seite 1. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 1 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie wird bei der Zusicherungsmethode die Zusicherung genannt, die vor Eintritt
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2017/2018. Musterlösung
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrMethoden und Funktionen
Programmieren mit Java Modul 4 Methoden und Funktionen Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Methoden 3 2.1 Methoden ohne Rückgabewert (Prozeduren)................ 3 2.2 Methoden mit Rückgabewert
MehrProgrammieren I. Dokumentation mit Javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik
Programmieren I Dokumentation mit Javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem
MehrAusnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein Definition 2 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im
Mehr2 Teil 2: Nassi-Schneiderman
2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der
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
MehrEinführung in die Programmierung für NF. Zuweisungen, main- Methode und Kommentare
Einführung in die Programmierung für NF Zuweisungen, main- Methode und Kommentare Wiederholung: Deklara@on lokaler Variablen Eine Deklara'on einer lokalen Variablen (Declara'on) hat die Form Type VarName
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
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
MehrFunktionen und Arrays in C
Funktionen und Arrays in C Lernziele: Vertiefen der Kenntnisse über die Verwendung von Funktionen sowie Arrays in C. Aufgabe 1: Quickies a) Welches Schlüsselwort muss verwendet werden, wenn eine Methode
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken
4 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Blöcke Blöcke erweitern einzelne Anweisungen, etwa bei Kontrollstrukturen später Beispiel: Einzelne Anweisung: anweisung; Erweiterung
MehrThomas Gewering Benjamin Koch Dominik Lüke. (geschachtelte Schleifen)
Technische Informatik für Ingenieure WS 2010/2011 Musterlösung Übungsblatt Nr. 6 2. November 2010 Übungsgruppenleiter: Matthias Fischer Mouns Almarrani Rafał Dorociak Michael Feldmann Thomas Gewering Benjamin
MehrBachelorprüfung: Objektorientierte Softwareentwicklung
Bachelorprüfung: Objektorientierte Softwareentwicklung WS10/11 Erlaubte Hilfsmittel: keine Lösung ist auf den Klausurbögen anzufertigen. (eventuell Rückseiten nehmen) Bitte legen Sie einen Lichtbildausweis
MehrJAVA 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
MehrSelbststudium OOP6 & ALG1 Auftrag
Selbststudium OOP6 & ALG1 Auftrag Kapitel 5.2 1. zu bearbeitende Aufgabe: 5.1 done 2. Auf den Seiten 157/158 wird in der Methode start()ein while-loop verwendet. Kreieren Sie ein Code-Fragment mit derselben
MehrSchöner Programmieren
Schöner Programmieren Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 20.11.07 G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07
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
MehrÜbung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse
Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12
MehrEinfache Sortierverfahren in Java, 2. Version
Einfache Sortierverfahren in Java, 2. Version http://www.r-krell.de Datei IntSortReihe2.java 1 // Verschiedene einfache Sortierverfahren + BucketSort 2 // Der (Zeit-)Aufwand nimmt mit (reihung.length)^2
Mehr