Überarbeitete Lösungen der Altklausur.pdf

Exams
Uploaded by Anonymous User at 2020-01-30
Description:

Überarbeitete Lösungen der Altklausur

 +4
281
28
Download
Was soll das hier sein?
da muss a[] /a.length stehen
muss man hier nicht return benutzen wenn man was zurückgeben muss
Man soll nur die Signatur angeben, daher wird das return nicht benötigt
Muss das hier stehen bzw. ist das richtig ?
View 2 more comments
Warum macht man das hier nochmal mit return und nicht mit S.o.p?
Weil die methode nicht mit void geschrieben also nicht public static void... sondern mit int also public static int... was heißt dass ein int wert zurückgegeben werden muss
Wieso wird hier sowohl in der Initialisierung als auch in der Anweisung x-- und p=p-20 angegeben während in a) nur in der Anweisung z-- und a=a+2 zu finden sind und beides While-Schleifen sind ?
weil das ist immer so von do while nach while
Wieso wird hier ausgrechnet die 33 als neue Wurzel genommen und nicht z.B die 30 ? Ist dies so festgelegt, dass man immer den Wert unten rechts als neuen Wurzel benutzt ?
Weil Heaps immer Linksvollständig sein müssen. Sprich wenn man das Minimum entfernt wird immer der wert der in der untersten Zeile am weitesten rechts ist in die Wurzel gesetzt.
Was bedeutet das "new" ? Könnte man auch b.length=10 schreiben ?
nein kann man nicht, da wird dann ein Fehler angegeben. Mit dem "new" initialisiert man halt einfach die Länge eines Arrays, so wies hier gemacht wurde.
Alles klar danke :)
Wurde gesagt, ob wir in der Klausur davon ausgehen sollen, dass "0" der 0. Array Index ist und man e somit es immer weglassen soll ?
steht im eine wiki, dass das für heaps so ist
Wird hier die oben angegebene max methode mit int maxa deklariert? Oder wir kann ich es verstehen?
View 7 more comments
"eckigen Klammern sowohl nach dem Elementtyp als auch nach dem Bezeichner angegeben werden können" [1] geht wohl doch. In Einiwiki stand aber halt dass es nach der Klammer kommt Quelle:[1]https://www.dpunkt.de/java/Die_Sprache_Java/Die_Sprachelemente_von_Java/45.html
Mega, danke dir für die Recherche!! Das hat mich bis jetzt echt verwirrt.
wahrscheinlich ne.dumme frage, aber warum muss hier int []a stehen und nicht einfach nur int a?
Die eckigen Klammern bedeuten, dass es sich um ein Array handelt. Kannst du ja mal googeln was das ist. Genauer gesagt ein Array mit integer Werten mit dem Namen a
'maximum aus den zwei int-arrays' mein gott wer lesen kann ist klar im Vorteil! danke :)
Wenn ich die Aufgabenstellung in Eclipse kopiere kommt da nichts raus... muss das so?
Nein, es sollten die Rechenergebnisse für e rauskommen. Guck nochmal ob du alles 1 zu 1 übertragen hast und ob auch deine Main Methode etc. richtig ist.
Die Anderen funktionieren auch alle... oder übersehe ich jetzt einen vollkommen banalen Fehler?
ist int hier richtig oder muss da auch double stehen?
da die gerundete Zahl ausgegeben wird, muss es int sein
Fehlen hier nicht ein paar geschweifte Klammern? Ist es egal, wenn man die einfach weglässt?
View 2 more comments
aber }else{ würde auch stimmen oder ?
die * müsst ihr umschreiben
kann mir jemand erklären warum man das so macht? ich verstehe nicht wie a[i] kleiner als das minimum sein kann, wenn min = a[i] ist
du deklarierst "min" als den ersten eintrag im array und guckst dann ob a[i] (also a[1], a[2], usw) kleiner sind. wenn ja, ist der eintag dann das neue min. a[i] beschreibt ja lediglich nur die position eines wertes im array. z.b a[3]=12.
wie berechnet man das ? vor allem diese 2*f(2,2/2)
Müsste der Rückgabetyp nicht eigentlich double sein? Wenn a z.B. nur 2 und 3 enthalten würde wäre der Durchschnitt ja 2,5 welches sich mit dem Rückgabetypen int nicht darstellen lässt
ja muss double sein
Ist dieser binärer Suchbaum so korrekt ? Auch die Reihenfolge sieht merkwürdig aus.
View 1 more comment
hatten wir das dieses Semester ? ich kenne nur Heaps und binäre bäume
Letzte Vorlesung war das
Wie kommt man auf die Pre-/In-/Post-Order Reihenfolge? Bzw. ist das dieses Jahr überhaupt klausurrelevant? In der Vorlesung und in den Übungen konnte ich dazu nix finden
View 1 more comment
Zur Klausurrelevanz: Habe mit dem Professor einige Worte gewechselt und er meinte, da in der ersten Klausur Listen drankamen ist es jetzt sehr wahrscheinlich, dass im 2. Termin Heaps und suchbäume drankommen.
Zur pre-in-Post order: Da gibt es einen Trick der das ganze sehr viel leichter macht: Bei Preorder alle kreise/Zahlen mit einem Strich nach links versehen (pre=vor). Bei Postorder alle Zahlen mit einem Strich nach rechts makieren (post=nach) und bei inorder den strich nach unten machen. Dann von der Wurzel ausgehend (nach links) so nah wie möglich am Baum eine linie langzeichnen. Zum Schluss nur noch gucken in welcher Reihenfolge die zuvor gemachten striche die linie Kreuzen.
Was kommt hierhin ? Da steht zwar int, aber muss dass nicht Double sein.
bei mir steht da double. double ist richtig
seid ihr euch sicher, dass da double hinkommt, weil es ja nur die länge des Arrays beschreiben soll und nicht den Inhalt. deswegen würde ich int machen. dann hätten wir die Felder 0-9 die dann mit double werten gefüllt werden können.
muss die Zählervariable nicht static sein, damit man ohne Objekt darauf zugreifen kann? In der Aufgabe steht ja auch Klassenvariablen
denk mal drüber nach
ja
No area was marked for this question
Warum hab ich zb bei aufgabe 10 public parkplatz und dann in klammern int anzahl parkplaetze aber bei public int ausparken zb nichts in der klammer stehen
View 1 more comment
ausparken ist eine funktion, welche keine parameter benötigt. Wohingegen "public parkplatz" der konstruktor ist, welcher die Anzahl der zu "produzierenden" Plätze als int wert braucht. Ausparken verringert lediglich die variable "belegt", wofür die funktion keine weiteren Parameter braucht.
Danke dir
Das ist doch nicht richtig, oder?
View 2 more comments
nein ein Heap ist linksvolständig und die Knoten sind nur bei einem Maximum heap größer als die Söhne
ups, hätte mal richtig lesen müssen
Was genau muss da jetzt stehen. Also weshalb char/String ?
View 4 more comments
wenn da zurückgeben steht, musst du gucken was zurückgegeben wird: bei ganzen zahlen int, bei kommazahlen double, bei zeichen char und bei wörtern String.
Deswegen steht String da auch in Klammern, weil technisch gesehen "a" ja auch als String gesehen werden kann. Eben ein String von der Länge1. Aber gefragt wurde denke ich mal nach char, der nur einzelne Zeichen zurückgibt
Ist zwar irrelevant für die Aufgabe, aber das stimmt hier nicht. Die Methode kann nur einen int Wert zurückgeben. Da hier aber versucht wird einen String zurückzugeben, gibt es eine Fehlermeldung
Wie geht man dabei vor?
View 2 more comments
Danke für deine Erklärung jetzt habe ich es verstanden 😊
gerne ;)
kann mir jemand die aufgäbe 6b erklären?
View 4 more comments
verstehe ich iwie nicht :(
Wenn du dir die Lösungen nochmal genau anguckst: Erster Durchlauf: Du hast f(3,2). 3=x und 2=y. Dann gehst du in die Funktion und guckst dir an was in abhängigkeit von y passiert. Für y=2 gilt y ist gerade, d.h. wenn man es durch zwei teilt bleibt kein Rest. also (y%2==0). Deine funktion f(3,2) gibt also raus f(3,2/2)*f(3,2/2)=f(3,1)*f(3,1). Zweiter Durchlauf: Jetzt hast du zwei funktionen f(3,1) die das selbe Schema durchlaufen. 3=x und 1=y. für y=1 ist ja nicht y=0 und 1 ist auch nicht durch 2 teilbar also landest du bei x*f(3,1-1) => f(3,1)=x*f(3,0) und da wir f(3,1)*f(3,1) aus dem vorherigen Durchlauf hatten ergibt das (3*f(3,0))*(3*f(3,0). Dritter Durchlauf: f(3,0) heißt x=3 und y=0. Das entspricht unser ersten bedingung (y==0) d.h. f(3,0) gibt aus 1. Wenn man alles ersetzt wird (3*f(3,0))*(3*f(3,0) zu (3*1)*(3*1)=3*3=9. Da jetzt keine f(x,y) mehr übrig ist wird die Funktion nicht erneut aufgerufen und du bist fertig.
ist das bei Aufgabe 4c nicht so ,dass man bei der for schleife die n=7; auch in die for schleife rein schreiben muss? weil n ist ja auch als Bedingung gegeben.
View 1 more comment
wie verstehe ich nicht
n wird innerhalb der while schleife ja nicht verändert. n wird vorher initialisiert und als zusätzliche bedingung überprüft aber die schleife läuft über b als Zähler nicht n, d.h. n bleibt ja bei jedem Durchlauf der schleife gleich.
Wieso müssen wir unseren Methoden die Werte plaetze und belegt nicht übergeben?
wenn du die Methode aufrufst willst du ja nicht die Plätze und belegt angeben, die sind ja in der Klasse als Variable für deinen Parkplatz "fest". Mal ohne die ganzen Fachbegriffe, sag Bescheid, wenn du es mit möchtest ;-)
p=p-20 ist die lösung so richtig oder muss man p nur unter while schreiben
beide Male
danke