Grundlagen der Programmierung (Pseudocode nachverfolgen)

m[i, j] ist das Element in Zeile i und Spalte j des zweidimensionalen Arrays m, und die Indizes beginnen bei 1. Welchen Wert hat s, nachdem das folgende Programm ausgeführt wurde?

2D integer array: m ← {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
integer: s ← 0
for (i from 1 to 3 step 1)
  for (j from 1 to i step 1)
    s ← s + m[i, j]
  endfor
endfor
  1. A15
  2. B26
  3. C34
Antwort und Erläuterung anzeigen

Antwort: C. 34

Jedes innere {…} ist eine Zeile. j läuft von 1 bis i; Zeile 1 trägt also m[1, 1] = 1 bei, Zeile 2 trägt 4 + 5 und Zeile 3 trägt 7 + 8 + 9 bei, sodass s = 1 + 9 + 24 = 34 gilt. Das ist die Summe der Diagonale und der Elemente darunter (untere Dreiecksmatrix). Werden Zeilen und Spalten als m[j, i] verwechselt, wird stattdessen das obere Dreieck addiert: 1 + 2 + 5 + 3 + 6 + 9 = 26.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. Das folgende Programm kopiert die Elemente des zweidimensionalen Arrays m mit 4 Zeilen und 5 Spalten in das Array b mit 20 Elementen. m[i, j] ist das Element in Zeile i und Spalte j, und die Indizes beginnen bei 1. An welchem Index von b wird m[3, 2] gespeichert?
  2. Die Array-Indizes beginnen bei 1, und + verkettet Zeichenketten. Welchen Wert hat r, nachdem das folgende Programm ausgeführt wurde?
  3. Die folgende Funktion isPal gibt true zurück, wenn die Zeichen im Zeichenketten-Array s vorwärts und rückwärts gelesen gleich sind (ein Palindrom). Die Array-Indizes beginnen bei 1. Was gehört an die Stelle von 【a】 im Programm?
  4. ÷ ist die Division; wird das Ergebnis einer ganzzahligen Variablen (auch einem Funktionsargument) zugewiesen, wird der Nachkommaanteil abgeschnitten. Was gibt die folgende Funktion f beim Aufruf f(9087) zurück?
  5. ÷ ist die Division; wird das Ergebnis einer ganzzahligen Variablen (auch einem Funktionsargument) zugewiesen, wird der Nachkommaanteil abgeschnitten. Was gibt die folgende Funktion toBin beim Aufruf toBin(12) zurück?