OoMaRиNкАoO
10.08.2022 16:07

В Яркости пикселей рисунка закодированы числами от 0 до 255 в
виде матрицы. Преобразовать рисунок в черно-белый по
следующему алгоритму:
1) вычислить среднюю яркость пикселей по всему рисунку
2) все пиксели, яркость которых меньше средней, сделать
черными (записать код 0), а остальные – белыми (код 255)
Пример:
Матрица А:
12 14 67 45
32 87 45 63
69 45 14 11
40 12 35 15
Средняя яркость 37.88
Результат:
0 0 255 255
0 255 255 255
255 255 0 0
255 0 0 0
Нужна

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
varvarataraskina
11.11.2020 20:54
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

function gcd(a,b:integer):integer; // НОД
begin
  while b<>0 do begin a:=a mod b; Swap(a,b) end;
  Result:=a
end;

procedure RedFrac(var a,b:integer); // сокращение дроби
begin
  var (sgna,sgnb):=(Sign(a),Sign(b)); // мы должны учитывать знак!
  (a,b):=(Abs(a),Abs(b));
  var d:=gcd(a,b);
  a:=(a div d)*sgna; b:=(b div d)*sgnb
end;

begin
  var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');
  var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');
  (a,b):=(a*c,b*d);
  RedFrac(a,b);
  Writeln('Результат умножения: ',a,' / ',b)
end.

Пример
Введите числитель и знаменатель 1-й дроби: 32 1024
Введите числитель и знаменатель 2-й дроби: 60 300
Результат умножения: 1 / 160

В качестве бонуса - решение на базе входящей в состав PascalABC.NET библиотеки численных методов

uses NumLibABC;

begin
  var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');
  var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');
  Writeln('Результат умножения: ',Frc(a,b)*Frc(c,d))
end.
0,0(0 оценок)
Ответ:
fomicheva3ket
29.08.2021 21:51
1. Определим размер алфавита, т.е. количество используемых символов.
20 букв и 9 цифр - это 29 символов. Чтобы закодировать 29 разных символов нужно 5 бит ( 2⁴ < 29 < 2⁵ ).
2. Определим длину личного кода.
В коде 15 символов, каждый символ занимает 5 бит. Всего потребуется 5×15=75 бит. Поскольку код занимает целое число байт, переводит 75 бит в байты. 75/8 = 9.375 ≈ 10 байт.
3. Номер отдела можно закодировать 1 байтом (в байт помещается число от 0 до 255).
4. Найдем количество дополнительных байт.
На пропуске 20 байт, из них 10 заняты кодом, 1 - номером отдела, остаются 20-10-1 = 9 байт.

ответ: 9
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота