Задача - Обмен значений главной и побочной диагоналей квадратной матрицы - программирование на разных языках

Задача — Обмен значений главной и побочной диагоналей квадратной матрицы — программирование на разных языках

Задачи по программированию с решением для школьников
Want create site? Find Free WordPress Themes and plugins.

Задача — Обмен значений главной и побочной диагоналей квадратной матрицы
— программирование на Pascal, Си, Кумир, Basic-256, Python

В квадратной матрице 10×10 обменять значения элементов в каждой строке, расположенные на главной и побочной диагоналях.

Диагонали можно выделить лишь в квадратной матрице (когда количество строк равно количеству столбцов). Главная диагональ идет из верхнего левого угла в правый нижний, а побочная — из правого верхнего в левый нижний. Таким образом элементы главной диагонали имеют равные индексы строки и столбца, а у побочной — противоположные.

Поскольку обмен происходит в одной строке, то значения подлежащие обмену имеют следующие индексы:

  • у элемента главной диагонали — первый и второй индексы равны друг другу (i = j),
  • у элемента побочной диагонали — первый индекс равен i, а второй N-j+1 (при индексации с единицы) или N-1-j (при индексации с нуля).

При проходе по матрице обмен значений происходит лишь в том случае, когда i = j.

Pascal

const
N = 10;
var
arr: array[1..N,1..N] of byte;
i,j,a: byte;
begin
randomize;
for i:=1 to N do begin
for j:=1 to N do begin
arr[i,j] := random(100);
write(arr[i,j]:4);
end;
writeln;
end;
writeln;
for i:=1 to N do
for j:=1 to N do
if i = j then begin
a := arr[i,j];
arr[i,j] := arr[i,N-j+1];
arr[i,N-j+1] := a;
end;

for i:=1 to N do begin
for j:=1 to N do
write(arr[i,j]:4);
writeln;
end;
end.

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

   79   9  84   8  78  80  57  26   0   8   54  20  58  31  85  85   9  99  94  18   32  42  56  43  64  41  76  38  68   2   98  15  27  11  28  52   9  76  19  79   51  18  44  89  97  18  22  64  12   4    3  58  43  70  95  68  79  82  33  32   33  91  66  32  43   6  43  97  62   6   57  11  78  58  24   8  79  30  71  77   81  16  99  59  55  95  51  12   3  20   93  90  55  57   7  83  99  66  94  51      8   9  84   8  78  80  57  26   0  79   54  94  58  31  85  85   9  99  20  18   32  42  38  43  64  41  76  56  68   2   98  15  27   9  28  52  11  76  19  79   51  18  44  89  18  97  22  64  12   4    3  58  43  70  68  95  79  82  33  32   33  91  66  43  43   6  32  97  62   6   57  11  30  58  24   8  79  78  71  77   81   3  99  59  55  95  51  12  16  20   51  90  55  57   7  83  99  66  94  93

Язык Си

#include <stdio.h>
#define N 10
main() {
int a[N][N], i, j, b;
srand(time(NULL));
for (i=0; i<N; i++) {
for (j=0; j<N; j++) {
a[i][j] = rand()%100;
printf(«%4d», a[i][j]);
}
printf(«n»);
}
printf(«n»);
for (i=0; i<N; i++)
for (j=0; j<N; j++)
if (i == j) {
b = a[i][j];
a[i][j] = a[i][N-1-j];
a[i][N-1-j] = b;
}
for (i=0; i<N; i++) {
for (j=0; j<N; j++) {
printf(«%4d», a[i][j]);
}
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)
z.append(n)
print(«%4d» % n, end=»)
print()
a.append(z)
print()

for i in range(N):
for j in range(N):
if i==j:
b = a[i][j] a[i][j] = a[i][N-1-j] a[i][N-1-j] = b

for i in range(N):
for j in range(N):
print(«%4d» % a[i][j], end=»)
print()

КуМир

алг обмен диагоналей
нач
цел N=10
цел таб a[1:N,1:N] цел i, j, b
нц для i от 1 до N
нц для j от 1 до N
a[i,j] := int(rand(10,100))
вывод a[i,j], » »
кц
вывод нс
кц
вывод нс

нц для i от 1 до N
нц для j от 1 до N
если i = j то
b := a[i,j] a[i,j] := a[i,N-j+1] a[i,N-j+1] := b
все
кц
кц

нц для i от 1 до N
нц для j от 1 до N
вывод a[i,j], » »
кц
вывод нс
кц
кон

Basic-256

N = 10
dim a(N,N)
for i=0 to N-1
for j=0 to N-1
a[i,j] = int(rand*90)+10
print a[i,j]+» «;
next j
print
next i
print

for i=0 to N-1
for j=0 to N-1
if i=j then
b = a[i,j] a[i,j] = a[i,N-1-j] a[i,N-1-j] = b
endif
next j
next i

for i=0 to N-1
for j=0 to N-1
print a[i,j]+» «;
next j
print
next i

Did you find apk for android? You can find new Free Android Games and apps.

Добавить комментарий