Klausuraufgabe

Status
Nicht offen für weitere Antworten.

Student.

Mitglied
Hallo Zusammen..

Bald ist die Klausur.
Wollte als übung eine aufgabe von der letzen klausur machen, doch :bahnhof:
..


Bedingung f・ Terminierung ?
Variablen: int i, a, b; float x, y;

1. while (i!=0) { x+=2; i--}
2. while (y>0.5f) { x+=y; y*=y}
3. do {x = x*2; i = i/2} while (i!=0)
4. while (true) [x = x+2; i++; if (i==a) break}
 
Zuletzt bearbeitet:

objcler

Aktives Mitglied
Was hast du dir dazu schon überlegt?

Für 1. Die Schleife terminiert nie, falls i vor dem ersten Durchgang < 0 ist.
 

ARadauer

Top Contributor
lustige aufgabenstellung... was ist da genau die Frage? Welche Bedinungen gegeben sein müssen, damit die Schleifen nicht endlos laufen?
 

Schandro

Top Contributor
Für 1. Die Schleife terminiert nie, falls i vor dem ersten Durchgang < 0 ist.
xD doch tut sie. Probiers mal selber aus.
Java:
System.out.println(Integer.MIN_VALUE-1 == Integer.MAX_VALUE);
ergibt true. Liegt dadran, dass das MSB einfach überschrieben wird..

€dit:
1. terminiert auf jeden fall
2. terminiert wenn y < 1
3. terminiert auf jeden fall
4. terminiert auf jeden fall
 
Zuletzt bearbeitet:

Student.

Mitglied
Das wären meine lösungen:

1. i > 0
2. y < 1
3. terminiert nicht. i erreicht 0 nie
4. terminiert nicht. endlosschleife oder
4 terminiert wenn vor schleifeneintritt i < a
 

Schandro

Top Contributor
Das wären meine lösungen:

1. i > 0
2. y < 1
3. terminiert nicht. i erreicht 0 nie
4. terminiert nicht. endlosschleife oder
4 terminiert wenn vor schleifeneintritt i < a

1. Siehe meinen Post oben.
es terminiert immer.

3. i erreicht auf jedenfall 0. i und 2 sind int's.Bei int's wird beim dividieren abgerundet. 1/2==0
es terminiert immer.

4. Integer.MAX_VALUE+1 == Integer.MIN_VALUE
es terminiert immer.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben