Daniel's Tech Blog

Cloud Computing, Cloud Native & Kubernetes

5. AP 2 Praktikum

Die Aufgabenblätter sind hier zu finden: http://www.gm.fh-koeln.de/~ehses/ap/index.html

Bevor ihr euch die Lösungen anschaut eines vorweg: Die Lösungen dieses Praktikums dienen wirklich nur zum Vergleich oder als Hilfestellung, wenn irgendwo etwas noch hapern sollte im Programmcode.
Ihr müsst, um das Praktikum bestehen zu können, den Zusammenhang der einzelnen Klassen untereinander sowie die Sortier- und Suchalgorithmen verstanden haben und auch mit eigenen Worten im Praktikum erklären können!

Aufgabe 2a:

ConsoleLogger.java:

public final class ConsoleLogger extends AbstractLogger{
protected void logMsg(String msg, int level) {
System.out.println(composeLogMsg(msg, level));
}

public void close() {
System.out.close();
}
}

FileLogger.java:

import java.io.*;

public final class FileLogger extends AbstractLogger{
private PrintStream uebergabe;

public FileLogger(String string) throws FileNotFoundException {
uebergabe = new PrintStream(new FileOutputStream(string));
}

protected void logMsg(String msg, int level){
uebergabe.println(composeLogMsg(msg, level));
}

 public void close() {
System.out.close();
}
}

Aufgabe 3b:

MyArrays.java:

static void merge(int[] src, int[] dest, int lo, int mid, int hi) {
Log.info(“src :”+arrayToString(src, lo, mid, hi));
int end_lo=mid;
int start_hi=mid;
int srclo=lo;
int destlo=lo;

 while(srclo < end_lo && start_hi < hi){
 if(src[srclo]<src[start_hi]){
dest[destlo++]=src[srclo++];
 }
else{
    dest[destlo++]=src[start_hi++];
}
 }
while(srclo<end_lo){
dest[destlo++]=src[srclo++];
}
while(start_hi<hi){

dest[destlo++]=src[start_hi++];
 }
Log.info(“dest:”+arrayToString(dest, lo, mid, hi));
}
//Hier noch ein dickes Dankeschön an meinen Kommilitonen für den Hinweis, dass noch eine Variable fehlte! Er weiß wer gemeint ist. 😉

public static int binSearch(int[] feld, int x) {
int start = 0;
int end = feld.length;
int middle = (start+end)/2;

 while(start<end && feld !=null){
Log.info(arrayToString(feld, start, middle, end));
 if(x==feld[middle]){
Log.info(“found at ” + middle);
return middle;
 }
else if(x<feld[middle]){

end = middle;
 }
else {

start = middle+1;
 }
middle = (start+end)/2;
 }
Log.info(“not found, return value = ” + -(middle+1));
return -(middle+1);
}


Posted

in

WordPress Cookie Notice by Real Cookie Banner