AbiAb Geschrieben 2. Juni 2009 Geschrieben 2. Juni 2009 Hallo! Ich studiere in Mannheim Wirtschaftspädagogik (Bachelor) und habe das Modul Wirtschaftsinformatik mit Wifo I und Wifo II. Leider bin ich net soo der Proo in Informatik. Und bei dem Thema Terminierung/Terminiertheit komme ich nicht ganz klar... Ich habe hier mal eine Aufgabe : http://www.bilder-space.de/show.php?file=02.06MVYGLiYAlFDLlKf.JPG Als was man sofort siehtm, ist ja , dass durch dieses k<0 und x = 0-k das k bei negativen Werten immer Positiv wird. Ab diesem x = 0-k gehen Werte für X (0,1,2,3,4,5) nicht mehr in die Schleife rein --> Return Res! Terminiert heißt ja, dass er nach einer bestimmten ANzahl von Schritten zu einem Ergebnis kommt. Nur weiss ich jetzt nicht genau, für welche K's jetzt genau terminiert wird. Wäre sehr froh über Hilfe! Zitieren
flashpixx Geschrieben 2. Juni 2009 Geschrieben 2. Juni 2009 Es terminert für alle k in N und die math. Funktion dazu lautet: f(x) = |k|-5 für |k| > 5 und 0 für |k| <= 5 Phil P.S.: Ich hoffe ich hab es auf die Schnelle korrekt gesehen Zitieren
AbiAb Geschrieben 2. Juni 2009 Autor Geschrieben 2. Juni 2009 Es terminert für alle k in N und die math. Funktion dazu lautet: f(x) = |k|-5 für |k| > 5 und 0 für |k| <= 5 Phil P.S.: Ich hoffe ich hab es auf die Schnelle korrekt gesehen Vielen Dank für deine schnelle Antwort! Kannst du mir auch kurz erklären, wie du auf dieses ,,f(x) = |k|-5 für |k| > 5 und 0 für |k| <= 5'' kommst? Da bei k < = 5 das k eben nicht größer als 5 ist, geht man zwar in die IF-Schleife aber nicht in die While-Schleife rein und bekommt deshalb return res = 0 ? Also wissen wir bei k< = 5 --> 0 Aber dann müsste man doch bei X Werten ab -6 in beiden Schleifen kommen. If k< 0 --> trifft zu bei x=k = -6 X = 0 - k --> X = 0- - 6 = 6 While X> 5 --> trifft zu weil X = 6 Und wie kommst du auf : f(x) = |k|-5 für |k| > 5 ?? Und wieso muss man sagen: Es wird für alle K terminiert, wenn man bei manchen k in die Schleife geht und bei manchen nicht? ciao Zitieren
flashpixx Geschrieben 2. Juni 2009 Geschrieben 2. Juni 2009 Bitte benutze die Quotefunktion des Forum um richtig zu zitieren ! Da bei k < = 5 das k eben nicht größer als 5 ist, geht man zwar in die IF-Schleife aber nicht in die While-Schleife rein und bekommt deshalb return res = 0 ? Was bitte ist eine If-Schleife if-schleife.de Schau Dir einmal die Einrückung an und da es sich anscheinend um Javacode handelt, solltest Du auch diesen lesen können. Deine Vermutung ist falsch. Und wieso muss man sagen: Es wird für alle K terminiert, wenn man bei manchen k in die Schleife geht und bei manchen nicht? Deine Funktion terminiert für alle k aus dem Zahlenbereich int Phil Zitieren
AbiAb Geschrieben 3. Juni 2009 Autor Geschrieben 3. Juni 2009 allo AbiAb und willkommen auf dem MP smile Der Algo kann ja nur dann nicht terminieren, wenn die while-Schleife nicht verlassen wird. Sie wird aber in jedem Fall verlassen, da innerhalb der Schleife x immer um 1 dekrementiert wird und die Bedingung x <= 5 daher irgendwann erfüllt ist - unabhängig davon, welchen Wert x vor dem Betreten der Schleife hatte (es ist also egal, welche Anweisungen vor der Schleife stehen). Ähm kann ich denn sagen: Ein Algorithmus wird terminiert, wenn die While-Schleife verlassen wird! Und da innerhalb der Schleife x immer um 1 abnimmt und daher x<5 irgendwann erfüllt ist, wird sie verlassen und daher terminiert! Kann ich allein nur diese Aussage darauf schließen, dass dieser alg dann für alle k's terminiert? ciao Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.