nst-33764
?>

решить информатику цикл через while без Через

Информатика

Ответы

Look7moscow
Const
  nn=50; { ограничение на длину строки/столбца }
var
  i,j,m,n,k,s:integer;
  a:array[1..nn,1..nn] of integer;
begin
  Randomize;
  Write('Количество строк в массиве '); Read(m);
  Write('Количество столбцов в массиве '); Read(n);
  s:=0;
  k:=0;
  for i:=1 to m do begin
    for j:=1 to n do begin
      a[i,j]:=Random(101)-50;
      Write(a[i,j]:4);
      if a[i,j]>0 then begin
        s:=s+a[i,j];
        k:=k+1
      end
    end;
  Writeln
  end;
  Writeln('Ср. арифметическое положительных ',s/k)
end.

Пример
Количество строк в массиве 8
Количество столбцов в массиве 11
 -11  27 -22  46 -34 -36  10  39  -5  15 -46
  46 -48 -42  50 -14  12 -23 -29  -2   8  16
 -18  -5 -31  21 -28 -38  20  33   9  24   4
  43  18   9 -44 -22  25  37  39 -48 -16 -15
 -15  12  46  49  12 -50 -10  42  47  46  33
  23  -5  34  26  -5  42  -2 -32  12 -44 -19
  -8 -41  -9  -9 -20 -16   3 -15   9   5 -19
  47 -40   7  26 -26   0  20  -8  18  27   9
Ср. арифметическое положительных 25.4666666666667
antoska391
1. Современное решение

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

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  Writeln('Среднее положительных ',a.Where(x->x>0).Average);
  Writeln('Минимум ',a.Min)
end.

Пример
n= 15
35 27 -7 -1 20 13 6 50 -9 23 -38 46 30 27 14
Среднее положительных 26.4545454545455
Минимум -38

2. Школьный вариант на древних версиях

program Ex1;
const
  nn=100; { ограничение на длину массива }
var
  i,n,s,k:integer;
  a:array[1..nn] of integer;
begin
  Randomize;
  Write('n='); Read(n);
  k:=0;
  for i:=1 to n do begin
    a[i]:=Random(101)-50;
    Write(a[i],' ');
    if a[i]>0 then begin
      k:=k+1; s:=s+a[i]
      end
    end;
  Writeln;
  Writeln('Среднее положительных ',s/k) 
end.

program Ex2;
const
  nn=100; { ограничение на длину массива }
var
  i,n,min:integer;
  a:array[1..nn] of integer;
begin
  Randomize;
  Write('n='); Read(n);
  min:=100; { больше максимально возможного }
  for i:=1 to n do begin
    a[i]:=Random(101)-50;
    Write(a[i],' ');
    if a[i]<min then min:=a[i]
    end;
  Writeln;
  Writeln('Минимум ',min)
end.

Выводы о том, чему и как учат в школе, делайте самостоятельно...

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

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

решить информатику цикл через while без Через
Ваше имя (никнейм)*
Email*
Комментарий*