1. Задать массив F (M, N), из 4 строк и 5 столбцов,

1. Задать массив F (M, N), из 4 строк и 5 столбцов, элементы заданы из спектра [-20; 20] случайным образом
Найти количество положительных и кратных 7;
Отыскать среднее арифметическое отрицательных;
Отыскать Min элемент и его индексы;
Найти Max элемент посреди отрицательных и его индексы.

Задать свой вопрос
2 ответа
//PascalABC.NET
//Версия 3.3, сборка 1611 (06.01.2018)

begin
  var a:=MatrRandom(4,5,-20,20).Println;
  var c:=a.ElementsByRow;
  Println('Кол-во положительных -gt;',c.Where(t-gt;tgt;0).Count);
  Println('Кол-во кратных 7 -gt;',c.Where(t-gt;t mod 7=0).Count);
  Println('Сред. арифм. отрицат. -gt;',c.Where(t-gt;tlt;0).Average);
  var b:=a.ElementsWithIndexes.MinBy(t-gt;t[0]);
  Writeln('Минимальный -gt;', b[0],'[',b[1]+1,',',b[2]+1,']');
  b:=a.ElementsWithIndexes.Where(t-gt;t[0]lt;0).MaxBy(t-gt;t[0]);
  Writeln('Наибольший отриц. -gt;', b[0],'[',b[1]+1,',',b[2]+1,']');
end.

Пример:
 -10   6  12   7   4
  -8  -4   3  -1   6
   9  -2  16  19 -18
  18   4  -3  12  -8
Кол-во положительных -gt; 12 
Кол-во кратных 7 -gt; 1 
Сред. арифм. отрицат. -gt; -6.75 
Малый -gt;-18[3,5]
Наибольший отриц. -gt;-1[2,4]


Const
  mm=50; очень вероятное кол-во строк
  nn=50; максимально вероятное кол-во столбцов
var
  f:array[1..mm,1..nn] of integer;
  i,j,m,n,k,s:integer;
begin
  Randomize;
  Write('Количество строк в массиве: '); Read(m);
  Write('Количество столбцов в массиве: '); Read(n);
  Writeln('*** Исходный массив ***');
  for i:=1 to m do begin
    for j:=1 to n do begin
      f[i,j]:=Random(41)-20; [-20;20]
      Write(f[i,j]:4)
      end;
    Writeln
    end;
  Write('Количество положительных частей, кратных 7: ');
  k:=0;
  for i:=1 to m do
    for j:=1 to n do
      if (f[i,j]gt;0) and (f[i,j] mod 7=0) then k:=k+1;
  Writeln(k);
  Write('Среднее арифметическое отрицательных частей: ');
  k:=0; s:=0;
  for i:=1 to m do
    for j:=1 to n do
      if f[i,j]lt;0 then begin k:=k+1; s:=s+f[i,j] end;
  if kgt;0 then Writeln(s/k:0:5)
  else Writeln(0);
  Write('Минимальный элемент равен ');
  k:=100;
  for i:=1 to m do
    for j:=1 to n do
      if f[i,j]lt;k then k:=f[i,j];
 Write(k,', индексы:');
 for i:=1 to m do
    for j:=1 to n do
      if f[i,j]=k then Write(' [',i,',',j,']');
 Writeln;
 Write('Наибольший элемент посреди отрицательных равен ');
  k:=-100;
  for i:=1 to m do
    for j:=1 to n do
      if (f[i,j]gt;k) and (f[i,j]lt;0) then k:=f[i,j];
 Write(k,', индексы:');
 for i:=1 to m do
    for j:=1 to n do
      if f[i,j]=k then Write(' [',i,',',j,']');
 Writeln;
end.

Пример
Количество строк в массиве: 5
Количество столбцов в массиве: 8
*** Начальный массив ***
  -4  11  -5 -12   7  16 -10   6
   8  -3 -12 -16  15   2  -2  -6
  16   8  18   0 -10   8  18   7
  17   7 -14  -4  -1  -8  13  -1
   3 -18  16 -10   4 -17  19 -18
Количество положительных частей, кратных 7: 3
Среднее арифметическое отрицательных частей: -9.00000
Малый элемент равен -18, индексы: [5,2] [5,8]
Наибольший элемент среди отрицательных равен -1, индексы: [4,5] [4,8]
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт