当前位置:天才代写 > JAVA代写 > Java算法编程代写 Programmieren代写

Java算法编程代写 Programmieren代写

2022-07-04 11:22 星期一 所属: JAVA代写 浏览:69

Programmieren 2 SoSe 2022

Assignment 1

Java算法编程代写 Geben Sie Ihr Assignment bis zum 19. April 2022 um 23:59 Uhr auf folgender Webseite ab: https://assignments.hci.uni-hannover.de

Geben Sie Ihr Assignment bis zum 19. April 2022 um 23:59 Uhr auf folgender Webseite ab: https://assignments.hci.uni-hannover.de

Ihre Abgabe muss aus einer einzelnen zip-Datei bestehen, die den Quellcode und ggf. ein PDF-Dokument bei Freitextaufgaben enthält. Beachten Sie, dass Dateien mit Umlauten im Dateinamen nicht hochgeladen werden können. Entfernen Sie die daher vor der Abgabe die Umlaute aus dem Dateinamen. Überprüfen Sie nach Ihrer Abgabe, ob der Upload erfolgreich war. Bei technischen Problemen, wenden Sie sich an Patric Plattner oder Dennis Stanke. Es wird eine Plagiatsüberprüfung durchgeführt. Gefundene Plagiate führen zum Ausschluss von der Veranstaltung. In dieser Veranstaltung wird ausschließlich die Java/JavaFX Version 17 verwendet. Code und Kompilate anderer Versionen sind nicht zulässig. Ihre Abgaben sollen die vorgegebenen Dateinamen verwenden. Wiederholter Verstoß gegen diese Regel kann zu Punktabzügen führen.

 

Aufgabe 1: Mergesort (1 Punkt)  Java算法编程代写

In dieser Aufgabe sollen Sie den Sortieralgorithmus Mergesort in Java implementieren. Schreiben Sie Ihren Code in eine Datei namens Mergesort.java in der entsprechenden Mergesort Klasse. Nutzen Sie hier keine Funktionen aus der Standardbibliothek außer die Methoden System.out.print() und System.out.println(). Beispielsweise sollen Sie keine Methoden aus java.util.Arrays benutzen.

a)

Erstellen Sie eine public static void main(String[] args)

Erstellen Sie anschließend eine Methode static String arrayToString(int[] arr), welche den Inhalt eines be-liebigen Integer Arrays als String zurückgibt:

Beispiel:

1 int[] bsp = {1,2,3,4,5};
2 System.out.println(arrayToString(bsp));

Ausgabe:

1 [1, 2, 3, 4, 5]

b)

Implementieren Sie die Methode public static int[] merge(int[] leftArray, int[] rightArray). Diese Methode soll zwei Integer Arrays entgegennehmen und diese aufsteigend sortiert zusammenfügen. Die Eingabearrays werden immer bereits aufsteigend sortiert sein. Die Eingabearrays sollen nicht verändert werden. Sollten Sie Probleme haben einen gutenAlgorithmus dafür zu finden, schauen Sie in die Lösungshinweise am Ende der Aufgabe.

Beispiel:

1 int[] leftList = {1,3,5,7};
2 int[] rightList = {2,4,6,7};
3 int[] result = merge(leftList , rightList);
4 System.out.println(arrayToString(result));

Ausgabe:

1 [1, 2, 3, 4, 5, 6, 7, 7]

c)   Java算法编程代写

Implementieren Sie die Methode public static int[] mergeSort(int[] array). Diese Methodesoll mithilfe des Mergesort Algorithmus eine Liste aufsteigend sortieren. DasEingabearray darf nicht verändert werden. Nutzen Sie dabei die merge Methode aus der vorherigen Teilaufgabe. Der Mergesort Algorithmus funktioniert wiefolgt:

  1. Hat das Eingabearray weniger als zwei Elemente, geben Sie das Eingabearray zurück, Ende der Methode.
  2. Sonst: Teilen Sie das Eingabearray in der Mitte in zwei Arrays auf, die wir hier left und right nennen.
  3. Rufen Sie Mergesort rekursiv auf left und right auf. Wir nennen die Ergebnisse leftSortedund rightSorted
  4. Nutzen Sie merge um leftSorted und rightSorted zusammenzufügen. Geben Sie das Ergebnis davon zurück.

