Triple-H Geschrieben 29. April 2011 Geschrieben 29. April 2011 Hallo zusammen, ich habe ein kleines Problemchen mit folgender Aufgabe (Aufgabe 6+7) Der folgende Algorithmus soll in einer Schleife die Zahl 10 hintereinander durch die Zahlen 10, 9, 8 usw. dividieren. Da eine Division durch 0 mathematisch nicht definiert ist, soll die letzte Division durch den Wert 1 erfolgen. Zahl1 = 10; Solange Zahl1 >=0 { Verringere Zahl1 um den Wert 1 Dividiere 10 durch Zahl 1 Gib das Ergebnis aus} Der Algorithmus weist einen groben und einen eher kleinen Fehler auf. Meiner Meinung nach muss erst mal die Zahl von 0 auf 1 gesetzt werden und die geschwungene Klammer ein Absatz nach unten, oder?!?! Können Sie beide Fehler in dem Algorithmus mit einem C1-Test feststellen? Begründen Sie bitte die Antwort. Da habe ich keinen blassen Schimmer. Wäre toll, wenn mir hier jemand helfen könnte!!! Viele Grüße Triple-H Zitieren
a3quit4s Geschrieben 29. April 2011 Geschrieben 29. April 2011 Ich gebe dir einen Tipp: Die Klammer ist keiner der Fehler, wo die steht ist voellig egal. Der folgende Algorithmus soll in einer Schleife die Zahl 10 hintereinander durch die Zahlen 10, 9, 8 usw. dividieren Denk mal drueber nach was innerhalb der Schleife passiert. Zitieren
Klotzkopp Geschrieben 29. April 2011 Geschrieben 29. April 2011 C1-TestWas soll das sein? Meinst du vielleicht CI? Zitieren
Bjarki Geschrieben 29. April 2011 Geschrieben 29. April 2011 Was soll das sein? Meinst du vielleicht CI? und was ist ein CI Test? Zitieren
Torsten Hündling Geschrieben 29. April 2011 Geschrieben 29. April 2011 Hallo, ich rate mal einfach, dass durch ein Leerzeichen mehr oder weniger die Semantik des Programms ziemlich unterschiedlich sein kann. Damit ergibt sich dann der Unterschied von einer Variablen zu einer Konstanten. Und dann denke ich mal, dass der Test hier Confidence Intervall (CI) ist. Tipp: Damit kann man den Fehler herausfinden. Viele Grüße, Torsten Zitieren
Triple-H Geschrieben 29. April 2011 Autor Geschrieben 29. April 2011 Nein, hier geht es wirklich um den C1-Test. Das ist die Kantenüberdeckung. @a3quit4s: Ich denke, dass es lauten muss Zahl1 >=2, da ja diese Zahl noch mit 1 subtrahiert wird?!?! Zitieren
Torsten Hündling Geschrieben 29. April 2011 Geschrieben 29. April 2011 Okay: Kantenüberdeckungstest. Soviele Kanten gibt es ja nicht in dem Pseudocode Aber können wir uns drauf einigen, dass "Zahl1" etwas anderes ist als "Zahl 1" Dabei kommen dann nämlich unterschiedliche Sachen bei raus. Dass die Schleife nicht zum richtigen Zeitpunt terminiert, ist richtig. 2 sollte damit auch der Wert sein, damit die Schleife das macht, was sie soll. Torsten Zitieren
addiks Geschrieben 29. April 2011 Geschrieben 29. April 2011 Dass die Schleife nicht zum richtigen Zeitpunt terminiert, ist richtig. 2 sollte damit auch der Wert sein, damit die Schleife das macht, was sie soll. Es fehlt aber immer noch etwas. Ließ nochmal was a3quit4s geschrieben hat. Zitieren
Triple-H Geschrieben 29. April 2011 Autor Geschrieben 29. April 2011 oh ja, da habe ich mich vertippt. Sorry!!! Zitieren
Torsten Hündling Geschrieben 29. April 2011 Geschrieben 29. April 2011 Wenn der letzte Durchlauf (Division durch 0, bzw. durch 1) nicht richtig ist, kann es auch Probleme mit dem ersten geben. Zitieren
addiks Geschrieben 29. April 2011 Geschrieben 29. April 2011 @Torsten Hündling & @Tripple-H: könntet ihr bitte nochmal posten wie eurer Meinung nach die korrekte Lösung aussieht? Ich bin gerade etwas durcheinander was ihr meint. Zitieren
Torsten Hündling Geschrieben 29. April 2011 Geschrieben 29. April 2011 Zahl1 = 11; Solange Zahl1 >=2 { Verringere Zahl1 um den Wert 1 Dividiere 10 durch Zahl1 Gib das Ergebnis aus} oder Zahl1 = 10; Solange Zahl1 >=1 { Dividiere 10 durch Zahl1 Verringere Zahl1 um den Wert 1 Gib das Ergebnis aus} Zitieren
vercetty Geschrieben 29. April 2011 Geschrieben 29. April 2011 Zahl1 = 11; Solange Zahl1 >=2 { Verringere Zahl1 um den Wert 1 Dividiere 10 durch Zahl1 Gib das Ergebnis aus} oder Zahl1 = 10; Solange Zahl1 >=1 { Dividiere 10 durch Zahl1 Verringere Zahl1 um den Wert 1 Gib das Ergebnis aus} Ich wollte schon sagen...mit dem oben geschriebenen Code dividierst du im ersten Durchlauf 10 durch 9, da die erste Anweisung in der Schleife die Zahl1 um den Wert 1 verringert. So ist es richtig;) Zitieren
itazubi Geschrieben 29. April 2011 Geschrieben 29. April 2011 ZweigÄuberdeckungstest Eigenschaften ² auch C1-Test genannt ² verlangt AusfÄuhrung aller Zweige (Kanten) oder einer zuvor festgelegten Mindestquote ÄUberdeckung = # durchlaufene Zweige # Zweige ¢ 100% ² festhalten, welche Zweige bei welchem Testfall durch- laufen werden sollen, um Abweichungen im Ablauf fest- stellen zu kÄonnen ² niedrige Quote: 34% der Fehler werden entdeckt ² Erfolgsquote ist hÄoher als bei statischer Analyse ² fehlende Zweige werden nicht direkt entdeckt Quelle: http://lionel.kr.hs-niederrhein.de/~rethmann/sof06/sof03.pdf 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.