Предмет: Информатика, автор: boobleGum105

Дан двумерный массив 10 на 10. Заменить одну диагональ на 10, а вторую на 50. Числа рандомные
Нужно написать программу и желательно с пояснением что происходит в каждой строке​


boobleGum105: Паскаль

Ответы

Автор ответа: gamatacy
1

ʕ•́ᴥ•̀ʔっ♡

#Создаем двумерный массив

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])


boobleGum105: нужно паскаль
anonymous2010: #не нужно самодеятельности)
max_i = 10
max_j = 10
array = [[0 for _ in range(max_j)] for _ in range(max_i)] #создать
print(*array, sep ="\n") #вывести
gamatacy: Ну если делать нечего то и такую ерунду написать можно, я решил не пудрить мозг и так непонимающему человеку. А если уж за простоту кода бороться, то легче так писать -" matrix = [[0]*10]*10 ", без циклов всяких)
boobleGum105: а в какой программе это работает?
gamatacy: Python
boobleGum105: мне сказали на паскале нужно сделать не могли бы написать эту программу на языке паскаль
boobleGum105: просто в интернете нет данного задания а я без понятия как его выполнять
Автор ответа: anonymous2010
0

{в паскалі не сільон (сьогодні перший раз попробував)}

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

}


boobleGum105: а можно пояснения что происходит в каждой строке
anonymous2010: канечно
anonymous2010: щас
anonymous2010: готово
anonymous2010: постав найкращу відповідь)))
anonymous2010: i = j - головна діагоняль
10-j+1 = i - обернена головна діагональ
Похожие вопросы
Предмет: Английский язык, автор: ЭрикЮТУБЕР