Erstellen Sie drei unsortierte Arrays in der main Methode und sortieren Sie diese mit Ihrer mergeSort Implementierung.

Lösungshinweise Hier finden Sie eine Erklärung für den Mergesort Algorithmus: https://en.wikipedia.org/wiki/Merge_sort

 

Aufgabe 2: Primzahlensieb (1 Punkt)  Java算法编程代写

In dieser Aufgabe sollen Sie das Sieb des Eratosthenes (https://de.wikipedia.org/wiki/Sieb_des_Eratosthenes) implementieren. Wir wenden dabei einen kleinen Trick an, um eine möglichst simple Lösung für das Problem zu implementieren. Schreiben Sie Ihren Code in eine Datei namens Primes.java in der entsprechenden Primes Klasse. Nutzen sie hier keine Funktionen aus der Standardbibliothek ausser die Methoden System.out.print() und System.out.println(). Beispielsweise sollen Sie keine Methoden aus java.util.Arrays benutzen.

a)

Erstellen sie eine public static void main(String[] args)

Erstellen Sie anschließend die Methoden static String intArrayToString(int[] arr) und static String boolArrayToString(boolean[] arr), welche den Inhalt eines beliebigen Integer bzw. Boolean Arrays als String zurückgibt:

Beispiel:

1 int[] bspInt = {1,2,3,4,5};
2 boolean[] bspBool = {true , false , true , false , true};
3 System.out.println(intArrayToString(bspInt));
4 System.out.println(boolArrayToString(bspBool));

Ausgabe:

1 [1, 2, 3, 4, 5]
2 [t, f, t, f, t]

Sie können eine beliebige sinnvolle Darstellung für Booleans verwenden.

b)

Erstellen Sie eine Methode public static boolean[] fillArray(int n). Diese Methode soll einArray der Länge n + 1 zurückgeben, wobei die ersten beiden Elemente false sein sollenund der Rest true.

Beispiel:

1 boolean[] arr = fillArray(10);
2 System.out.println(boolArrayToString(arr));

Ausgabe:

1 [f, f, t, t, t, t, t, t, t, t, t]

c)  Java算法编程代写

Erstellen Sie eine Methode public static void filterArray(boolean[] arr). Diese Methode sollnun den tatsächlichen Algorithmus des Siebs des Eratosthenes anwenden. Dazubehandeln Sie das Eingabearray als die Liste der Zahlen, die wir uns aufgeschrieben  Dabei repräsentiert der Index die aufgeschriebene Zahl und der dazugehörige Wert, ob die Zahl durchgestrichen ist, oder nicht. Sie sollen das Eingabearray verändern.  Als Beispiel würde das Array {false, false, true, true, false, true, false} folgende Zahlenliste bedeuten: [0, 1, 2, 3, 4, 5, 6]

Nutzen Sie den folgenden Algorithmus:

  1. Iterieren Sie solange über das Array, bis Sie eine Zahl finden, die nicht durchgestrichenist (also bis Sie den Wert true finden). Wir nennen die Zahl (also den Index) p. Wenn Sie kein weiteres Element finden, sind Sie fertig.
  2. Streichen Sie alle Vielfachen von p (also setzen Sie die Werte an allen Indizes, dievielfache von p sind, auf false).
  3. Gehen Sie zu Schritt 1 zurück.

Beispiel:

1 boolean[] arr = fillArray(20);
2 filterArray(arr);
3 System.out.println(boolArrayToString(arr));

Ausgabe:

1 [f, f, t, t, f, t, f, t, f, f, f, t, f, t, f, f, f, t, f, t, f]

d)  Java算法编程代写

