Дан двумерный массив 10 на 10. Заменить одну диагональ на 10, а вторую на 50. Числа рандомные
Нужно написать программу и желательно с пояснением что происходит в каждой строке
Ответы
ʕ•́ᴥ•̀ʔっ♡
#Создаем двумерный массив
matrix = [[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0]]
#Проходимся в цикле по массивам и меняем значения
for i in range(len(matrix)):
for j in range(len(matrix[i])):
#Меняем по первой диагонали
if i == j:
matrix[i][j] = 10
#Меняем по второй диагонали
if 9-j == i:
matrix[i][j] = 50
#Выводим массив
print(matrix[i])
max_i = 10
max_j = 10
array = [[0 for _ in range(max_j)] for _ in range(max_i)] #создать
print(*array, sep ="\n") #вывести
{в паскалі не сільон (сьогодні перший раз попробував)}
program Hello;
{оголошуємо константи}
const LIMIT = 10;
const START = 1;
{оголошуємо типи (мені так зручніше)}
type int = integer;
List = array[START..LIMIT, START..LIMIT] of int;
{оголошуємо змінні та їх типи}
var i, j : int;
var arr : List;
{початок програми}
begin
for i:=START to LIMIT do {цикл по рядках}
begin
for j:=START to LIMIT do {цикл по стовпцях}
begin
if j = i then {перевіряється чи i рівна j}
arr[i][j] := 10 {присвоєння комірці числового значення}
else {якшо i не дорівнює j то виконується наступний блок коду}
if LIMIT - j + 1 = i then {по аналогії продовження}
arr[i][j] := 50
else
arr[i][j] := 0;
Write(arr[i][j]); {виводимо значення комірки}
Write(' '); {виводимо пробіл}
end;
writeln(); {перехід на наступну стрічку}
end;
end.
{
РЕЗУЛЬТАТ ВИКОНАННЯ
10 0 0 0 0 0 0 0 0 50
0 10 0 0 0 0 0 0 50 0
0 0 10 0 0 0 0 50 0 0
0 0 0 10 0 0 50 0 0 0
0 0 0 0 10 50 0 0 0 0
0 0 0 0 50 10 0 0 0 0
0 0 0 50 0 0 10 0 0 0
0 0 50 0 0 0 0 10 0 0
0 50 0 0 0 0 0 0 10 0
50 0 0 0 0 0 0 0 0 10
}
10-j+1 = i - обернена головна діагональ