Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

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

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

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.

Damn: Off-by-one

Wenn der letzte Durchlauf (Division durch 0, bzw. durch 1) nicht richtig ist, kann es auch Probleme mit dem ersten geben.

@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.


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}


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;)

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.