Erstellen Sie eine Metohde public static int[] primes(int n). Diese Methode soll ein Arrayaller Primzahlen n zurückgeben. Nutzen Sie dazu die Methoden aus den vorherigen Das Array darf nicht größer als die Anzahl an Primzahlen n sein. Hinweis: Um das Ausgabearray der Methode zu erstellen, zählen Sie die Anzahl der trues von dem Ergebnis von filterArray, erstellen Sie ein Integer Array, das so viele Elemente hat und schreiben Sie die Primzahlen in dieses Array.

Beispiel:

1 int[] arr = primes(20);
2 System.out.println(intArrayToString(arr));

Ausgabe:

1 [2, 3, 5, 7, 11, 13, 17, 19]

 

Aufgabe 3: Debugging  Java算法编程代写

Jedes Assignment wird eine Debugging-Aufgabe enthalten. In diesen Aufgaben werden Sie einen fehlerhaften Java Codeabschnitt bekommen. Diese Fehler können syntaktisch oder semantisch sein. Es kann sich dabei um Compiler- oder Laufzeitfehler handeln. Sie dürfen den Code kompilieren und ausführen um die Fehler zu finden. Arbeiten Sie in den Template-Dateien in der Debug01.zip. Diese finden Sie im Stud.IP. Hier nochmal der zu korrigierende Code:

1 ckass Debug {
2    // Methode that checks whether a given number is prime
3    public static boolean isPrime(int n) {
4      // Return false if number is one, zero or negative
5      if (n <= 2) {
6        return false;
7      }
8      // Check for all factors smaller and equal to n/2 whether it is a prime factor.
9      // If it is a prime factor , return false.
10     for (int i = 2; i <= n / 2; i--) {
11       if (n % i == 0) {
12         return true;
13       }
14     }
15     // If no prime factor was found , return true.
16     return true;
17   }
18
19
20   // Method that prints all numbers in an array that are prime
21   public static void printPrime(int[] arr) {
22     for (int i = 0; i <= arr.length; i++) {
23       if (isPrime(arr[i])) {
24         System.out.println(arr[i]);
25       }
26     }
27   }
28
29   int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
30   printPrime(arr);
31
32   // output should be as follows:
33   // 2
34   // 3
35   // 5
36   // 7
37 }

a)  Java算法编程代写

Der Codeabschnitt enthält c.a. 4 Fehler. Kompilieren und führen Sie den Code aus. Suchen Sie anhand der Fehlermeldungen des Compilers oder derLaufzeitfehlermeldungen Fehler im Code und korrigieren Sie diese. Kommentieren Sie am Ende der jeweiligen Zeile, was Sie korrigiert haben.

Erstellen Sie während der Fehlerkorrektur einen Blockkommentar unter dem Code, in dem Sie die Fehler doku mentieren. Schreiben Sie die Zeile(n) des Fehlers auf und beschreiben Sie den Fehler. Kopieren sie die Fehlermeldung, sofern es eine gab, anhand welcher Sie den Fehler erkannt haben. Die Dokumentation soll wie in folgendem Beispiel aussehen:

1 public class Debug { //K: class falsch geschrieben (ckass)
2
3 ...
4
5 /*
6 ...
7 Zeile 1: class Keyword falsch geschrieben (ckass):
8 Fehlermeldung:
9 **************
10 Debug.java:1: error: class , interface , or enum expected
11 public ckass Debug {
12        ^
13 **************
14 Der Compiler erwartet eines der drei oben angegebenen Keywords , hat aber nur das falsch ,geschriebene ckass bekommen.
15 ...
16 */

Im Code vorgegebene Kommentare beschreiben immer das korrekte Verhalten des Programms.

 

Java算法编程代写
Java算法编程代写

 

 

更多代写:C语言网课托管  留学代考  英国网课代上工科   论文summary代写  论文conclusion代写  理工类report代写

合作平台:essay代写 论文代写 写手招聘 英国留学生代写

 

天才代写-代写联系方式