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
- Aa[i] ≠ x and i ≦ n
- Bi ≦ n and a[i] ≠ x
- 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.
Weiter: 9 weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)