Grundlagen der Programmierung (Pseudocode nachverfolgen)

Die folgende for-Schleife erhöht ihre Laufvariable jeweils um 5. Welchen Wert hat c nach der Ausführung?

integer: c ← 0
for (i from 10 to 50 step 5)
  c ← c + 1
endfor
  1. A8
  2. B9
  3. C10
Antwort und Erläuterung anzeigen

Antwort: B. 9

i nimmt die Werte 10, 15, 20, 25, 30, 35, 40, 45 und 50 an; der nächste Wert 55 überschreitet den Endwert 50, daher endet die Schleife. (50 − 10) ÷ 5 = 8 ist die Zahl der Abstände dazwischen, und die Zahl der Werte einschließlich beider Enden 10 und 50 beträgt 8 + 1 = 9; der Rumpf läuft also 9-mal. Wie beim Zaunpfahlproblem führt eine Verwechslung der Zahl der Abstände mit der Zahl der Punkte zu einem Off-by-one-Fehler.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. Im folgenden Programm wertet and seine rechte Seite nicht aus, wenn die linke Seite false ist (Kurzschlussauswertung). cnt ist eine globale Variable. Welchen Wert hat cnt nach der Ausführung des Programms?
  2. Das folgende Programm sucht im Array a mit n Elementen den Wert x und speichert den Index, an dem er gefunden wird, in i. Die Array-Indizes beginnen bei 1. and und or werten ihre rechte Seite nicht aus, wenn die linke Seite allein das Ergebnis festlegt. Welche Bedingung an der Stelle von 【a】 liest a[n + 1] außerhalb des Arrays, wenn x nicht in a enthalten ist?
  3. Reelle Werte werden im Format IEEE 754 mit doppelter Genauigkeit (binary64) dargestellt, und jede Summe wird auf den nächstgelegenen darstellbaren Wert gerundet. Welchen Wert hat c, nachdem das folgende Programm ausgeführt wurde?
  4. Die Klasse Counter gibt jeder Instanz eine eigene ganzzahlige Membervariable count (beim Erzeugen 0), und ihre Methode inc() addiert 1 zum eigenen count. Welchen Wert hat x, nachdem das folgende Programm ausgeführt wurde?
  5. Die Klasse Counter gibt jeder Instanz eine eigene ganzzahlige Membervariable count (beim Erzeugen 0), und ihre Methode inc() addiert 1 zum eigenen count. Eine Variable vom Typ Counter enthält eine Referenz auf eine Instanz, nicht die Instanz selbst. Welchen Wert hat x, nachdem das folgende Programm ausgeführt wurde?