В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История

Друзья Никита и Руслан живут в домах, расположенных так, что каждый видит окна комнаты другого. Для обмена короткими сообщениями о своих ближайших планах ребята пользуются флажками двух цветов. Вот используемый ими словарь:

Показать ответ
Ответ:
7262626
7262626
02.09.2021 04:13
// PascalABC.NET 3.2, сборка 1379 от 21.01.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var m:=ReadInteger('Количество строк в массиве:');
  var n:=ReadInteger('Количество столбцов в массиве:');
  Writeln('*** Исходный массив [',m,',',n,'] ***');
  var a:=MatrRandom(m,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var k:=ReadInteger('Номер столбца для подсчета суммы:');
  Writeln('S=',a.Col(k-1).Sum)
end.

Пример
Количество строк в массиве: 5
Количество столбцов в массиве: 8
*** Исходный массив [5,8] ***
  91 -39  49  29 -60 -58 -88  -5
 -80  -5  58  38 -75 -76 -54 -33
 -60 -66  98 -88  96 -48  94   2
  -4  81 -38 -91  26 -91  32   7
  30  83  30   3  22  93  31   0

Номер столбца для подсчета суммы: 4
S=-109

На случай, если я неверно понял задание и нужна сумма по КАЖДОЙ колонке:

begin
  var m:=ReadInteger('Количество строк в массиве:');
  var n:=ReadInteger('Количество столбцов в массиве:');
  Writeln('*** Исходный массив [',m,',',n,'] ***');
  var a:=MatrRandom(m,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  a.Cols.Select(s->s.Sum).Println
end.

Пример
Количество строк в массиве: 4
Количество столбцов в массиве: 7
*** Исходный массив [4,7] ***
  13 -14  82  88 -38  55  89
  11  74 -35  85  13  27 -80
 -88  76 -64 -88 -50  28 -13
  90  87 -71 -94 -59  95 -83

26 223 -88 -9 -134 205 -87
0,0(0 оценок)
Ответ:
Онегин1337
Онегин1337
11.03.2021 16:14
Вот с одиночным циклом (пока разберешься, можно лопнуть от натуги):

var
  i,j,k:byte;
  a:array[1..10,1..10] of byte;
begin
  for k:=1 to 100 do
  begin
    i:=(k-1)div10+1;
    j:=k mod 10;
    if j=0 then j:=10;
    a[i,j]:=i*j;
    Write(a[i,j],' ')
  end
end.

А вот современное решение, вообще без циклов:

// PascalABC.NET 3.2, сборка 1379 от 21.01.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=MatrGen(10,10,(i,j)->(i+1)*(j+1));
  a.Rows.SelectMany(x->x).Println
end.

В обоих случаях вывод выглядит так:
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота