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

Марине и Крестине нужно приклеить номера своих квартир на двери. Цифры продаются только комплекьами по 10 различных цифр. В доме, где живут Марина и Коля, 460 квартир. Проверить, хватит ли девочкам одного комплекта цифр. В питоне

👇
Открыть все ответы
Ответ:
Type
  M = array[,] of integer; // двумерный динамический
  V = array[1..2] of integer; // одномерный статический

function nPos(pm: M): integer;
var
  i, j, p: integer;
begin
  p := 0;
  for i := 0 to Length(pm, 0) - 1 do
    for j := 0 to Length(pm, 1) - 1 do
      if pm[i, j] > 0 then p := p + 1;
  nPos := p
end;

function nNeg(pm: M): integer;
var
  i, j, p: integer;
begin
  p := 0;
  for i := 0 to Length(pm, 0) - 1 do
    for j := 0 to Length(pm, 1) - 1 do
      if pm[i, j] < 0 then p := p + 1;
  nNeg := p
end;

procedure GetV(A: M; var C: V);
begin
  C[1] := nPos(A);
  C[2] := nNeg(A)
end;

procedure InitM(var A: M);
var
  i, j: integer;
begin
  for i := 0 to Length(A, 0) - 1 do
    for j := 0 to Length(A, 1) - 1 do
      A[i, j] := random(100) - 50
end;

procedure PrintM(A: M);
var
  i, j: integer;
begin
  for i := 0 to Length(A, 0) - 1 do
  begin
    for j := 0 to Length(A, 1) - 1 do
      write(A[i, j]:4);
    writeln
  end
end;

var
  A1, A2, A3: M;
  B1, B2, B3: V;
  n1, m1, n2, m2, n3, m3: integer;

begin
  Randomize;
  writeln('Введите число строк и столбцов массива');
  readln(n1, m1);
  SetLength(A1, n1, m1);
  InitM(A1);
  Writeln('массив А1');
  PrintM(A1);
  GetV(A1, B1);
  writeln('Количество положительных ', B1[1], ', количество отрицательных ', B1[2]);
  writeln('Введите число строк и столбцов массива');
  readln(n2, m2);
  SetLength(A2, n2, m2);
  InitM(A2);
  Writeln('массив А2');
  PrintM(A2);
  GetV(A2, B2);
  writeln('Количество положительных ', B2[1], ', количество отрицательных ', B2[2]);
  writeln('Введите число строк и столбцов массива');
  readln(n3, m3);
  SetLength(A3, n3, m3);
  InitM(A3);
  Writeln('массив А3');
  PrintM(A3);
  GetV(A3, B3);
  writeln('Количество положительных ', B3[1], ', количество отрицательных ', B3[2]);
end.

Тестовый прогон:

Введите число строк и столбцов массива
3 3
массив А1
   6  11 -46
  24 -41  36
  44   9  18
Количество положительных 7, количество отрицательных 2
Введите число строк и столбцов массива
2 4
массив А2
  37  -4  -2  43
 -18  36   0  44
Количество положительных 4, количество отрицательных 3
Введите число строк и столбцов массива
5 2
массив А3
   5 -15
  49  -1
 -40  35
 -33  -9
 -22 -31
Количество положительных 3, количество отрицательных 7
4,4(16 оценок)
Ответ:
Darjana13
Darjana13
06.02.2022
Насчет дано решение не понял, дано и так есть, а решение без понятия честно, возможно есть формула или что-то вроде этого, но мне проще на взгляд определить что если точность измерения 0.1 значит количество измерений в 10 раз больше чем количество градусов, навскидку если брать диапазон -5..+50 то можно найти 56 значений включая 0,а  значит около 560 уникальных значений, следовательно минимальное количество бит должно быть 10 ибо два в десятой 1024, в то время как два в девятой 512 слишком мало для данного случая
4,7(35 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