М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
magoomamedzadeh
magoomamedzadeh
29.06.2022 00:38 •  Информатика

Задан двумерный массив, состоящий из 10 строк и 10 столбцов. сконструируйте программу, которая бы подсчитывала положительные и отрицательные элементы и записывала их в два разных массива

👇
Ответ:
аннушка2935
аннушка2935
29.06.2022
PascalABC.NET

const
  n=10;
var
  a:array[1..n,1..n] of integer;
  i,j,kp,kq:integer;
  p,q:array of integer; // динамические массивы
begin
  Randomize;
  Writeln('Исходный массив из случайных чисел');
  kp:=0; kq:=0;
  SetLength(p,n*n); SetLength(q,n*n);
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=Random(101)-50; // диапазон [-50;50]
      Write(a[i,j]:4);
      if a[i,j]>0 then begin p[kp]:=a[i,j]; Inc(kp) end
      else
        if a[i,j]<0 then begin q[kq]:=a[i,j]; Inc(kq) end
      end;
    Writeln
  end;
  SetLength(p,kp); SetLength(q,kq); // отрегулировали по заполнению
  Writeln('Положительные');
  for i:=0 to kp-1 do Write(p[i],' '); Writeln;
  Writeln('Отрицательные');
  for i:=0 to kq-1 do Write(q[i],' '); Writeln
end.

Пример
Исходный массив из случайных чисел
  46  47  -8 -32  36  41 -49 -15  25 -33
  18  15   1  15  21  43  30  41 -15 -21
 -48  15  -5  17  19  30 -38   0  10  11
 -16  10  48 -30 -40 -49 -48  24  18  24
  47  45  50  44  -3 -15  19  29 -13  38
 -23   3 -23  19  19 -19   1  26   0 -45
  28   1  26 -36  34 -43  18 -19   4  19
  41 -45 -27  12 -18 -43  16   1 -31 -17
 -39 -16 -37  22 -17  31 -17 -22   1  30
   0 -24 -27  12  46  -4 -32  36 -40 -11
Положительные
46 47 36 41 25 18 15 1 15 21 43 30 41 15 17 19 30 10 11 10 48 24 18 24 47 45 50 44 19 29 38 3 19 19 1 26 28 1 26 34 18 4 19 41 12 16 1 22 31 1 30 12 46 36
Отрицательные
-8 -32 -49 -15 -33 -15 -21 -48 -5 -38 -16 -30 -40 -49 -48 -3 -15 -13 -23 -23 -19 -45 -36 -43 -19 -45 -27 -18 -43 -31 -17 -39 -16 -37 -17 -17 -22 -24 -27 -4 -32 -40 -11
4,8(86 оценок)
Открыть все ответы
Ответ:
DikarkaWaider
DikarkaWaider
29.06.2022
//Решение с использованием длинной арифметики
var i, j, sum, len, rem: integer;
    mult: array[1..1205] of integer;
begin
  len := 1;
  mult[1] := 1;
  i := 100;
  while i < 1000 do
  begin
    for j := 1 to len do
    begin
      rem := mult[j] * i + rem;
      mult[j] := rem mod 10;
      rem := rem div 10;
    end;
    while rem > 0 do
    begin
      inc(len);
      mult[len] := rem mod 10;
      rem := rem div 10;
    end;
    sum := sum + i;
    i := i + 2;
  end;
  writeln('Сумма: ', sum);
  write('Произведение: ');
  for i := len downto 1 do write(mult[i]);
  writeln;
end.

Результат работы программы:
Сумма: 247050
Произведение: 11663575674444359823002008139390746528142707402328361705647495301216245827892256323421573853031635648105175857107321864360366071385039128549679496343675509640183219826717346573458260381851930244150425562315833417515264123698581740276921937117732298873364203269398167251131992557619396626253824845619285980851485012131859200089180731617159967796785692496658820266554970195579987101761437467345295469560091019643416890744175485355715583034412689664621367823158491721734017238669568797130683826947437814864890599291484009747561514288528353178159298856645624289518581586947168677504742711452824976368290519747367284033226821443792754573564848344600041433089899538479032717299413920051538113896509134682791976736868238046387230383008696853107977931851651379555533347652931008271572588724198961970056163028633888796670948358527288343719100865852117339478785474064397937004993302565523495403857150309972891503340949896943795594807214141508464167055846685872109706922589562538698747726222566785521882450614299594376824656706451033378744188256788426310583732611392640652066952551824890922829689995132928000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
4,7(45 оценок)
Ответ:
Крипер1111111
Крипер1111111
29.06.2022
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
begin
  var a:=MatrixRandom(7,7,0,9);
  var k:=0;
  for var i:=0 to 6 do begin
    for var j:=0 to 6 do begin
      Write(a[i,j]:3);
      if a[i,j] in [1..5] then Inc(k)
      end;
    Writeln
    end;
  Writeln('Кол-во элементов на [1,5]: ',k)
end.

Тестовое решение:
  2  1  7  3  3  2  7
  9  2  9  2  0  5  5
  4  2  6  9  4  6  0
  1  0  3  5  4  5  9
  6  3  6  0  2  0  8
  0  8  4  3  2  1  8
  6  0  4  4  5  4  0
Кол-во элементов на [1,5]: 27

Вариант "совсем для школы"

const
  n=7;
var
  a:array[1..n,1..n] of integer;
  i,j,k:integer;
begin
  Randomize;
  k:=0;
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=Random(10);
      Write(a[i,j]:3);
      if a[i,j] in [1..5] then Inc(k)
      end;
    Writeln
    end;
  Writeln('Кол-во элементов на [1,5]: ',k)
end.
4,8(31 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