Grundlagen der Programmierung (Pseudocode nachverfolgen)

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?

integer: i ← 1
while (【a】)
  i ← i + 1
endwhile
  1. Aa[i] ≠ x and i ≦ n
  2. Bi ≦ n and a[i] ≠ x
  3. Cnot (i > n or a[i] = x)
Antwort und Erläuterung anzeigen

Antwort: A. a[i] ≠ x and i ≦ n

Ist x nicht in a enthalten, wächst i bis n + 1, und dann wird die Bedingung geprüft. Bei i ≦ n and a[i] ≠ x ist die linke Seite i ≦ n false, daher wird a[i] auf der rechten Seite nicht ausgewertet, und außerhalb des Arrays wird nichts gelesen. Bei not (i > n or a[i] = x) steht das Ergebnis von or fest, sobald i > n true ist; a[i] wird also ebenfalls nicht ausgewertet. a[i] ≠ x and i ≦ n wertet zuerst a[n + 1] aus. Wer sich auf die Kurzschlussauswertung verlässt, schreibt die Bereichsprüfung auf die linke Seite.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. 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?
  2. 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?
  3. 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?
  4. Mit den beiden Zuweisungen im folgenden Programm sollten die Werte von x und y vertauscht werden. Welche Werte haben x und y nach der Ausführung?
  5. Das folgende Programm reicht Werte über drei Variablen weiter. Welche Werte haben a, b und c nach der Ausführung?