Scalingbits - Make the Internet scale http://www.scalingbits.com/ en Neues zum Sommersemester 2022 http://www.scalingbits.com/node/762 <span class="field field--name-title field--type-string field--label-hidden">Neues zum Sommersemester 2022</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/stefan-schneider" typeof="schema:Person" property="schema:name" datatype="">Stefan Schneider</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 01/25/2021 - 17:50</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Diese Seite ist WIP (Work in Progress). Schauen Sie hier bitte nochmals kurz vor der Vorlesung rein!</p> <ul><li>Für IntelliJ gab es Patches. Starten Sie Ihre Entwicklungsumgebung einmal. Erlauben Sie die Patchinstallationen, das sollte binnen 20 Minuten erledigt sein.</li> <li>Wir bleiben bei JDK 11. Hier gibt es Patches bei diversen Produkten. <ul><li>Notieren Sie sich die Pfade zu Ihren alten JDKs. Die werden eventuell deinstalliert.</li> <li>Sie müssen die Pfade der neuen JDKs eventuell in IntelliJ einpflegen. Die neuen JDKs haben normalerweise die Patchversionen in einem Verzeichnis eingebaut. Das muss dann sinngemäß geändert werden.</li> <li>Empfehlung falls Sie unsicher sind: Installieren Sie die Patches nur falls Ihr Unternehmen darauf besteht.</li> </ul></li> <li>Alles funktioniert mit JDK 17. Ich werde JDK 17 verwenden. Sie können es sich gerne installieren. Es sollte keinen Unterschied machen.</li> <li>Codeänderungen in Github: Es wurden viele (kleine) Änderungen in Github durchgeführt. Kommentare geschrieben. Codehygiene durchgeführt etc. <ul><li>Synchronisieren Sie sich das Githubprojekt nochmals auf Ihren Rechner. Die Beschreibung finden Sie auf der <a href="/node/761">neuen IntelliJ-Seite.</a> beschrieben.</li> </ul></li> </ul></div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Mon, 25 Jan 2021 16:50:48 +0000 Stefan Schneider 762 at http://www.scalingbits.com http://www.scalingbits.com/node/762#comments Willkommen zur Wintersemestervorlesung: Einführung in die Programmierung http://www.scalingbits.com/java/javakurs1/vorbereitung <span class="field field--name-title field--type-string field--label-hidden">Willkommen zur Wintersemestervorlesung: Einführung in die Programmierung</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Liebe DHBW Studentinnen und Studenten,</p> <p>die Vorlesung "<a href="/java/javakurs1">Einführung in die Programmierung</a>" MA-WIMBIT21A ist eine BYOD Vorlesung.</p> <!--break--><p>BYOD wie: "Bring Your Own Device", also bringen Sie Ihr eigenes Gerät mit!</p> <p>Sie können einen beliebigen Rechner benutzen, mit dem Sie über das WLAN der dualen Hochschule das Internet nutzen können.</p> <ul><li>Wichtig: Bitte stellen Sie sicher, dass Sie bis zum Oktober Zugang zum WLAN der dualen Hochschule besitzen. Das <a href="/java/javakurs1">Skript und die Übungen</a> sind nur über das Internet zu erreichen.</li> </ul><p>Auf Ihrem Rechner benötigen Sie einige kostenlos zu nutzenden Programme.</p> <p>Eine Vorabinstallation ist wünschenswert. Die Installation in der ersten Vorlesung belastet (bedeutet langsam) das lokale Netzwerk der DHBW sehr.</p> <p>Bitte installieren Sie die folgende Software vorab (in der angegebenen Abfolge):</p> <p>Ein Java Runtime (JRE) und eine Java-Entwicklungsumgebung (JDK). Wir werden mit Java 11 arbeiten. Sie können auf eigenes Risiko eine höhere Version verwenden. Sie können auch Java 8 verwenden. Leider ist es etwas kompliziert um Java 8 und 11  geworden wenn es kostenlos sein soll ...</p> <p>Verwenden Sie <a href="https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html">Amazon Corretto </a>11! Ein anderes Java SDK/JDK funktioniert auch,</p> <ul><li>Windows: Verwenden Sie Windows x64 *.msi . Nur JDK</li> <li>Mac: Verwenden Sie Sie *.dmg </li> </ul><p>Hinweis: Die gesamte Vorlesung kann auch mit Java 7-11 bearbeitet werden falls kein Java 11 installiert werden kann oder darf.</p> <p>Ich empfehle die Benutzung einer komfortableren Entwicklungsumgebung. Hier können Sie eine beliebige Umgebung verwenden.</p> <p>Meine persönlichen Preferenzen in absteigender Folge</p> <ul><li><a href="https://www.jetbrains.com/idea/">IntelliJ IDEA Community version</a> <ul><li>für Windows und Mac</li> <li>Robust</li> <li>Wird von mir als Referenz verwendet (Hier sind Sie "Click-kompatibel"! 🤩 )</li> <li>Ich mag nicht so... <ul><li>viele Buttons die wir nicht benötigen</li> <li>Syntax werden korrekt aber wenig auffällig dargestellt</li> <li><a href="https://www.youtube.com/watch?v=r6WlvqFyWpE&amp;t=33s">Youtube-video zum Installieren</a></li> <li><a href="https://www.youtube.com/watch?v=r6WlvqFyWpE&amp;t=33s">Youtube-video zum Konfigurieren von Github</a></li> </ul></li> </ul></li> <li><a href="http://www.eclipse.org">Eclipse</a> <ul><li>Industriestandard auf Windows</li> <li>Ich mag nicht so <ul><li>Nicht so hübsch auf Mac</li> <li>Der Syntaxchecker ist nicht so richtig robust</li> <li>Viele Buttons die wir nicht benötigen</li> <li>Viele, viele Zusatzmoduln (die verwirren erstmal)</li> </ul></li> </ul></li> </ul><p><a href="/node/507">Hier finden Sie eine Entscheidungshilfe zur Auswahl</a></p> <table border="0" cellpadding="1" cellspacing="1" width="100%"><tbody><tr><td> <p>Die Anforderungen der Vorlesung an die Entwicklungsumgebungen sind minimal:</p> <p> </p> <p><a href="/node/507">Hier wird beschrieben</a> welche Entwicklungsumgebung die beste für Sie ist.</p> <p>Sie werden maximal 1GB Plattenplatz und etwa 500MB freien Hauptspeicher zur Laufzeit benötigen.</p> <p>Es kann sehr gut sein, dass Ihre IT Abteilung Ihnen nicht genügend Rechte auf dem Rechner zur Installation der oben genannten Programme gibt. Bitte stimmen Sie sich bei Bedarf mit Ihrer IT Abteilung ab.</p> </td> <td><img alt="Picture with Duke juggling Beans" data-entity-type="file" data-entity-uuid="163e5caf-55b0-42d1-888f-05f00615f100" height="366" src="/sites/default/files/inline-images/DukeJuggle.gif" width="375" /></td> </tr></tbody></table><p>Legen Sie sich zwei Projekte an (wird auch in der ersten Vorlesung gemacht)</p> <ul><li>Ein Projekt für Ihre Arbeit im ersten und zweiten Semester. Der Name ist beliebig</li> <li> Optional: Ein Projekt mit allem Javacode der Vorlesung. Nennen Sie dieses Projekt "dhbwjava". Dieses Projekt synchronisiert sich den Code von GitHub (eine öffentliche Versionsverwaltung für Software). Eine Erklärung wie Sie das machen<a href="/node/761"> finden Sie hier</a>.</li> </ul><p> </p> <p>Machen Sie sich keinen Stress, falls Sie noch keinen Laptop haben, oder wenn etwas nicht funktioniert. Wir gehen alles in der ersten Vorlesung durch.</p> <p>Ich freue mich auf den Oktober!</p> <p>- Stefan Schneider</p> <p> </p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/stefan-schneider" typeof="schema:Person" property="schema:name" datatype="">Stefan Schneider</span></span> <span class="field field--name-created field--type-created field--label-hidden">Wed, 09/25/2013 - 17:00</span> <section class="field field--name-comment-node-blog field--type-comment field--label-hidden comment-wrapper"> </section> Wed, 25 Sep 2013 15:00:04 +0000 Stefan Schneider 523 at http://www.scalingbits.com http://www.scalingbits.com/java/javakurs1/vorbereitung#comments Starting Greengrass V1 automatically on a Raspberry Pi http://www.scalingbits.com/aws/greengrass/systemd <span class="field field--name-title field--type-string field--label-hidden">Starting Greengrass V1 automatically on a Raspberry Pi</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Greengrass core on a Raspberry Pi needs to be started manually.</p> <p>The following script will create a system-D control file and use it to start the service.</p> <p>The service will then restart automatically at any reboot. Non disclaimer.</p> <hr /><h1>Preconditions</h1> <ul><li>This script with Greengrass V1 only. Greengrass V2 doesn't need it anymore.</li> <li>The script has been tested on a Raspberry Pi 4B with Debian. The script will most likely work on all distributions using system-D</li> <li>Have Greengrass V1 installed.</li> </ul><h1>Non Disclaimer</h1> <ul><li>The scripts needs to be executed with elevate super privileges. This is mandatory. It may however created harm to your system. Check the script upfront. There is no warranty.</li> <li>The script will delete any old versions of the system-D service file <em>/etc/systemd/system/aws-ggc.service</em></li> <li>The script will need a bash shell and the following commands installed (very likely to be preinstalled): <ul><li>echo, systemctl, if</li> </ul></li> </ul><h1>The Installation Script</h1> <p>Create a file with the name <em>installSystemD.sh</em>:</p> <pre> #!/usr/bin/env bash # version 1.1 # March, 2021 SERVICEFILE="/etc/systemd/system/aws-ggc.service" if [[ -e ${SERVICEFILE} ]];then echo "AWS Greengrass Service is already installed as SYSTEMD, trying to stop the service." echo "*****"; systemctl stop aws-ggc.service rm ${SERVICEFILE} fi echo "[Unit]" &gt; ${SERVICEFILE}; echo "Description=AWS Greengrass Service" &gt;&gt; ${SERVICEFILE}; echo "After=syslog.target network.target" &gt;&gt; ${SERVICEFILE}; echo " " &gt;&gt; ${SERVICEFILE}; echo "[Service]" &gt;&gt; ${SERVICEFILE}; echo "Type=forking" &gt;&gt; ${SERVICEFILE}; echo "User=root" &gt;&gt; ${SERVICEFILE}; echo "WorkingDirectory=/greengrass/ggc/core" &gt;&gt; ${SERVICEFILE}; echo "ExecStart=/greengrass/ggc/core/greengrassd start" &gt;&gt; ${SERVICEFILE}; echo "ExecStop=/greengrass/ggc/core/greengrassd stop" &gt;&gt; ${SERVICEFILE}; echo "Restart=always" &gt;&gt; ${SERVICEFILE}; echo "RestartSec=60" &gt;&gt; ${SERVICEFILE}; echo " " &gt;&gt; ${SERVICEFILE}; echo "[Install]" &gt;&gt; ${SERVICEFILE}; echo "WantedBy=multi-user.target" &gt;&gt; ${SERVICEFILE}; systemctl daemon-reload systemctl enable aws-ggc.service systemctl start aws-ggc.service echo "Done installing prerequisites (SYSTEMD)"</pre><h1>Installation of the Service</h1> <p>Make the file executable:</p> <pre> $ chmod u+x installSystemD.sh</pre><p>Execute the file with super user privileges:</p> <pre> $ sudo ./installSystemD.sh</pre><h1>Check for Success</h1> <p>This command checks whether the service started. It doesn't check whether Greengrass Core is working!<br /> Execute the following command:</p> <pre> pi@raspberrypi:~ $ <strong>systemctl status aws-ggc.service</strong> ● aws-ggc.service Loaded: loaded (/etc/systemd/system/aws-ggc.service; enabled; vendor preset: Active: active (running) since Mon 2020-11-23 11:53:08 CET; 30min ago Process: 396 ExecStart=/greengrass/ggc/core/greengrassd start (code=exited, st Main PID: 452 (5) Tasks: 132 (limit: 4915) Memory: 236.8M CGroup: /system.slice/aws-ggc.service ├─ 452 /greengrass/ggc/packages/1.11.0/bin/daemon -core-dir /greengra ├─ 634 /lambda/greengrassSystemComponents -runAs=tes ├─ 639 /lambda/greengrassSystemComponents -runAs=shadow ├─ 647 /lambda/greengrassSystemComponents -runAs=cloudSpooler ├─ 665 /lambda/greengrassSystemComponents -runAs=connectionManager ├─ 679 /lambda/greengrassSystemComponents -runAs=deviceCertificateMan ├─ 692 /lambda/greengrassSystemComponents -runAs=shadowSync ├─ 694 /lambda/greengrassSystemComponents -runAs=secretManager ├─ 772 /lambda/ipdetector ├─ 773 java -cp /lambda/stream_manager/AWSGreengrassStreamManager.jar └─1209 python3.7 -u /runtime/python/lambda_runtime.py --handler=green Nov 23 11:52:54 raspberrypi systemd[1]: Starting aws-ggc.service... Nov 23 11:52:54 raspberrypi greengrassd[396]: Setting up greengrass daemon Nov 23 11:52:54 raspberrypi greengrassd[396]: Validating hardlink/softlink prote Nov 23 11:52:54 raspberrypi greengrassd[396]: Waiting for up to 1m10s for Daemon Nov 23 11:53:08 raspberrypi greengrassd[396]: Greengrass successfully started wi Nov 23 11:53:08 raspberrypi systemd[1]: Started aws-ggc.service.</pre><p>Abort with &lt;ctrl&gt; c</p> <h1>Stopping the Service</h1> <pre> $ sudo systemctl stop aws-ggc.service</pre></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/stefan-schneider" typeof="schema:Person" property="schema:name" datatype="">Stefan Schneider</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 11/23/2020 - 11:55</span> <section class="field field--name-comment-node-book field--type-comment field--label-hidden comment-wrapper"> </section> Mon, 23 Nov 2020 10:55:39 +0000 Stefan Schneider 758 at http://www.scalingbits.com http://www.scalingbits.com/aws/greengrass/systemd#comments 4. Inspektion einer jar Datei http://www.scalingbits.com/java/frage/beginner/jar/frage4 <span class="field field--name-title field--type-string field--label-hidden">4. Inspektion einer jar Datei</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Sie erhalten eine Datei <em>unbekannt.jar</em>. Geben Sie den Kommanozeilenbefehl des JDK an mit dem Sie erkennen können was diese Datei enthält.</p> <!--break--><table width="30%" cellspacing="1" cellpadding="1" border="1"><tbody><tr><td>Niveau</td> <td>1</td> </tr><tr><td>Schwierigkeitsgrad</td> <td>mittel</td> </tr><tr><td>Zeit</td> <td>2 Minuten</td> </tr></tbody></table><p>Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)</p> <p> </p> <h2>Antwort zur Frage 3: Manifestdatei in jar Archiven</h2> <ul><li>zur Deklaration der zum Start zu benutzenden Klasse</li> <li>zur Signierung der Datei</li> <li>zum Verwalten von Hilfsinformationen wie verwendete JDK version etc</li> <li>Copyright und Lizenzinformationen</li> </ul><p> </p> <h2>Antwort zur Frage 4: Inspektion einer jar Datei</h2> <pre> jar -tvf unbekannt.jar</pre></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/javafrage" typeof="schema:Person" property="schema:name" datatype="">javafrage</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 12/23/2019 - 16:41</span> <section class="field field--name-comment-node-blog field--type-comment field--label-hidden comment-wrapper"> </section> Mon, 23 Dec 2019 15:41:41 +0000 javafrage 751 at http://www.scalingbits.com http://www.scalingbits.com/java/frage/beginner/jar/frage4#comments 16 Fragen zum Sortieren durch Einfügen http://www.scalingbits.com/java/frage/fortgeschritten/algorithmus16 <span class="field field--name-title field--type-string field--label-hidden">16 Fragen zum Sortieren durch Einfügen</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Ein paar Fragen zum Sortieren durch Einfügen...</p> <!--break--><ul><li>Welchen Komplexitätsaufwand hat dieser Algorithmus?</li> <li>Nennen Sie zwei Algorithmen aus der Vorlesung die eine bessere Aufwandsklasse besitzen.</li> <li>Welchen Vorteil hat der Insertionsort immer gegenüber den beiden Algorithmen die eine bessere Komplexitätsklasse besitzen?</li> </ul><p>Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).</p> <table width="100%" border="1"><tbody><tr><td>Niveau</td> <td>2</td> </tr><tr><td>Schwierigkeitsgrad</td> <td>mittel</td> </tr><tr><td>Zeit</td> <td>1+2+2 Minuten</td> </tr></tbody></table><h2>Antwort zu Frage 15 Sortieren durch Einfügen: Ein Beispiel</h2> <p><img width="500" height="279" alt="Lösung zur Aufgabe Soertieren durch EInfügen" src="/sites/default/files/InsertionSortLoes.2.png" /></p> <p>Die Antwort zur aktuellen Frage finden Sie viel weiter unten</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <h2>Antwort zu Frage 16: Fragen zum Sortieren durch Einfügen</h2> <ul><li>Durchschnittlicher Aufwand: O<sub>insertionsort</sub>(n) = O(n2)</li> <li>Effizientere Sortierverfahren <ol><li>Quicksort </li> <li>Heapsort</li> </ol></li> <li>Er ist stabil.</li> </ul></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/javafrage" typeof="schema:Person" property="schema:name" datatype="">javafrage</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 03/25/2017 - 15:14</span> <section class="field field--name-comment-node-blog field--type-comment field--label-hidden comment-wrapper"> <article role="article" data-comment-user-id="0" id="comment-560" class="comment js-comment by-anonymous clearfix"> <span class="hidden" data-comment-timestamp="1498547580"></span> <footer class="comment__meta"> <p class="comment__author"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous (not verified)</span></p> <p class="comment__time">Tue, 06/27/2017 - 09:13</p> <p class="comment__permalink"><a href="/comment/560#comment-560" hreflang="en">Permalink</a></p> </footer> <div class="comment__content"> <h3><a href="/comment/560#comment-560" class="permalink" rel="bookmark" hreflang="en">Aufwand Insertion Sort - Antwort zu Frage 16</a></h3> <div class="clearfix text-formatted field field--name-comment-body field--type-text-long field--label-hidden field__item"><p>Die durchschnittliche Komplexität eines Insertion Sorts ist O(n^2). Wobei beste Komplexität O(n) ist (bei sortierten Listen) und schlechteste O(n^2).</p> <p>Quelle: bigocheatsheet</p> <p>Anmerkung: Evtl. liegt hier ein Darstellungsproblem in ihrer Lösung vor und O(n2) meint O(n^2).</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=560&amp;1=default&amp;2=en&amp;3=" token="SmjTlHAokI59pDN6lOox__Brhfe_aDNpi3etFd6FGnQ"></drupal-render-placeholder> </div> </article> <div class="indented"><article role="article" data-comment-user-id="3" id="comment-566" class="comment js-comment clearfix"> <span class="hidden" data-comment-timestamp="1498571206"></span> <footer class="comment__meta"> <p class="comment__author"><span lang="" about="/users/stefan-schneider" typeof="schema:Person" property="schema:name" datatype="">Stefan Schneider</span></p> <p class="comment__time">Tue, 06/27/2017 - 15:46</p> <p class="comment__permalink"><a href="/comment/566#comment-566" hreflang="en">Permalink</a></p> <p class="visually-hidden">In reply to <a href="/comment/560#comment-560" class="permalink" rel="bookmark" hreflang="en">Aufwand Insertion Sort - Antwort zu Frage 16</a> by <span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous (not verified)</span></p> </footer> <div class="comment__content"> <h3><a href="/comment/566#comment-566" class="permalink" rel="bookmark" hreflang="en">OK, richtig</a></h3> <div class="clearfix text-formatted field field--name-comment-body field--type-text-long field--label-hidden field__item"><p>Ich habe das nachgebessert.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=566&amp;1=default&amp;2=en&amp;3=" token="pUZnDebutTxxuinyl4k17g2zMBzqAm7Sahz53CrmS2k"></drupal-render-placeholder> </div> </article> </div> </section> Sat, 25 Mar 2017 14:14:16 +0000 javafrage 669 at http://www.scalingbits.com http://www.scalingbits.com/java/frage/fortgeschritten/algorithmus16#comments 15 Sortieren durch Einfügen: Ein Beispiel http://www.scalingbits.com/java/frage/fortgeschritten/algorithmus15 <span class="field field--name-title field--type-string field--label-hidden"> 15 Sortieren durch Einfügen: Ein Beispiel</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Die unten aufgeführte Folge im Diagramm wird aufsteigend sortiert und ist schon teilsortiert. Markieren Sie im Diagramm die Sortiergrenze mit einem Pfeil.</p> <!--break--><p>Führen Sie nun einen Durchlauf des Insertionsorts durch.</p> <ul><li>Vergleichen und Tauschen Sie den nächsten Wert solange bis er an der richtigen Stelle steht (3 Min.)</li> <li>Markieren Sie die neue Sortiergrenze mit einem Pfeil (1 Min.)</li> </ul><p><strong>Hinweis</strong>: Markieren Sie eine nötige Vertauschung wie im Beispiel gezeigt. <br /> Tragen Sie dann die neuen Werte in die nächste Zeile ein. <br /> Benutzen Sie dann eine neue Zeile.</p> <p><img width="500" height="285" alt="Übung Insertionssort" src="/sites/default/files/InsertionSortAufg.2.jpg" /></p> <p>Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).</p> <table width="100%" border="1"><tbody><tr><td>Niveau</td> <td>2</td> </tr><tr><td>Schwierigkeitsgrad</td> <td>mittel</td> </tr><tr><td>Zeit</td> <td>1+4 Minuten</td> </tr></tbody></table><h2>Antwort zu Frage 14: Sortiergrenze beim Insertionsort (Sortieren durch Einfügen)</h2> <p>Die Grenze zwischen der unsortierten und der sortierten Folge</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/javafrage" typeof="schema:Person" property="schema:name" datatype="">javafrage</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 03/25/2017 - 15:02</span> <section class="field field--name-comment-node-blog field--type-comment field--label-hidden comment-wrapper"> </section> Sat, 25 Mar 2017 14:02:21 +0000 javafrage 668 at http://www.scalingbits.com http://www.scalingbits.com/java/frage/fortgeschritten/algorithmus15#comments 14 Sortiergrenze beim Insertionsort (Sortieren durch Einfügen) http://www.scalingbits.com/java/frage/fortgeschritten/algorithmus14 <span class="field field--name-title field--type-string field--label-hidden">14 Sortiergrenze beim Insertionsort (Sortieren durch Einfügen)</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Was ist die Sortiergrenze in der Folge in der durch Sortieren durch Einfügen sortiert wird? </p> <!--break--> <p>Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).</p> <table border="1" width="100%"><tbody><tr><td>Niveau</td> <td>2</td> </tr><tr><td>Schwierigkeitsgrad</td> <td>mittel</td> </tr><tr><td>Zeit</td> <td>2 Minuten</td> </tr></tbody></table><h2>Antwort zu Frage 13: Komplexitätsbetrachtungen 5</h2> <p>k sei der konstante Zeitaufwand der zum verarbeiten eines Datensatzes benötigt wird</p> <p>O<sub>A</sub> (n) =O (5000000+k*n)=O (1)+O (n)=O<sub>A</sub> (n)</p> <p>O<sub>B</sub> (n) =O<sub>A</sub> (4n)= O<sub>A</sub> (n)</p> <p>Beide Algorithmen sind in der gleichen Komplexitätsklasse. Der zweite Algorithmus wird bei sehr kleinen Anzahlen etwas schneller sein.</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/holodoctor" typeof="schema:Person" property="schema:name" datatype="">holodoctor</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 03/25/2017 - 14:47</span> <section class="field field--name-comment-node-blog field--type-comment field--label-hidden comment-wrapper"> </section> Sat, 25 Mar 2017 13:47:41 +0000 holodoctor 667 at http://www.scalingbits.com http://www.scalingbits.com/java/frage/fortgeschritten/algorithmus14#comments 22 Anonyme, innere Klasse implementieren http://www.scalingbits.com/java/frage/fortgeschritten/swing22 <span class="field field--name-title field--type-string field--label-hidden">22 Anonyme, innere Klasse implementieren</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Implementieren Sie eine innere, anonyme Klasse in der <em>main() </em>Methode der Klasse Rahmen.</p> <!--break--><ul><li>Die Klasse wird aus der Klasse <em>Test</em> spezialisiert</li> <li>Die Methode <em>result() </em>wird überschrieben. Sie soll den Wert 17 zurückgeben.</li> <li>Weisen Sie das neue Objekt auf die vorgebene Referenz t zu.</li> </ul><pre> public class Test { public int result() {return 3; } } // Ende Klasse Test public class Rahmen { public static void main (String[] args) { // hier implementieren: Test t = new //Ab hier implementieren } // Ende main Methode } // Ende Klasse Rahmen </pre><p>Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).</p> <table width="100%" border="1"><tbody><tr><td>Niveau</td> <td>2</td> </tr><tr><td>Schwierigkeitsgrad</td> <td>mittel</td> </tr><tr><td>Zeit</td> <td>6 Minuten</td> </tr></tbody></table><h2>Antwort zu Frage 21: Definition Layoutmanager mit Beispiel</h2> <p>Ein Layout-Manager ist ein Objekt, welches Methoden bereitstellt, um die grafische Repräsentation verschiedener Komponenten innerhalb eines Container-Objektes anzuordnen </p> <p>GridLayout. Mit diesem Layout kann man ein zweidimensionales Feld von Komponenten organisieren.</p> <p>Die Antwort zu Frage 22 finden Sie viel weiter unten...</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <h2>Antwort zu Frage 22: Anonyme, innere Klasse implementieren</h2> <pre> public class Test { public int result() {return 3; } } // Ende Klasse Test public class Rahmen { public static void main (String[] args) { // hier implementieren: Test t = <strong>new Test() { public int result () {return 17;} } // ende innere Klasse</strong> } // Ende main Methode } // Ende Klasse Rahmen </pre></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/holodoctor" typeof="schema:Person" property="schema:name" datatype="">holodoctor</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 03/25/2017 - 14:35</span> <section class="field field--name-comment-node-blog field--type-comment field--label-hidden comment-wrapper"> </section> Sat, 25 Mar 2017 13:35:28 +0000 holodoctor 666 at http://www.scalingbits.com http://www.scalingbits.com/java/frage/fortgeschritten/swing22#comments 3 "Upper Bound Wildcards" anwenden http://www.scalingbits.com/java/frage/fortgeschrittene/generisch3 <span class="field field--name-title field--type-string field--label-hidden">3 &quot;Upper Bound Wildcards&quot; anwenden</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Nutzen Sie das Konzept einer „Upper bound wildcard“ um die generische Klasse <em> Koordinate</em> zu deklarieren, die man nur für die Javaklassen <em>Byte</em>, <em>Float</em>, <em>Integer</em>, <em>Short</em>, <em>Long</em>, <em>Double</em> konfigurieren kann.</p> <!--break--><p>Anbei ein Bild der Javaklassenhierarchie:</p> <p><t extends="" number=""><img alt="Klassenhierarchie Number" src="/sites/default/files/Number.png" /></t></p> <p>Vervollständigen Sie den Kopf der Klasse <em>Koordinate</em>:</p> <pre> public class Koordinate { // Rumpf ist nicht relevant für diese Aufgabe } </pre><p>Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).</p> <table width="100%" border="1"><tbody><tr><td>Niveau</td> <td>2</td> </tr><tr><td>Schwierigkeitsgrad</td> <td>mittel</td> </tr><tr><td>Zeit</td> <td>2 Minuten</td> </tr></tbody></table><p> </p> <p> </p> <h2>Antwort zu Frage 2. : Generics, Typprüfung</h2> <table width="100%" cellspacing="1" cellpadding="1" border="1"><thead><tr><th scope="col">Quellcode</th> <th scope="col">Beschreibung der Fehler</th> </tr></thead><tbody><tr><td> <pre> package Kurs2.Generics;<p>public class Flaeche&lt;T extends Number&gt; {<br /> public T x;<br /> public T y;</p><p>public Flaeche(T xp, T yp) {<br /> x = xp;<br /> y = yp;<br /> }<br /><br /> public static void main(String[] a) {<br /> Flaeche&lt;Double&gt; f1;<br /> Flaeche&lt;Double&gt; f2;<br /> Flaeche&lt;Integer&gt; f3;<br /> Flaeche&lt;Integer&gt; f4;<br /> Flaeche&lt;Number&gt; f5;<br /> Flaeche&lt;Number&gt; f6;<br /> Flaeche f7;<br /> Flaeche f8;<br /> Flaeche&lt;?&gt; f9;<br /><br /> f1 = new Flaeche&lt;Double&gt;(2.2d,3.3d);<br /> f3 = new Flaeche&lt;Integer&gt;(2, 3);<br /><br /> f2 = f1;<br /> //f2 = f3;<br /><br /> //f9 = new Flaeche&lt;String&gt;("11","22");<br /> f5 = new Flaeche&lt;Number&gt;(2l, 3l);<br /> f5 = new Flaeche&lt;Number&gt;(4.4d, 5.5f);<br /> //f1 = new Flaeche&lt;Double&gt;(3.3f,9.9d);<br /> f7 = new Flaeche(2.2f,3.3f);<br /> f7 = new Flaeche&lt;Number&gt;(7.7f, 8.8f);<br /> f8 = new Flaeche(7.7f, 8.8f);<br /><br /> f9 = f1;<br /> f9 = f2;<br /> //f1 = f9;<br /> }<br />}</p></pre></td> <td> <pre><p> </p><p> </p><p> </p><p> </p><p> </p><p><br /> </p><p> </p><p> </p><p><br /><br /><br /><br /><br /> </p><p> </p><p>Ab hier ist mit Fehlern zu rechnen: <br />Man darf keine Instanziierung von<br /> Integer auf Double zuweisen<br />String ist keine Spezialisierung von Number<br /><br /><br />3.3f wird durch Autoboxing zu Instanz <br /> von Float. Float leitet nicht aus <br /> der Klasse Double ab</p><p> <br /><br /><br /><br />f9 muss ein Flaeche&lt;Double&gt; sein. <br /> Keine sichere Zuweisung<br /> </p></pre></td> </tr></tbody></table></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/javafrage" typeof="schema:Person" property="schema:name" datatype="">javafrage</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sun, 03/19/2017 - 12:05</span> <section class="field field--name-comment-node-blog field--type-comment field--label-hidden comment-wrapper"> </section> Sun, 19 Mar 2017 11:05:15 +0000 javafrage 654 at http://www.scalingbits.com http://www.scalingbits.com/java/frage/fortgeschrittene/generisch3#comments 21 Definition Layoutmanager mit Beispiel http://www.scalingbits.com/java/frage/fortgeschrittene/swing21 <span class="field field--name-title field--type-string field--label-hidden">21 Definition Layoutmanager mit Beispiel</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Was sind Layout-Manager in Swing? (Definition)</p> <p>Sie sollen in Swing ein Schachbrett implementieren und Visualisieren. Welchen Layout-Manager wählen Sie?</p> <!--break--><p>Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).</p> <table width="100%" border="1"><tbody><tr><td>Niveau</td> <td>2</td> </tr><tr><td>Schwierigkeitsgrad</td> <td>mittel</td> </tr><tr><td>Zeit</td> <td>2+1 Minuten</td> </tr></tbody></table><h2>Antwort zu Frage 20: Swing Toplevel Container</h2> <p>Nennen Sie mindesten 2 Toplevel Container die man in Swing benutzt um grafische Benutzeroberflächen zu entwickeln:</p> <ul><li>JFrame</li> <li>JApplet</li> <li>JDialog</li> <li>JWindow</li> </ul><p>Welchen dieser Container würden Sie wählen wenn Sie eine typische Textverarbeitungsanwendung implementieren sollen. Ihre Anwendung soll mehrere Dokumente in mehreren Fenstern verwalten könne?</p> <ul><li>JFrame</li> </ul><p>Welche weiteren nützlichen Eigenschaften hat dieser Container für Ihre Textverarbeitungsanwendung? Nennen Sie eine:</p> <ul><li>Man kann Menüleisten konfigurieren.</li> </ul><p>Ein Layout-Manager ist ein Objekt, welches Methoden bereitstellt, um die grafische Repräsentation verschiedener Komponenten innerhalb eines Container-Objektes anzuordnen</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/javafrage" typeof="schema:Person" property="schema:name" datatype="">javafrage</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sun, 03/12/2017 - 18:47</span> <section class="field field--name-comment-node-blog field--type-comment field--label-hidden comment-wrapper"> <article role="article" data-comment-user-id="0" id="comment-631" class="comment js-comment by-anonymous clearfix"> <span class="hidden" data-comment-timestamp="1558022496"></span> <footer class="comment__meta"> <p class="comment__author"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous (not verified)</span></p> <p class="comment__time">Thu, 05/16/2019 - 18:01</p> <p class="comment__permalink"><a href="/comment/631#comment-631" hreflang="en">Permalink</a></p> </footer> <div class="comment__content"> <h3><a href="/comment/631#comment-631" class="permalink" rel="bookmark" hreflang="en">Rechtschreibfehler</a></h3> <div class="clearfix text-formatted field field--name-comment-body field--type-text-long field--label-hidden field__item"><p>Gleicher Fehler wie zuvor :)</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=631&amp;1=default&amp;2=en&amp;3=" token="WinaBo5iYT_6CMA2WkijIPDqdpyFJEeBapfb1Fr67ug"></drupal-render-placeholder> </div> </article> <article role="article" data-comment-user-id="0" id="comment-697" class="comment js-comment by-anonymous clearfix"> <span class="hidden" data-comment-timestamp="1593037110"></span> <footer class="comment__meta"> <p class="comment__author"><span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous (not verified)</span></p> <p class="comment__time">Thu, 06/25/2020 - 00:18</p> <p class="comment__permalink"><a href="/comment/697#comment-697" hreflang="en">Permalink</a></p> </footer> <div class="comment__content"> <h3><a href="/comment/697#comment-697" class="permalink" rel="bookmark" hreflang="en">Lösung der Frage auf dieser Seite</a></h3> <div class="clearfix text-formatted field field--name-comment-body field--type-text-long field--label-hidden field__item"><p>Hallo, </p> <p>die Lösung der Frage 21 ist zum Teil bereits unter der Lösung von Frage 20.</p> <p>Viele Grüße</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=697&amp;1=default&amp;2=en&amp;3=" token="8hRExjjCAAjru10nThVX2qc2T7kRB06gJdt6QR5hGqo"></drupal-render-placeholder> </div> </article> <div class="indented"><article role="article" data-comment-user-id="3" id="comment-698" class="comment js-comment clearfix"> <span class="hidden" data-comment-timestamp="1593069648"></span> <footer class="comment__meta"> <p class="comment__author"><span lang="" about="/users/stefan-schneider" typeof="schema:Person" property="schema:name" datatype="">Stefan Schneider</span></p> <p class="comment__time">Thu, 06/25/2020 - 09:20</p> <p class="comment__permalink"><a href="/comment/698#comment-698" hreflang="en">Permalink</a></p> <p class="visually-hidden">In reply to <a href="/comment/697#comment-697" class="permalink" rel="bookmark" hreflang="en">Lösung der Frage auf dieser Seite</a> by <span lang="" typeof="schema:Person" property="schema:name" datatype="">Anonymous (not verified)</span></p> </footer> <div class="comment__content"> <h3><a href="/comment/698#comment-698" class="permalink" rel="bookmark" hreflang="en">Stimmt</a></h3> <div class="clearfix text-formatted field field--name-comment-body field--type-text-long field--label-hidden field__item"><p>Danke!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=698&amp;1=default&amp;2=en&amp;3=" token="EsmGh_1A9O9NqCC9WmRAeQ3gaOMyN8IR2t0CaelV6aI"></drupal-render-placeholder> </div> </article> </div> </section> Sun, 12 Mar 2017 17:47:55 +0000 javafrage 653 at http://www.scalingbits.com http://www.scalingbits.com/java/frage/fortgeschrittene/swing21#comments