Basis van programmeren (pseudocode traceren)

Het volgende programma zoekt de waarde x in de array a met n elementen en zet de index waar die wordt gevonden in i. Array-indexen beginnen bij 1. and en or evalueren hun rechterkant niet als de linkerkant alleen het resultaat al bepaalt. Welke voorwaarde op de plaats van 【a】 leest a[n + 1], buiten de array, als x niet in a voorkomt?

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)
Antwoord en toelichting tonen

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

Als x niet in a voorkomt, groeit i tot n + 1 en wordt daarna de voorwaarde getest. In i ≦ n and a[i] ≠ x is de linkerkant i ≦ n false, dus a[i] aan de rechterkant wordt niet geëvalueerd en er wordt niets buiten de array gelezen. In not (i > n or a[i] = x) staat de uitkomst van or vast zodra i > n true is, dus ook daar wordt a[i] niet geëvalueerd. a[i] ≠ x and i ≦ n evalueert eerst a[n + 1]. Wie op kortsluitevaluatie vertrouwt, zet de bereikcontrole aan de linkerkant.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. Reële waarden worden voorgesteld in IEEE 754 dubbele precisie (binary64), en elke som wordt afgerond naar de dichtstbijzijnde voorstelbare waarde. Wat is de waarde van c nadat het volgende programma is uitgevoerd?
  2. De klasse Counter geeft elke instantie een eigen variabele count van het type integer (een lidvariabele, 0 bij het aanmaken), en haar methode inc() telt 1 op bij de eigen count. Wat is de waarde van x nadat het volgende programma is uitgevoerd?
  3. De klasse Counter geeft elke instantie een eigen variabele count van het type integer (een lidvariabele, 0 bij het aanmaken), en haar methode inc() telt 1 op bij de eigen count. Een variabele van het type Counter bevat een verwijzing naar een instantie, niet de instantie zelf. Wat is de waarde van x nadat het volgende programma is uitgevoerd?
  4. In het volgende programma zijn twee toekenningen geschreven met de bedoeling de waarden van x en y te verwisselen. Welke waarden hebben x en y nadat het is uitgevoerd?
  5. Het volgende programma schuift waarden door over drie variabelen. Welke waarden hebben a, b en c nadat het is uitgevoerd?