simonovaliubov5852
?>

Дан двумерный массив размерностью n*m. увеличить в 2 раза все элементы , лежащие в главной диагонали

Информатика

Ответы

Тимур Андраниковна634

const t=50;   var a: array [1..t,1..t] of integer;   i,j,n,m: integer;   begin   write('введите n: ');   readln(n);   write('введите m: ');   readln(m);   for i: =1 to n do   for j: =1 to m do readln(a[i,j]);   for i: =1 to n do   for j: =1 to m do if i=j then a[i,j]: =a[i,j]*2;   for i: =1 to n do  begin  for j: =1 to m do write(a[i,j],' ');   writeln;   end;   end.

argo951385
Во-первых - я перепишу программу: const     n = 10; var     a: array[1..n, 1..n] of integer;     b: array[1..n] of integer;     s, i, j: integer; begin     for i : = 1 to n do         for j : = 1 to n do             a[i, j] : = random(100);         for i : = 1 to n do         begin             for j : = 1 to n do                 write(a[i, j], ' ');             writeln();         end;         for i : = 1 to n do         begin             s : = 0;             for j : = 1 to n do                 s : = s + a[i, j];                 b[i] : = s;         end;         for i : = 1 to n do         write(b[i], ' '); end.

я ничего в ней не изменял кроме того, что оформил, как подобает. начнём разбор:

на строках 1-2 мы объявляем неизменную переменную, которая хранит в себе число. за что отвечает число - разберём ниже.

на строках 3-6 мы объявляем массив a с размерностью [1..n, 1..n] (вот, что значит та неизменная переменная. неизменная, потому что массивы в обычном pascal имеют неизменное количество элементов) и массив b с размерностью [1..n]. также объявляем переменную s, i и j. могу сказать сразу, переменные с именами i и j и типом integer исключительно для работы с итерациями и циклами.

на строках 8-10 мы используем двойной цикл, чтобы заполнить наш двумерный массив псевдослучайными числами от 0 до 100 не включая, то есть от 0 до 99 (так работает функция random).

на строках 12-17 мы выводим данный массив.

на строках 19-25 заключён смысл всей программы. для начала стоит вспомнить, что такое двумерный массив (матрица). переменная i в нашем случае обозначает строку, а j, соответственно, столбец. первый цикл с переменной i останавливается на определённой строке, а второй цикл с переменной j проходит все элементы данной строки. можем заметить, что во втором цикле фигурирует запись сложения переменной s со значением массива. эта запись говорит о том, что с цикла в переменную s заносится сумма всех элементов i-той строки. поясню:

пусть n (размерность массива) = 3, i - номер итерации, s - сумма элементов i-й строки, а b - массив, хранящий сумму i-й строки.

первый столбец - номер строки, второй - элементы массива, третий - сумма.

i = 1   | 1 2 3   | s = 1 + 2 + 3 = 6     | b[1] = 6i = 2 | 4 5 6 | s = 4 + 5 + 6 = 15   | b[2] = 15i = 3 | 7 8 9   | s = 7 + 8 + 9 = 24 | b[3] = 24

значение переменной s помещается в массив b, который как раз-таки хранит сумму элементов каждой из строк.

на строках 27-28 мы выводим массив b.

если что-то непонятно, то спрашивайте в комментариях.

dmitriy
Var a : array[1..100] of integer; j, i, n, k, out_num, is_out : integer; begin   read(n); {всего людей}   read(out_num); {номер выходящего, в   = 3}   for i : = 1 to n do       a[i] : = 1;   i : = -1;   repeat       i: = (i + 1) mod n;       k : = k + a[i+1];       if k = out_num then begin           a[i+1] : = 0;           is_out : = is_out + 1;           k : = 0;                     writeln;           for j : = 1 to n do write(a[j]: 2);       end;   until n - is_out < = 1;     writeln;   for i : = 1 to n do       if a[i] > 0 then writeln(i); end. 

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дан двумерный массив размерностью n*m. увеличить в 2 раза все элементы , лежащие в главной диагонали
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Никита
yastrik
Эрендженова
Aleksandr72
Tatyana Anton1475
whiskyandcola
Валерьевна1601
Devaunka40
a800000
yuliasam
Yurevna
SaraevaTretyakov1941
detymira
Galina
Платон Демцун