Frage Hausuebung 1 bei Aufgabe 1.b

Juri
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 13. Mär 2007 10:48

Frage Hausuebung 1 bei Aufgabe 1.b

Beitrag von Juri »

Warum ignoriert das Verifun Programm wenn ich folgendes versuche, also die Fkt ggT hat dann die Farbe grau.

if b = 0
dann a
ansonsten ggT(b, modulo-rechnen(a, b)) und hier an der Zeile glaube ich ist das Problem.

wobei modulo-rechnen eine Funktion ist, die a modulo b berechnen soll. Die nimmt zwei natuerliche Zahlen als Parameter und gibt eine natuerliche Zahl zurueck.

Bei der Funktion modulo-rechnen passiert es auch, aber bei ggT war es einfacher zu erklaeren, das die Fkt kleiner ist. Die Fkt modulo-rechnen funktioniert, da ich dasselbe zur Sicherheit in Java programmiert habe und es tut was es soll.
Zuletzt geändert von Juri am 15. Nov 2008 19:00, insgesamt 1-mal geändert.

FeG
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 182
Registriert: 6. Dez 2007 07:01

Re: Frage Praktikum 1 bei Aufgabe 1.b

Beitrag von FeG »

Hi,

ich habe ein ähnliches Problem, allerdings habe ich ggT mit dem klassischen euklidischen Algorithmus implementiert. Die Funktion "minus" ist grün, die Implementierung von ggT allerdings grau. Diese Implementierung verwendet die Funktion "minus" wie in diesem Pseudocode.

Offensichtlich fehlt Verifun da noch ein Hinweis, damit es die Terminierung von ggT zeigen kann - die Frage ist nur, welcher :roll:. Hat jemand eine Idee?

Gruß
FeG

Juri
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 13. Mär 2007 10:48

Re: Frage Hausuebung 1 bei Aufgabe 1.b

Beitrag von Juri »

Hey,

danke erstmal fuer den Hinweis auf die Wiki-Seite wo der Algorithmus war. Ich habe versucht den mit modulo zu machen, modulo habe ich geschafft aber ggT nicht mehr.

Jetzt aber zu unseren ggT.
1. du musst auch den Fall betrachten was macht er wenn a = 0 ist? Und wenn du noch dir den Fall ueberlegst dann hat das sich erledigt.

gruss,
juri

Benutzeravatar
mba
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 260
Registriert: 13. Jul 2007 19:16

Re: Frage Hausuebung 1 bei Aufgabe 1.b

Beitrag von mba »

Wenn es bei dir immer noch grau bleibt und du den Algo. 1 : 1 aus der Wiki abgetippt hast, dann liegt es an deiner minus Funktion. War zumindest bei mir so der Fall.
»Es ist noch kein Meister vom Himmel gefallen«
Wenn doch, wär er jetzt tot.
Bild

Christoph Walther
Dozentin/Dozent
Beiträge: 86
Registriert: 1. Nov 2005 18:51

Re: Frage Hausuebung 1 bei Aufgabe 1.b

Beitrag von Christoph Walther »

Juri hat geschrieben:Warum ignoriert das Verifun Programm wenn ich folgendes versuche, also die Fkt ggT hat dann die Farbe grau.
Jedes programmelement besitzt einen zustand. Die zustände werden durch die farben angezeigt. Farbe "grau" eines prozeduricons bedeutet, daß die prozedur im zustand "ignored" ist (s. 'Legend' im ?-menue). Die bedeutung der zustände ist in http://www.inferenzsysteme.informatik.t ... Oct-02.pdf erklärt (s. Program\Status of Program Elements).

Wenn eine prozedur im zustand "ignored" ist, so wurden entweder (1) für diese prozedur keine terminierungshypothesen erzeugt oder aber (2) im rumpf der prozedur werden prozeduren aufgerufen deren terminierung noch nicht bewiesen wurde (zustand =/ "verfied", also prozeduricon =/ "grün"). Man stellt fest ob (1) zutrifft, indem man Program\Set Termination auf die prozedur anwendet. Damit wird das "Termination Window" geöffnet - findet man dort unter "Termination Hypotheses" keine einträge, so trifft fall (1) zu. In diesem fall haben Sie Ihre prozedur fehlerhaft oder zu umständlich programmiert (das gilt nicht immer, aber für die prozeduren der aufgabe bestimmt).

Fall (2) erkennt man indem man die prozedur selektiert und im Program Viewer den reiter "Usage" wählt. Findet man dort unter "Uses" ein proceduricon mit zustand =/ "verfied", so sollten Sie sich erst mal um die terminierung dieser prozedur kümmern. Auch hier gilt, daß Sie diese prozedur wohl fehlerhaft oder zu umständlich programmiert haben (das gilt nicht immer, aber für die prozeduren der aufgabe bestimmt).

cw.

Antworten

Zurück zu „Archiv“