Informatik Aufgaben- Methode erklären?
Hallo,
wir haben momentan im Informatik Unterricht einen Exkurs zur Berechenbarkeit angefangen. Dazu sollen wir nun selbstständig die Aufgaben 1 und 2 auf der Seite bearbeiten. Bei der Aufgabe 2 habe ich keine Probleme, da diese sehr gut lösbar ist. Jedoch komme ich bei Aufgabe 1 nicht weiter, das alleine schon weil ich die Methode nicht verstehe. Habe mir dazu einige Texte usw durchgelesen aber ich komm mit der Methode eif nicht weiter, sodass die Aufgabe dann natürlich nicht lösbar ist. Könnte mir da jemand weiterhelfen?
1 Antwort
Wenn Dir das Rückwärtsdenken bei a) zu schwer fällt, dann mache es vorwärts: Beschreibe den Ablauf der Methode seltsam() für den Fall, daß die Bedingung im if wahr/falsch ist.
Hieraus leitest Du dann die beiden Fälle aus a ab.
if (Bedingung) { # falls wahr }
[else { andernfalls }]
If ist nur eine bedingte Ausführung. Was passiert, wenn im gegebenen Beispiel (seltsam) die Bedingung wahr wird? Was passiert, wenn die Bedingung nicht wahr wird?
Und die Bedingung ist dann, dass der Programmtext anhält? Also wenn der programmtext anhält, während (while) 1==1, ich komm nicht mit. Könntest du mir vllt das ganze für den Fall sagen, dass die Bedingung wahr wird. Dann könnt ich es besser nachvollziehen und den anderen Fall selbst bearbeiten
Also, wenn die Bedingung wahr wird, dann landen wir bei der Endlosschleife und seltsam() kann nicht mehr terminieren. Wann wird die Bedingung wahr? Genau dann, wenn haeltatn() wahr zurückgibt, also sagt, daß der Programmtext anhält.
So, jetzt von hinten nach vorne:
Fall 2, seltsam() terminiert nicht, wenn sie mit dem eigenen Quelltext aufgerufen wird. Damit dies passiert muß die Bedingung des if-statements wahr werden und somit haeltAn() wahr zurückliefern.
Analog machst Du das für den anderen Fall.
-----
Und dann nimmst Du Dir die b) vor. Hast Du Dir schon das mit dem Widerspruchsbeweis durchgelesen?
Achsooo ich denke ich habs! Also für den anderen Fall würde es von vorne heißen seltsam terminiert, wenn sie mit dem eignen Quelltext aufgerufen wird. Dafür muss die if Bedingung falsch sein, also der Programmtext hält in dem Fall nicht an und man ist nicht in einer Endlosschleife gelandet. Und dass schreib ich dann von hinten nach vorne wie du es getan hast, nur halt mit den passenden Punkten dieses Falles. Ist das so korrekt? Und ich denke b würde ich hinbekommen, falls nicht wär es dan n ok wenn ich mich die Tage nochmal melde? Ansonsten vielen Dank, sofern das richtig war hab ich’s endlich verstanden 👍🏻👍🏻👍🏻
Arbeite nochmal an der Formulierung, aber ich denke konzeptionell hast Du es verstanden.
Und im Endeffekt ist b) damit auch schon fast durch, wenn haeltAn() immer funktionieren soll, dann muß es das auch für seltsam(). Und da überlegst Du in Ruhe, wieso das zum Problem wird (hier entsteht der Widerspruch).
Das problem ist ja, dass ich erst gar nicht verstehe was mit der if Methode gemeint ist. Also if hält an, denke mal das soll dann sein falls iwas anhält aber was...? Sorry, kannst du mir da vllt n bisschen mehr erklären, bin sehr lost grade