Tutoraufgabe 1 (Fibonacci-Zahlen):
|
|
- Günter Baumhauer
- vor 6 Jahren
- Abrufe
Transkript
1 Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Fibonacci-Zahlen): Die Folge der Fibonacci-Zahlen ist folgendermaßen definiert: F 0 = 0 F 1 = 1 F n = F n 1 + F n 2 für n > 1 Somit ist der Wert der Fibonacci-Zahlen mit den Indizes 0 und 1 genau ihr Index und jede weitere Fibonacci- Zahl entspricht der Summe ihrer beiden Vorgänger. Die direkte Implementierung zur Berechnung der Fibonacci-Zahlen mittels Rekursion ist leider sehr ineffizient, da viele Berechnungen mehrmals ausgeführt statt als Zwischenergebnis wiederverwendet zu werden. Laden Sie von der Homepage die Datei Fibonacci.java herunter und ergänzen Sie darin eine statische Methode fib mit einem int Argument n, welche die Fibonacci-Zahl mit Index n berechnet und als long zurück liefert. Schreiben und verwenden Sie hierfür eine rekursive Hilfsmethode, die vier Argumente bekommt: n (int) gibt den Index der gesuchten Fibonacci-Zahl an aktuell (int) gibt den Index der Fibonacci-Zahl an, die die Summe der beiden nachfolgenden Argumente ist vorher (long) ist die Fibonacci-Zahl mit Index aktuell 1 zweivorher (long) ist die Fibonacci-Zahl mit Index aktuell 2 Die Rückgabe dieser Methode soll die Fibonacci-Zahl mit Index n (als long-wert) sein. Ihr Programm sollte schnell genug sein, um fib(70) = auch auf langsamen Computern in deutlich unter einer Sekunde zu berechnen. Für diese Aufgabe dürfen Sie keine Schleife verwenden. Lösung: public class Fibonacci { public static long fib ( int n) { if (n < 2) { return n; else { return fib (2, n, 0, 1); private static long fib ( int aktuell, int n, long zweivorher, long vorher ) { if ( aktuell == n) { return zweivorher + vorher ; return fib ( aktuell + 1, n, vorher, vorher + zweivorher ); public static void main ( String [] args ) { // Berechne die ersten 71 Fibonacci - Zahlen for ( int i = 0; i <= 70; i ++) { System. out. print (i + ": "); System. out. println ( fib (i )); 1
2 Tutoraufgabe 2 (Datenstrukturen): In dieser Aufgabe geht es um einfach verkettete Listen als Beispiel für eine dynamische Datenstruktur. Wir legen hier besonderen Wert darauf, dass eine einmal erzeugte Liste nicht mehr verändert werden kann. Achten Sie also in der Implementierung darauf, dass die Attribute der einzelnen Listen-Elemente nur im Konstruktor geschrieben bzw. verändert werden. Beachten Sie, dass die hier verwendete Datenstruktur für Listen von der in der Vorlesung vorgestellten abweicht. Für diese Aufgabe benötigen Sie die Klassen List.java und ListExercise.java, welche Sie von unserer Webseite herunter laden können. In der gesamten Aufgabe dürfen Sie keine Schleifen verwenden (die Verwendung von Rekursion ist hingegen erlaubt). a) Vervollständigen Sie die Klasse List, indem Sie darin eine Methode length und eine Methode tostring jeweils ohne Argumente implementieren. Die Methode length soll die Länge der Liste als int zurück liefern. Die Methode tostring soll eine textuelle Repräsentation der Liste als String zurück liefern, wobei die Elemente der Liste durch Kommata separiert hintereinander stehen. Beispielsweise ist die textuelle Repräsentation der Liste mit den Elementen 2, 3 und 1 der String "2, 3, 1". b) Ergänzen Sie diese Klasse darüber hinaus noch um eine Methode getsublist, welche ein Argument vom Typ int erhält und eine unveränderliche Liste zurück liefert, welche die ersten i Elemente der aktuellen Liste enthält, wobei i der übergebene int Wert ist. Sollte die aktuelle Liste nicht genügend Elemente besitzen, wird einfach eine Liste mit allen Elementen der aktuellen Liste zurück gegeben. c) Vervollständigen Sie die Methode merge in der Klasse ListExercise.java. Diese Methode erhält zwei Listen als Eingabe, von denen wir annehmen, dass diese bereits aufsteigend sortiert sind, und soll eine Liste zurück liefern, die alle Elemente der beiden übergebenen Listen in aufsteigender Reihenfolge enthält. Verwenden Sie zwei Zeiger, die jeweils auf das kleinste noch nicht in die Ergebnisliste eingefügte Element in den Argumentlisten zeigen. Vergleichen Sie die beiden Elemente und fügen Sie das kleinere ein, wobei Sie den entsprechenden Zeiger ein Element weiter rücken. Sobald eine der Argumentlisten vollständig eingefügt ist, können die Elemente der anderen Liste ohne weitere Vergleiche hintereinander eingefügt werden. d) Vervollständigen Sie die Methode mergesort in der Klasse ListExercise.java. Diese Methode erhält eine unveränderliche Liste als Eingabe und soll eine Liste mit den gleichen Elementen in aufsteigender Reihenfolge zurückliefern. Falls die übergebene Liste weniger als zwei Elemente enthält, soll sie unverändert zurück geliefert werden. Ansonsten soll die übergebene Liste mit der vorgegebenen Methode divide in zwei kleinere Listen aufgespalten werden, welche dann mit mergesort sortiert und mit merge danach wieder zusammengefügt werden. Sie können die ausführbare main-methode verwenden, um das Verhalten Ihrer Implementierung zu überprüfen. Um beispielsweise die unveränderliche Liste [2,4,3] sortieren zu lassen, rufen Sie die main-methode durch java ListExercise auf. Lösung: public class List { Listing 1: List.java 2
3 private final List next ; private final int value ; public List ( List n, int v) { this. next = n; this. value = v; public List getnext () { return this. next ; public int getvalue () { return this. value ; * Returns a String representation of this list. public String tostring () { if ( this. next == null ) { return String. valueof ( this. value ); return this. value + ", " + this. next. tostring (); * Computes the length of the list. public int length () { if ( this. next == null ) { return 1; return 1 + this. next. length (); * Returns a list containing the first <code >length </ code > elements of the * current list. If this list does not contain enough elements, the whole * list is returned instead. public List getsublist ( int length ) { if ( length == 0) { return null ; else if ( this. next == null ) { return this ; else { List newnext = this. getnext (). getsublist ( length - 1); return new List ( newnext, this. value ); public class ListExercise { Listing 2: ListExercise.java * Sorts the given list. public static List mergesort ( List list ) { if ( list == null list. getnext () == null ) { return list ; else { List [] twolists = divide ( list ); List newlista = mergesort ( twolists [0]); List newlistb = mergesort ( twolists [1]); return merge ( newlista, newlistb ); * Merges two sorted non - empty lists to one sorted list. private static List merge ( List first, List second ) { if ( first == null ) { return second ; else if ( second == null ) { 3
4 return first ; else { if ( first. getvalue () > second. getvalue ()) { return new List ( merge ( first, second. getnext ()), second. getvalue () ); else { return new List ( merge ( first. getnext (), second ), first. getvalue () ); * Divides a list of at least two elements into two lists of the same * length ( up to rounding ). private static List [] divide ( List list ) { List [] res = new List [2]; int length = list. length () / 2; res [0] = list. getsublist ( length ); for ( int i = 0; i < length ; i++) { list = list. getnext (); res [1] = list ; return res ; * Creates a list from the given inputs and outputs the sorted list and * the original list thereafter. public static void main ( String [] args ) { if ( args!= null && args. length > 0) { List list = buildlist (0, args ); System. out. println ( mergesort ( list )); System. out. println ( list ); * Builds a list from the given input array. private static List buildlist ( int i, String [] args ) { if (i < args. length ) { return new List ( buildlist (i + 1, args ), Integer. parseint ( args [i]) ); else { return null ; Aufgabe 3 (Terme): ( = 12 Punkte) Um den Umgang mit rekursiven Datenstrukturen zu üben, verwenden wir in dieser Aufgabe arithmetische Terme. Ein Term ist wie folgt induktiv definiert: jede Zahl ist ein Term jede Variable ist ein Term wenn a und b Terme sind, dann ist auch (a + b) ein Term wenn a und b Terme sind, dann ist auch (a b) ein Term wenn a und b Terme sind, dann ist auch (a b) ein Term wenn a und b Terme sind, dann ist auch (a/b) ein Term 4
5 Beispielsweise ist also ((x + y) (9/y)) ein Term mit Variablen x und y. Auf der Homepage finden Sie den Aufzählungstypen Typ und die Klasse Term. Wir repräsentieren Terme als Objekte der Klasse Term, wobei hierfür die Attribute die folgende Bedeutung haben: typ gibt an, ob der Term ein Literal (eine Zahl), eine Variable oder ein mit einer der vier Rechenoperationen zusammengesetzter Term ist erster ist der erste bzw. linke Teilterm (bei Literalen und Variablen ist dieses Attribut null) zweiter ist der zweite bzw. rechte Teilterm (bei Literalen und Variablen ist dieses Attribut null) wert ist der Wert des Literals (bei anderen Termen ist dieses Attribut null) var ist der Name der Variablen (bei anderen Termen ist dieses Attribut null) Wir repräsentieren also beispielsweise für Term-Objekte a und b den Term a + b durch ein Term-Objekt, bei dem die Attribute wert und var beide null sind, das Attribut typ den Wert ADD hat, das Attribut erster auf a verweist und zweiter auf b. Verwenden Sie in dieser Aufgabe keine Schleifen, sondern ausschließlich Rekursion! Verändern Sie in den Methoden den jeweiligen Eingabe-Term (this) nicht, sondern erzeugen Sie bei Bedarf neue Objekte! Testen Sie Ihre Implementierung mit Hilfe der gegebenen main-methode. Sie dürfen davon ausgehen, dass in den Attributen erster bzw. zweiter niemals null steht (außer wenn der Typ LIT oder VAR ist). Verwenden Sie in Ihrer Implementierung an den passenden Stellen eine switch-anweisung zur Fallunterscheidung anhand des Typs des jeweiligen Terms. Da der Compiler nicht erkennt, dass Sie alle Möglichkeiten durch case-ausdrücke berücksichtigt haben, ist es unter Umständen nötig, eine zusätzliche (unerreichbare) return-anweisung in einem letzten default-fall zu schreiben. In diesen Fällen ist es erlaubt, beliebige Werte (beispielsweise null) zurückzugeben. Ignorieren Sie die folgenden möglichen Probleme und gehen Sie davon aus, dass diese nicht auftreten: Über- und Unterläufe unpräzise double-arithmetik Division durch 0 Implementieren Sie nun in der Klasse Term die folgenden Konstruktoren und Methoden: a) Schreiben Sie drei Konstruktoren. Der erste Konstruktor soll einen double-wert bekommen und die Attribute so setzen, dass das Objekt ein Literal mit diesem Wert repräsentiert. Der zweite Konstruktor soll einen String übergeben bekommen und die Attribute so setzen, dass das Objekt eine Variable mit diesem Namen repräsentiert. Der dritte Konstruktor soll einen Typ sowie zwei Term-Objekte übergeben bekommen. Der Typ soll hierbei in das Attribut typ übernommen werden und die beiden übergebenen Terme sollen (in dieser Reihenfolge) als Teilterme in erster bzw. zweiter gespeichert werden. b) Schreiben Sie die Methode tostring(). Für eine Variable soll nur der Name der Variablen zurückgegeben werden. Bei Literalen soll die String-Darstellung des Wertes zurückgegeben werden (verwenden Sie hierfür die Methode String.valueOf). Bei den verbleibenden vier Term-Typen soll das Ergebnis ein String der Form (a b) sein, wobei a bzw. b die String-Darstellung des ersten bzw. zweiten Teilterms ist und, je nach Typ, entweder +,, oder / ist. c) Schreiben Sie die Methode groesse(), die die Größe des Terms als int-wert zurückgibt. Hierbei haben Variablen und Literale die Größe 1. Die Größe eines aus zwei Teiltermen zusammengesetzten Terms (a b) ist 1 + a + b, wenn x die Größe des Terms x angibt. Der Term ((x + y) (9/y)) hat also die Größe 7. 5
6 d) Schreiben Sie die Methode subst, die als erstes Argument einen String und als zweites Argument einen double-wert übergeben bekommt. Die Methode soll ein Term-Objekt zurückgeben, bei dem jedes Vorkommen von Variablen mit dem Namen aus dem ersten Argument durch Literale mit dem Wert aus dem zweiten Argument ersetzt wurden. Ruft man also term.subst("y", 2) auf, wobei term das Term-Objekt ((x + y) (9/y)) ist, so ist das Ergebnis das Term-Objekt ((x + 2) (9/2)) (und term ist unverändert ((x + y) (9/y))). Hinweis: Vergleichen Sie String-Objekte mit equals statt ==! e) Schreiben Sie die Methode auswerten(), die Terme ohne Variablen auswertet und das berechnete Ergebnis als Double zurückgibt. Wenn der Term eine Variable enthält, gibt die Methode null zurück. Für den Term ((1 + 2) (9/2)) soll die Methode also 13.5 zurückgeben. Hinweis: Beachten Sie den Unterschied zwischen double und Double! f) Schreiben Sie die Methode vereinfache(), die ein vereinfachtes Term-Objekt zurückgibt. Hierbei muss das folgende Kriterium erfüllt sein: Wenn man auf einem Term t beliebig viele beliebige Substitutionen anwendet und den dadurch entstehenden Term anschließend erfolgreich auswertet, so soll sich das gleiche Ergebnis ergeben, wie wenn man auf den vereinfachten Term die gleichen Substitutionen anwendet und anschließend auswertet. Es soll also, wenn ohne Vereinfachung erfolgreich ausgewertet werden kann, t.subst(...).auswerten() == t.vereinfache().subst(...).auswerten() gelten. Beispielsweise kann man ((x + 0) (1 (y y))) zu x vereinfachen, wobei das obige Kriterium gilt. Vereinfachen Sie Terme der Form a + 0, 0 + a, a 0, 0 a, a 1, 1 a, a 0, a a, 0/a, a/1, wobei a für einen beliebigen Term steht. Vereinfachen Sie außerdem Terme der Form a+b durch einfaches Ausrechnen, wenn sowohl a als auch b Literale sind (analog für die anderen drei Rechenoperationen). Verwenden Sie die Methode auswerten und beachten Sie, dass diese auch null zurückgeben kann. Sie dürfen (x 0) zu 0 vereinfachen, obwohl der Term (x 0) mit der Methode auswerten() zu keinem Ergebnis führt. Das genannte Kriterium wird hier nicht verletzt! Tutoraufgabe 4 (Drachenkurve): Ziel dieser Aufgabe ist es, ein Programm zur Visualisierung der Drachenkurve zu schreiben. Die Drachenkurve erhält man, indem man einen Papierstreifen wie folgt faltet: Man falte die beiden Enden des Papierstreifens so aufeinander, dass sich die Länge des Streifens halbiert. Den so verkürzten Streifen faltet man wieder auf dieselbe Art (und wichtig in dieselbe Richtung). Nach ein paar Wiederholungen faltet man den Streifen wieder auseinander und richtet ihn dann so aus, dass jeder Knick genau rechtwinklig verläuft. Hat man den Streifen anfänglich n-mal halbiert, erhält man durch diese Anleitung eine Drachenkurve der n-ten Ordnung. 1 Diese Drachenkurve n-ter Ordnung lässt sich auch durch ihre Folge von Rechts- bzw. Linksknicken beschreiben: 1 Bild lizenziert unter CC BY-SA 3.0, Quelle: 6
7 Ordnung Folge 1 R 2 R R L 3 R R L R R L L 4 R R L R R L L R R R L L R L L Hierbei ergibt sich folgende Konstruktionsvorschrift: Eine Drachenkurve der 1-ten Ordnung hat nur einen Rechtsknick. Um eine Drachenkurve der Ordnung (n + 1) zu erhalten, führt man erst die Folge von Knicken einer Kurve der Ordnung n durch, dann einen Rechtsknick und dann wieder die Knicke einer Folge der Ordnung n, wobei man in deren Mitte anstelle eines Rechtsknicks einen Linksknick macht. Für Ihre Implementierung benötigen Sie die Datei Staffelei.java von der Homepage. Verwenden Sie das Programm Javadoc, um die Schnittstellendokumentation dieser Klasse zu erzeugen. Ergänzen Sie die Datei Drachenkurve.java um zwei statische Methoden kurvel und kurver, die jeweils eine Drachenkurve beliebiger Ordnung mit einem Links- bzw. Rechtsknick in der Mitte darstellen. Diese Methoden bekommen als Argumente jeweils ein Objekt der Klasse Staffelei sowie eine Ordnung als int-wert. Mit Hilfe der Methoden des Staffelei-Objektes kann die Zeichnung gefertigt werden. Verwenden Sie die Methode drawforward der Klasse Staffelei um einen Strich zu malen. Als Länge eignen sich 10 Pixel. Rotationen können Sie mit der Methode rotate der Klasse Staffelei erreichen, die eine Gradzahl als Parameter bekommt. Implementieren Sie die Methoden kurvel und kurver rekursiv. Lösung: public class Drachenkurve { Listing 3: Drachenkurve.java public static void kurver ( Staffelei s, int ordnung ) { if ( ordnung <= 0) { s. drawforward (10); else { kurver ( s, ordnung - 1); s. rotate (90); kurvel ( s, ordnung - 1); public static void kurvel ( Staffelei s, int ordnung ) { if ( ordnung <= 0) { s. drawforward (10); else { kurver ( s, ordnung - 1); s. rotate ( -90); kurvel ( s, ordnung - 1); public static void main ( String [] args ) { Staffelei s = new Staffelei (); s. rotate ( 180); // Rotiert die aktuelle Ausrichtung nach oben kurver (s, 10); 7
8 Aufgabe 5 (Fraktal): (7 Punkte) In dieser Aufgabe geht es darum, eine fraktale Struktur grafisch darzustellen. Die Struktur besteht aus Quadraten, die nach einem bestimmten Vorgehen angeordnet werden. Das Vorgehen läßt sich rekursiv beschreiben: In der ersten Iteration besteht die Struktur aus nur einem Quadrat. Die Struktur der n-ten Iteration entsteht dadurch, dass erst ein Quadrat und danach auf dessen vier Ecken jeweils eine verkleinerte Variante der n 1- ten Iteration der Struktur gemalt wird. Hierbei haben die größten Quadrate der n 1-ten Iteration die halbe Kantenlänge des größten Quadrates der n-ten Iteration. In folgendem Bild sind die ersten 5 Iterationen der fraktalen Struktur dargestellt. Verwenden Sie zur graphischen Darstellung die Klasse Staffelei, welche in der Datei Staffelei.java definiert ist. Die Klasse stellt (unter anderem) die Methoden move und square zur Verfügung, die ein bzw. zwei double-zahlen als Parameter bekommen. Sei s eine Objekt der Klasse Staffelei. Dann bewegt der Aufruf s.move(3, 4) die Position an der als nächstes gezeichnet wird um 3 Einheiten nach rechts und 4 Einheiten nach unten. Ein Aufruf s.square(5) zeichnet ein Quadrat mit einer Seitenlänge von 5 Einheiten, wobei der Mittelpunkt des Quadrats auf der aktuellen Zeichenposition liegt. Implementieren Sie eine statische Methode malefraktal in einer neuen Klasse Quadrate, welche eine int-zahl n, eine Referenz s auf ein Objekt der Klasse Staffelei und eine double-zahl l übergeben bekommt und mit Hilfe der Staffelei s die beschriebene fraktale Struktur der Iteration n malt, wobei die Kantenlänge des größten Quadrats l beträgt. Verwenden Sie hierzu Rekursion. Die folgende Methode eignet sich dazu Ihr, Programm zu testen. public static void main(string[] args) { Staffelei s = new Staffelei(); malefraktal(7, s, 100); Lösung: public class Quadrate { Listing 4: Quadrate.java public static void main ( String [] args ) { Staffelei s = new Staffelei (); malefraktal (7, s, 100); private static void malefraktal ( int iterations, Staffelei s, double length ) { if ( iterations <= 0) { return ; 8
9 s. square ( length ); double lh = length / 2; // move to upper left corner s. move (-lh, -lh ); malefraktal ( iterations - 1, s, lh ); // move to upper right corner s. move ( length, 0); malefraktal ( iterations - 1, s, lh ); // move to lower right corner s. move (0, length ); malefraktal ( iterations - 1, s, lh ); // move to lower left corner s. move (- length, 0); malefraktal ( iterations - 1, s, lh ); // move back to center s. move (lh, -lh ); 9
Tutoraufgabe 1 (Fibonacci-Zahlen):
Prof. aa Dr. J. Giesl Programmierung WS11/12 M. Brockschmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung
MehrTutoraufgabe 1 (Programmanalyse):
Prof. aa Dr. M. Müller Programmierung WS15/16 C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung
MehrTutoraufgabe 1 (Listen):
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
MehrTutoraufgabe 1 (Klassenhierarchie):
Prof. aa Dr. M. Müller Programmierung WS15/16 C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung (Tutorium)
MehrTutoraufgabe 1 (Programmanalyse):
Prof. aa Dr. J. Giesl Programmierung WS14/15 C. Aschermann, F. Frohn, J. Hensel, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrTag 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
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
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
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
MehrTutoraufgabe 1 (Klassenhierarchie):
Prof. aa Dr. J. Giesl Programmierung WS14/15 C. Aschermann, F. Frohn, J. Hensel, T. Ströder Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium)
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
MehrAbgabe: (vor 12 Uhr)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 7 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrAufgabe 1 (Programmanalyse, Punkte)
2 Aufgabe 1 (Programmanalyse, 8 + 6 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Schreiben Sie hierzu jeweils die ausgegebenen Zeichen hinter den Kommentar OUT:. public class
MehrTutoraufgabe 1 (Überladen von Methoden):
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung
Mehrpublic static void replace(stringbuffer b) { for (int i = 0; i < b.length(); i++) { char replacechar; switch( b.charat(i) ) {
Klausur aus Softwareentwicklung 1 Klausur am 3.2.2005 Institut für Pervasive Computing Univ.-Prof. Dr. Alois Ferscha Zuname Vorname Matr. Nr. SKZ HS Sitzplatz Punkte Note 1.Mehrfachverzweigung In einem
MehrKlassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Aufgabenblatt 4 Prof. R. Westermann, A. Lehmann,
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2006/2007 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 3 F. Forster, M.
MehrTutoraufgabe 1 (Seiteneekte):
Prof. aa Dr. J. Giesl Programmierung WS14/15 C. Aschermann, F. Frohn, J. Hensel, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung
MehrAufgabenblatt 5. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:
Aufgabenblatt 5 Kompetenzstufe 1 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 05.01.2018 13:00 Uhr in TUWEL hoch.
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
MehrProgrammierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Mehr1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)
Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende
MehrAufgabenblatt 3. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:
Aufgabenblatt 3 Kompetenzstufe 1 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 24.11.2017 13:00 Uhr in TUWEL hoch.
MehrInstitut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 5. Dezember 2016 Programmieren I 5. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
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
MehrSoftware Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge
Mehr// Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String
// Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String tostring() { String result = "["+info; for(list t=next;
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
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
MehrEinführung in das Programmieren Probeklausur Lösungen
Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht
Mehrpue13 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
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrEinstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden
MehrTutoraufgabe 1 (Pilze):
Prof. aa Dr. J. Giesl Programmierung WS14/15 C. Aschermann, F. Frohn, J. Hensel, T. Ströder Tutoraufgabe 1 (Pilze): In dieser Aufgabe beschäftigen wir uns mit dem berühmten Gaunerpärchen Bonnie und Clyde.
Mehr2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)
2. Methoden n Generelles zum Aufruf von Methoden n Parameterübergabemechanismen (call by value, call by reference) n Speicherorganisation bei Methodenaufruf und Parameterübergabe (Laufzeitkeller) n vararg
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
MehrProgrammiermethodik 1. Klausur
Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrKlausur "ADP" SS 2015
PD Dr. J. Reischer 20.7.2015 Klausur "ADP" SS 2015 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den Kopf des Angabenblattes aus! Die Klausur
MehrUmsetzung 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,
MehrIntensivübung zu Algorithmen und Datenstrukturen
Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche
MehrStatische und Nichtstatische Methoden Properties/ Eigenschaften
Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrFolienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4
Folienpaket 7 Themenschwerpunkte: Methoden in OOP 284 09/2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4 Eine Klasse entwerfen Eine Klasse enthält folgende Information: Name der Klasse (ist auch der
MehrHochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6
Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6 Datum, Uhrzeit: 24. 01. 2011, 10.30 Uhr Semester: IN1 Note:... Prüfer: Prof. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
MehrMethoden 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)
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
MehrKlausur: Java (Liste P)
Klausur: Java (Liste P) SS05 Erlaubte Hilfsmittel: Gebundene! Unterlagen (Skript mit Anmerkungen, eigene Mitschrift) und maximal ein Buch. Bitte keine losen Blätter. Lösung ist auf den Klausurbögen anzufertigen.
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 4 Prof. R. Westermann, A. Lehmann, R.
MehrVorbereitende 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 4 Besprechung: 13. 17.11.2017 (KW 46) Vorbereitende
MehrMatrikelnummer:
Übungen zur Informatik A Hauptklausur 20.02.2003 Universität Koblenz-Landau Institut für Informatik WS 2002/3 Prof. Dr. Dietrich Paulus Dr. Manfred Jackel Bitte lösen Sie jede Aufgabe auf dem jeweiligen
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
Mehrclass ListElement { int value; ListElement next; ListElement() { next=null; value=0;
Listenimplementierung Übung 1, Aufgabe 4. c 2004 Evgeny Matusov, Thomas Deselaers Zunächst definieren wir die Basisklasse für die Listenelemente, die gleichzeitig einen Verweis auf weitere Listenelemente
MehrJAVA - Methoden,... T.Bosse
COMA JAVA -,... Anweisungblöcke Manche Blöcke werden mehrfach benötigt. Sauberer Code Java - /... //gabe double x=3.0; // Vorschrift double y=math.pow(x,); System.out.println("Ergebnis:"+y); //Rückgabe
MehrSchwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen
Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung
MehrÜbung zur Vorlesung Programmierung
RWTH Aachen Lehrgebiet Theoretische Informatik Frohn Reidl Rossmanith Sánchez Ströder WS 2013/14 Übungsblatt 8 16.12.2013 Übung zur Vorlesung Programmierung Aufgabe T15 Betrachten Sie folgende Klassen:
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
MehrEinfü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)
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
MehrAllgemeine Hinweise:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 12/13 Einführung in die Informatik I Wiederholungsklausur Prof. Dr. Helmut Seidl, A. Lehmann,
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1
Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer
MehrWie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrNachklausur Bitte in Druckschrift leserlich ausfüllen!
Übungen zur Vorlesung Informatik für Informationsmanager WS 2005/2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Bernhard Beckert Dr. Manfred Jackel Nachklausur 24.04.2006 Bitte in Druckschrift
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
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
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
Mehr2. Unterprogramme und Methoden
2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 6 Prof. R. Westermann, A. Lehmann, R.
Mehrint x = 3; int y = 11; public A () { this.x = z; y *= z;
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Aufgabe 1 (Programmanalyse): (13 + 6 = 19 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen
MehrTutoraufgabe 1 (Überladen von Methoden):
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Überladen von Methoden): Lösen Sie die folgende Aufgabe ohne Einsatz eines Computers. Bedenken
MehrVorbereitende 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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
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 6. März 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrKlausur Software-Entwicklung März 01
Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,
MehrTo know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1
To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 Rekursion: Beispiele Bier trinken 8-Damen-Problem ipod Shuffle für alle Mitarbeiter Karten
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 10
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Übungsblatt Nr. 10 Aufgabe 20: Code Verständnis Löse diese Aufgabe selbständig als Vorbereitung zur Übung auf dem Papier. a) Gib
MehrÜbung Informatik I - Programmierung - Blatt 8
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.
MehrEinführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung
MehrBeuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1
Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode
MehrLösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrC# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services
C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften
Mehr