{"id":582,"date":"2019-08-14T21:06:31","date_gmt":"2019-08-14T19:06:31","guid":{"rendered":"https:\/\/fsr.cs.uni-potsdam.de\/?p=582"},"modified":"2019-08-14T21:06:31","modified_gmt":"2019-08-14T19:06:31","slug":"programmierung-datum-unbekannt","status":"publish","type":"post","link":"https:\/\/fsr.cs.uni-potsdam.de\/?p=582","title":{"rendered":"Programmierung (Datum unbekannt)"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"aufgabe_1_5_punkte\">Aufgabe 1 (5 Punkte)<\/h1>\n\n\n\n<p>\nDie folgenden Programmfragmente seien Bestandteile der <code>main()<\/code>-Methode einer Java-Applikation. Was wird jeweils ausgegeben?\n<\/p>\n\n\n\n<p>\n(a) (3 Punkte)\n<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">int x = 4;\nfor (int i=1; i&lt;x; i++)\n  System.out.print(i + \": \" + x%i + \"-\");\nSystem.out.println(x + \": \" + x%x);<\/pre>\n\n\n\n<p>\n(b) (2 Punkte)\n<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">int[] tmp = {4};\nint x[][] = new int [2][];\nx[0] = tmp;\nSystem.out.println(x[0][0]);<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_2_8_punkte\">Aufgabe 2 (8 Punkte)<\/h1>\n\n\n\n<p>\nDie Klasse <code>Person<\/code> enth\u00e4lt die folgenden vier privaten Attribute:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> <code>name<\/code> vom Datentyp <code>String<\/code>\n<\/li><li> <code>geschlecht<\/code> vom Datentyp <code>String<\/code>\n<\/li><li> <code>alter<\/code> vom Datentyp <strong><code>int<\/code><\/strong>\n<\/li><li> <code>einkommen<\/code> vom Datentyp <strong><code>float<\/code><\/strong>\n<\/li><\/ul>\n\n\n\n<p>\nEin Konstruktor <code>Person(String a, String b, <strong>int<\/strong> c, <strong>float<\/strong> d)<\/code> initialisiert die Datenelemente mit den Werten seiner Parameter. Eine <strong><code>protected<\/code><\/strong> Methode <code>setEinkommen(<strong>float<\/strong> a)<\/code> setzt das Einkommen auf einen neuen Wert.\n<\/p>\n\n\n\n<p>\nDie Klasse <code>Student<\/code> sei Unterklasse von <code>Person<\/code> und enthalte ein Datenelement <code>matrikelNummer<\/code> vom Typ <code><strong>float<\/strong><\/code>.\n<\/p>\n\n\n\n<p>\nSchreiben sie den Quellcode der Klasse <code>student<\/code> nieder.\nDieser soll die Definition eines Initialisierungskonstruktors enthalten.\n Die Werte f\u00fcr die Initialisierung der Oberklassenelemente m\u00fcssen dem\nKonstruktor \u00fcbergeben werden k\u00f6nnen. Das Datenelement <code>matrikelNummer<\/code> soll im Konstruktor gesetzt werden.\n<\/p>\n\n\n\n<p>\nSchreiben sie eine Methode <code>setBetrag<\/code>, die einen Parameter vom Typ <code><strong>float<\/strong><\/code> \u00fcbergeben bekommt und das Datenelement <code>einkommen<\/code> setzt.\n<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_3_12_punkte\">Aufgabe 3 (12 Punkte)<\/h1>\n\n\n\n<p> Analysieren sie den nachfolgenden Quelltext: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Exc1 extends Exception {\n  void println() { System.out.println(\"Exc1\"); }\n}\nclass Exc2 extends Exception {\n  void println() { System.out.println(\"Exc2\"); }\n}\nclass Exc3 extends Exc1 {\n  void println() { System.out.println(\"Exc3\"); }\n}\n\npublic class ExceptionTest {\n  public static int f(int x) throws Exc1, Exc2, Exc3 {\n    if (x == 1) throw new Exc1();\n    if (x == 2) throw new Exc2();\n    if (x == 3) throw new Exc3();\n    return -x;\n  }\n\n  public static void main(String[] args) {\n    try {\n      int i = Integer.parseInt(args[0]);\n      int y = f(i);\n      System.out.println(y);\n    } catch (Exc1 exc1) {\n      exc1.println();\n    } catch (Exc2 exc2) {\n      exc2.println();\n      return;\n    } finally {\n      System.out.println(\"finally\");\n    }\n    System.out.println(\"Ende\");\n  }\n}<\/code><\/pre>\n\n\n\n<p>\nWelche Ausgaben erscheinen in welcher Reihenfolge auf dem Bildschirm, wenn ein Nutzer bei der Ausf\u00fchrung des Programms\n<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li> eine 1 \u00fcbergibt? (3 Punkte)\n<\/li><li> eine 2 \u00fcbergibt? (3 Punkte)\n<\/li><li> eine 3 \u00fcbergibt? (3 Punkte)\n<\/li><li> eine 4 \u00fcbergibt? (3 Punkte)\n<\/li><\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_4_5_punkte\">Aufgabe 4 (5 Punkte)<\/h1>\n\n\n\n<p>\nGegeben sei die Klasse Test:\n<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Test {\n  public int zahl;\n  public Test(int z) { zahl = z; }\n}<\/code><\/pre>\n\n\n\n<p>\nund die folgenden Deklarationen\n<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">int var1 = 15; <br \/>Test var2 = new Test(15); <br \/>Test var3 = new Test(15);<\/pre>\n\n\n\n<p>\nWelche der folgenden Aussagen trifft zu?\n<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li> <code>'System.out.println(var2);<\/code>&#8218; bewirkt die Ausgabe: <code>\u201e15\u201c<\/code>\n<\/li><li> <code>'System.out.println(var2==var3);<\/code>&#8218; bewirkt die Ausgabe: <code>\u201etrue\u201c<\/code>\n<\/li><li> <code>'System.out.println(var2.equals(var3));<\/code>&#8218; bewirkt die Ausgabe: <code>\u201efalse\u201c<\/code>\n<\/li><li> <code>'System.out.println(var1==var3);<\/code>&#8218; bewirkt einen Fehler beim Kompilieren.\n<\/li><li> <code>'System.out.println( (var1+\u201e\u201c).equals(var3+\u201e\u201c) );<\/code>&#8218; bewirkt einen Fehler beim Kompilieren.\n<\/li><\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_5_8_punkte\">Aufgabe 5 (8 Punkte)<\/h1>\n\n\n\n<p>\nGegeben sei folgendes Fragment einer Java-Klasse:\n<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.awt.*;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\n\npublic class MyFrame extends Frame implements ActionListener {\n  public int i = 0;\n  public Button button1 = new Button(\"Button1\");\n  public Button button2 = new Button(\"Button2\");\n\n  public MyFrame(String titel) {\n    super(titel);\n    this.add(button1);\n  }\n\n  public void actionPerformed(ActionEvent e) {\n    if ( ... ) {\n\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<p>\nErg\u00e4nzen Sie das Fragment zu einer fehlerfreien Klasse. Beim Klick auf <code>Button1<\/code> soll die Applikation beendet werden. Das Dr\u00fccken von <code>Button2<\/code> f\u00fchrt zur Erh\u00f6hung des Wertes von <code>i<\/code> um <code>1<\/code>. Notieren sie den vollst\u00e4ndigen Quelltext.\n<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_6_18_punkte\">Aufgabe 6 (18 Punkte)<\/h1>\n\n\n\n<ol class=\"wp-block-list\"><li> Erkl\u00e4ren sie den Unterschied\nzwischen Instanzenvariablen\/Instanzenmethoden und\nKlassenvariablen\/Klassenmethoden an Hand eines selbst gew\u00e4hlten\nBeispiels! Gehen sie auch auf die Deklaration von\nKlassenvariablen\/Methoden ein! (Welches Schl\u00fcsselwort?) (4 Punkte)\n<\/li><li> Erkl\u00e4ren sie den Unterschied zwischen den Anweisungen <code>i++<\/code> und <code>++i<\/code>. (2 Punkte)\n<\/li><li> Was versteht man im Allgemeinen unter einem Flag-Interface? (1 Punkt)\n<\/li><li> Erkl\u00e4ren sie Unterschiede zwischen einfachen und Referenzdatentypen (? Punkte)\n<\/li><\/ol>\n\n\n\n<p>\nWelche der folgenden Aussagen ist richtig?\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> Jede Klasse muss eine Methode mit dem Namen <code>main()<\/code> enthalten. (1 Punkt)\n<\/li><li> Bei der Deklaration <code>\u201epublic class B extends A { \u2026 }\u201c<\/code> werden Konstruktoren der Klasse A an die Klasse B vererbt. (1 Punkt)\n<\/li><li> Der Typ eoiner Variablen kann ein Interface sein. (1 Punkt)\n<\/li><li> Interfaces k\u00f6nnen instanziiert werden. (1 Punkt)\n<\/li><li> Abstrakte Klassen k\u00f6nnen nicht instanziiert werden. (1 Punkt)\n<\/li><li> Eine von <code>RunTimeException<\/code> abgeleitete Exception muss nicht abgefangen werden. (1 Punkt)\n<\/li><li> Konstruktoren d\u00fcrfen \u00fcberhaupt keine R\u00fcckgabetypen haben. (1 Punkt)\n<\/li><li> Zwei Methoden einer Klasse d\u00fcrfen\ndie gleiche Signatur haben, solange sie sich an Hand ihres\nR\u00fcckgabewertes unterscheiden lassen. (1 Punkt)\n<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_7_7_punkte\">Aufgabe 7 (7 Punkte)<\/h1>\n\n\n\n<p>\nSchreiben sie den vollst\u00e4ndigen Quellcode einer Methoden nieder. W\u00e4hlen\nsie alle Bezeichner selbst. Eventuelle Exceptions brauchen <em>nicht<\/em> behandelt zu werden.\n<\/p>\n\n\n\n<p>\nDie Methode bekommt als Parameter zwei <code><strong>int<\/strong><\/code>-Werte \u00fcbergeben. Es wird zun\u00e4chst ein <code><strong>int<\/strong><\/code>-Array\n erzeugt, dessen L\u00e4nge durch den ersten Parameter bestimmt wird. Der\nerste Wert (Stelle 0) des Arrays wird mit dem zweiten Parameter\ninitialisiert. Alle anderen Stellen i des Arrays werden mit (\u2026) des\nWertes der Vorg\u00e4ngerstelle (Stelle i &#8211; 1) initialisiert. Die Methode\ngibt dieses Array zur\u00fcck.\n<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"aufgabe_8_7_punkte\">Aufgabe 8 (7 Punkte)<\/h1>\n\n\n\n<p>\n(a) Was ist dynamische Objekterzeugung und wie wird sie durch Programmiersprachen unterst\u00fctzt?\n<\/p>\n\n\n\n<p>\n(b) Gegeben sei die folgende Klasse:\n<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class TestKlasse {\n  private int z1;\n  private int z2;\n\n  private ReferenzKlasse obj;\n}<\/code><\/pre>\n\n\n\n<p>\nDie Klasse <code>Referenzklasse<\/code> bietet eine \u00f6ffentliche Instanzenmethode <code><strong>public<\/strong> ReferenzKlasse getDeepCopy()<\/code>, die eine exakte Kopie des Objektes der Klasse <code>ReferenzKlasse<\/code> zur\u00fcckliefert. Implementieren sie beispielhaft eine Klonierungsmethode f\u00fcr die Klasse <code>TestKlasse<\/code>.\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aufgabe 1 (5 Punkte) Die folgenden Programmfragmente seien Bestandteile der main()-Methode einer Java-Applikation. Was wird jeweils ausgegeben? (a) (3 Punkte) int x = 4; for (int i=1; i&lt;x; i++) System.out.print(i + &#8222;: &#8220; + x%i + &#8222;-&#8222;); System.out.println(x + &#8222;: &#8220; + x%x); (b) (2 Punkte) int[] tmp = {4}; int x[][] = new int <a class=\"more-link\" href=\"https:\/\/fsr.cs.uni-potsdam.de\/?p=582\">weiterlesen&#8230;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-582","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/posts\/582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=582"}],"version-history":[{"count":0,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=\/wp\/v2\/posts\/582\/revisions"}],"wp:attachment":[{"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fsr.cs.uni-potsdam.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}