109.1.. Učitati dvodimenzionalni niz. Ispisati elemente na sporednog dijagonali.

Opis programa: Uvodi se pomoćna varijabla k. Početna vrijednost varijable k je n. Ovim je obezbjeđen ispis poslednjeg u provom redu. Zatim se vrijedno k smanjuje za 1, te se ispisuje u drugom redu ispisuje član sa j = n - 1. Sporedna dijagonala - Elementi a1n, a2n-1, ..., an1  čine sporednu dijagonalu. Suma indeksa sporedne dijagonale je veća za 1 od dimenzije kvadratne matrice-dvodimenzionalnog niza (i+j = n+1). Indeksi elemenata matrice iznad  sporedne dijagonale zadovoljavaju nejednačinu i+j > n+1 a elemente ispod sporedne dijagonale zadovoljavaju nejednačinu i+j < n+1.

Slika 1. Sporedna dijagonala i+j = n+1

Tekstualni algoritam:

  1. dimenzionisati niz
  2. za i = 1 do n radi
    za j = 1 do n radi
    upis i,j-tog člana niza
  3. pomoćna varijabal k = 0
  4. za i = 1 do n radi
    za j = 1 do n radi
    ako je i = j tada ispis i,j-tog člana niza
    povratak na FOR j petlju
  5. k = k - 1
  6. povratak na FOR i petlju

Listing programa:

PROGRAM p10911007;
USES
  WinCrt;
VAR
 i, j, n, k : INTEGER;
  X : ARRAY [1..15,1..15] OF INTEGER;
BEGIN
  WRITE('n (kvadratna matrica) =');
  READLN(n);
  WRITELN('Ulaz niza');
  FOR i := 1 TO n DO  {ulaz}
    FOR j := 1 TO n DO
      BEGIN
        WRITE('X[',i,',',j,']=');
        READLN(X[i,j]);
      END;
  k := n;             {izbor indeksa za ispis}
  FOR i := 1 TO n DO  {izlaz}
    BEGIN
      WRITELN;
      FOR j := 1 TO n DO
        IF j = k THEN
           WRITE(X[i,j]:4)
        ELSE
           WRITE('    ');
      k := k - 1;
    END;
END.

Izvođenje programa:

Index