// PascalABC.NET 3.3, сборка 1625 от 17.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var (n,m):=ReadInteger2('Количество строк и столбцов в матрице:'); Writeln('*** Исходная матрица ***'); var a:=MatrRandom(n,m,-10,99); a.Println(4); Writeln(4*a.ColCount*'-'); var L:=new List<integer>; // для номеров подходящих строк for var i:=0 to n-1 do if a.Row(i).Any(t->t<=0) then L.Add(i); n:=L.Count; if n=0 then begin Writeln('Все строки содержат только положительные элементы'); exit end; var b:=new integer[n,m]; for var i:=0 to n-1 do b.SetRow(i,a.Row(L[i])); Writeln('*** Результирующая матрица ***'); b.Println(4) end.
Разрешающая сканера 600 х 600 dpi.
Размер 10см x 15см.
Глубина цвета - 3 байта.
Найти:
Каков информационный объём этого файла?
Решение:
Вначале переводим глубину цвета из байт в биты
3 байта * 8бит в байте = 24 бит
Вычисляем разрешение сканера в 1 дюйме квадрат
600*600 = 360 000 пикселей в 1 дюйм^2
Переводим размер картинки из квадратных сантиметров в квадратные дюймы.
10см = 3.937дюйма
15см = 5,906дюйма
10*15=150 см^2 = 3,937 * 5,906 = 23,25 дюйм^2
Вычисляем количество пикселей в изображении
23,25 дюйм^2 * 360 000 пикселей в 1 дюйм^2 = 8 370 000 пикселей
Информационный объём вычисляем по формуле
количество пикселей * глубину цвета =
8 370 000 пикселей * 24 бит = 200 880 000 бит.
Переводим в байты делением на 8.
25 110 000 байт
или же делим на 1024*1024 чтобы получить количество мегабайт
23,95 Мегабайт
ответ:
Информационный объём сканированного изображения =
25 110 000 байт или 23,95 Мегабайт
// Внимание! Если программа не работает, обновите версию!
begin
var (n,m):=ReadInteger2('Количество строк и столбцов в матрице:');
Writeln('*** Исходная матрица ***');
var a:=MatrRandom(n,m,-10,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var L:=new List<integer>; // для номеров подходящих строк
for var i:=0 to n-1 do
if a.Row(i).Any(t->t<=0) then L.Add(i);
n:=L.Count;
if n=0 then begin
Writeln('Все строки содержат только положительные элементы');
exit
end;
var b:=new integer[n,m];
for var i:=0 to n-1 do
b.SetRow(i,a.Row(L[i]));
Writeln('*** Результирующая матрица ***');
b.Println(4)
end.
Пример
Количество строк и столбцов в матрице: 5 4
*** Исходная матрица ***
12 -9 64 34
53 64 49 74
33 27 -6 72
91 14 23 16
15 64 9 77
----------------
*** Результирующая матрица ***
12 -9 64 34
33 27 -6 72