Codeverständnis SS18.pdf

Exams
Uploaded by Multiplechoice Master 101814 at 2019-06-25
Description:

Angaben ohne Gewähr.

 +2
216
16
Download
Woher weiss ich, dass die Ausgabe M9 ist. Also klar a wird mit 9 zurückgegeben wegen 9 Durchläufen. Aber woran erkenne ich dass mit erste methode (a,b,c) dann genau diese 9 Durchläufe gemeint sind?
woher weiss ich dass e length 7 ist?
wieso nehme ich hier für f(1) sollen eckige klammern sein den ursprünglichen wert 3 und nicht den durch schleife 2 "neu herausgefundenen" wert für f(1)?
woher weiß ich dass y=2 ist?
weil du die werte auf der main übernimmst. int x = 1 int y=2 boolean z=false
müsste das nicht G17,G13,G11,G7, G5,G3 und G2 sein? weil ich gebe doch "G"+ g[i] und nicht "G" + i aus
View 5 more comments
also welche Ausgabe ist dann richtig?
Ist zwar nicht schön, aber es stimmt so. Also wie im Dokument.
Hallo, könnte jemand erklären, wieso a=9 da ist? Bitte!
weil a am Anfang 1 ist und in der oberen for schleife dann immer um 1 erhöht wurde. hat derjenige, ders hochgeladen hat auch daneben geschrieben
a=1 und mit ++ wird es immer um eins erhöht, also 1,2,3,4 usw. aber woher weiß ich, dass es nur bis 9 zählt? Kann mir das bitte jemand erklären?
weil du die Schleife 8 mal durchläufst, also 1+8=9
Wieso ist die letzte Ausgabe A1 und nicht A9? Am Ende von ersteMethode wird ja eigentlich der int wert von a = 9 zurückgegeben?
View 3 more comments
Der Variable a aus der Main Funktion wurde nie ein anderer Wert zugewiesen als 1. Der Aufruf der Methode ersteMethode sorgt nur dafür dass in dieser Methode eine interne Variable angelegt wird(die die Klausurersteller um dich reinzulegen a gennant haben) diese hochgezählt wird und dann an die Stelle wo die Methode aufgerufen wurde ein Wert zurückgegeben wird der in der Methode über diese Variable temporär abgespeichert wurde. Also in diesem Fall wird der Wert in den Text des Systemoutprintln gehangen und mehr nicht. Damit sich der Wert von unsrer Variable a ändert müsste ihr ein neuer Wert zugewiesen werden zb so: a=erstemethode(a, b, c); Das ganze nennt sich Call by Value Prinzip und bedeutet um es kurz zu sagen das in einer Methode nur mit einer temporären Kopie der Variable gerechnet wird. (In diesem Fall bekommt die Methode den Wert von Variable a übergeben und es wird mit int a= x eine neue Variable erstellt die nur für die Methode gilt!)Damit man in einer Methode den Wert einer Variable verändert muss man das über die Adresse einer Variablen machen was hier im Fall der Arrays des häufigeren gemacht wird ( Call by reference). Ich hoffe dir hat die Erklärung geholfen.
Vielen vielen Dank!!
wie komme ich auf diese werte? g ist doch 17 , 13 ...?
View 3 more comments
ja, wurde mir vorhin beantwortet. arrays werden immer neu definiert, return wert nicht notwendig :)
Super danke! Sprich wenn ein Array in einer Methode neu definiert wird, dann bleibt er immer so? (Bis er halt wieder neu definiert wird)
warum mach ich hier z zu true und geb dann trotzdem false aus?
View 4 more comments
Weil z false ist aber durch die Negation wird der ‚Term‘ ‚!z‘ true und dann wird das Programm ausgeführt
ums nochmal ein wenig anders zu erklären: nur weil die Negation von z true ist wird z im eigentlichen Sinne NICHT Verändert. deshalb ist z immer noch false
stimt das hier A1 nicht ! sollte eher A9 sein und auch bei M9 gibt es nicht !!
View 5 more comments
Bin mir nicht 100%sicher.... nur Vermutung 😅
Danke für deine schnelle Antwort.. für mich ist y halt 2 und somit wäre b dann =3
ich hab leider noch immer nicht verstanden, wieso das nicht die erste ausgabe ist?
Hallo Anonyme Badewanne, in diesem System.out.println() willst du etwas ausgeben, das mit einer Methode berechnet wird, daher springst du zunächst in die entsprechende Methode und beginnst dort. Am Ende der Methode ersteMethode hast du einen Rückgabewert, mit dem du das zuvor angesprochene System.out.println() aus der Main-Methode ausgibst,
Danke anonymer kaffeetrinker
hey! könnte mir jemand erklären wieso das "M" hinter die aufgerufene Methode rutscht, obwohl es in der Ausgabe zuvor steht? das wäre sehr nett :)
View 4 more comments
und wieso ist a bei der Antwort danach wieder 1?
also die erste ausgabe ist system.out.println("M" +ersteMethode(...)) - wieso wird das M nach hinten gezogen, anstatt direkt ausgegeben zu werden und dann alles was in der methode passiert. oder kann man das pauschal sagen, dass es immer erst mit der Rückgabe ausgegeben wird wenn eine ausgabe mit einer methode und einem + verknüpft ist? zur frage: danach ist die Ausgabe wieder 1 weil es auf die Variable a in der main methode zurückgreift und nicht auf das a, das in der Methode beschrieben wird.
kann das bitte jemand erklären?
View 6 more comments
So
Zweite for schleife:
No area was marked for this question
Ich hab leider noch nicht ganz verstanden, wieso hier mit "public static int ..." zum ausgeben angefangen wird. Ich dachte es startet bei "public static void main ...."
In der Main-Methode wird die int Methode als erste aufgerufen, weshalb du da anfängst
Woher weiß ich das?
„boolean c“ ist in der Main Methode = false Du rufst diesen boolean in der ersteMethode als boolean z auf Quasi boolean c = false = boolean z