Veröffentlicht 29. April 201114 j 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
29. April 201114 j 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.
29. April 201114 j 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
29. April 201114 j Autor 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?!?!
29. April 201114 j 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
29. April 201114 j 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.
29. April 201114 j Wenn der letzte Durchlauf (Division durch 0, bzw. durch 1) nicht richtig ist, kann es auch Probleme mit dem ersten geben.
29. April 201114 j @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.
29. April 201114 j 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}
29. April 201114 j 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;)
29. April 201114 j 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.