Положительные элементы главной диагонали

Задача

Найти положительные элементы главной диагонали квадратной матрицы.

Пояснение к задаче и алгоритм решения

Диагонали выделяют только в том случае, если матрицы квадратные, то есть количество строк равно количеству столбцов. Элементы главной диагонали имеют индексы [1,1], [2,2], ... [N,N] (при условии индексации с единицы).

Поскольку первый индекс равен второму, то, перебирая матрицу в цикле, при обращении к элементам главной диагонали достаточно использовать одну переменную счетчик (например, i): имя_массива[i,i].

Если очередной элемент диагонали больше нуля, то выводим его на экран.

Исходный код на языке программирования Pascal

const
    N = 10;
var
    arr: array[1..N,1..N] of integer;
    i,j: byte;
begin
    randomize;
    for i:=1 to N do begin // просто заполнение матрицы
        for j:=1 to N do begin
            arr[i,j] := random(100) - 50;
            write(arr[i,j]:4);
        end;
        writeln;
    end;
    writeln;
    for i:=1 to N do // решение задачи
        if arr[i,i] > 0 then
           write(arr[i,i]:4);
    writeln;
end.

Пример(ы) выполнения программы на языке Pascal

 -27 -12  37 -33   4 -44  44   5  21 -11
 -46 -18   2   2  31 -36  47 -33 -11  41
 -12  47  41  14  25  26   6  22  49 -48
 -22  -7 -25  49 -13 -26  13  31 -15 -11
  -5  30  31 -26 -48  26  44   1 -49  -4
  22 -49  18 -20  -5 -25   0  -8  16 -19
 -21  -5  30 -14  27 -35 -34  42  39  21
  -2 -24  19 -48 -13   2 -35  44  -1  14
 -47  45 -21  29  17  -9  27 -38  25   7
  47 -20 -45 -22 -36 -43  12   5  40 -22

  41  49  44  25

Исходный код на языке программирования C

#include <stdio.h>
#define N 10
main() {
    int a[N][N], i, j;
    srand(time(NULL));
    for (i=0; i<N; i++) {
        for (j=0; j<N; j++) {
            a[i][j] = rand()%100 - 50;
            printf("%4d", a[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    for (i=0; i<N; i++)
        if (a[i][i] > 0) {
            printf("%4d", a[i][i]);
        }
    printf("\n");
}

Исходный код на языке программирования Python

from random import random
N = 10
a = []
for i in range(N):
    z = []
    for j in range(N):
        n = int(random() * 100) - 50
        z.append(n)
        print("%4d" % n, end='')
    print()
    a.append(z)
print()
 
for i in range(N):
    if a[i][i] > 0:
        print("%4d" % a[i][i], end='')
print()

Исходный код на языке программирования КуМир

алг полож элем диаг
нач
    цел N=10
    цел таб a[1:N,1:N]
    цел i, j
    нц для i от 1 до N
         нц для j от 1 до N
              a[i,j] := int(rand(0,100)) - 50
              вывод a[i,j]:4
         кц
         вывод нс
    кц
    вывод нс

    нц для i от 1 до N
        если a[i,i] > 0 то
            вывод a[i,i], " "
        все
    кц
    вывод нс
кон

Исходный код на языке программирования Basic

N = 10
dim a(N,N)
for i=0 to N-1
    for j=0 to N-1
        a[i,j] = int(rand*100)-50
        print a[i,j]+" ";
    next j
    print
next i
print
 
for i=0 to N-1
     if a[i,i] > 0 then print a[i,i] + " ";
next i

Тема

Матрицы

Уровень сложности

Простой

Дата публикации