Решить по информатике (дано-решение) : найти информационный объём растрового черно-белого (без оттенков серого) изображения, имеющего размер 128×128. ответ дайте в кб. составить и решить подобную
Для начала найдем кол-во пикселей в изображении: 128*128=16384 На один пиксель может приходиться 2 цвета - черный и белый. Следовательно: 16384*2=32768 Отсюда находим i в битах: 2^i=32768 Отсюда i=15 1 Кб=1024 Байт=8*1024 Бит, отсюда: 15/8=1,875 Байт 1,875/1024= ~0,002 Кб
Можешь изменить 2 переменные - ширину и высоту изображения и решить ее, руководствуясь этими же рассуждениями))
В качестве примера равномерного кода можно назвать ASCII-таблицу, где каждому из 256 символов сопоставлено двоичное значение от 00000000 до 11111111. Независимо от вероятности появления символа на его представление отводится 1 байт, или 8 бит. Как известно, национальные языки обладают большой избыточностью, то есть разницей между энтропией источника и максимально возможной энтропией, обусловленной равной вероятностью появления любого символа из алфавита. Например, избыточность русского языка составляет 70%, а английского – 50%. Это в частности означает, что некоторые буквы появляются в тексте гораздо чаще других и поэтому использовать равномерное кодирование нерационально. При неравномерном кодировании часто встречающимся символам сопоставляются более короткие кодовые последовательности, редко встречающимся – более длинные. За счет этого удается значительно сократить объем файла без потерь информации. Существует несколько методов неравномерного кодирования, важнейших из которых является метод Шеннона-Фано. Тут не много, да и все понятно, надеюсь и тебе будет .
Вариант с заполнением с клавиатуры. ---------------------------------------------------------- var A: array [1..10] of real; i: byte; mult: real; begin mult := 1; for i := 1 to 10 do begin write('Введите A[',i ,'] = '); readln(A[i]); end; writeln('Сгенерированный массив.'); for i := 1 to 10 do begin write(A[i]:1:2); write(' '); if (A[i] > 0.00) and (A[i] < 1.00) then mult := mult * A[i]; end; writeln; if mult <> 1 then writeln('Произведение = ', mult:2:4) else writeln('Элементы в диапазоне от 0 до 1 отсутствуют.'); end.
---------------------------------------------------------- Вариант с случайным заполнением. ---------------------------------------------------------- var A: array [1..10] of real; i: byte; mult: real; begin mult := 1; randomize; writeln('Сгенерированный массив.'); for i := 1 to 10 do begin A[i] := random*10; write(A[i]:1:2); write(' '); if (A[i] > 0.00) and (A[i] < 1.00) then mult := mult * A[i]; end; writeln; if mult <> 1 then writeln('Произведение = ', mult:2:4) else writeln('Элементы в диапазоне от 0 до 1 отсутствуют.'); end.
128*128=16384
На один пиксель может приходиться 2 цвета - черный и белый. Следовательно:
16384*2=32768
Отсюда находим i в битах:
2^i=32768
Отсюда i=15
1 Кб=1024 Байт=8*1024 Бит, отсюда:
15/8=1,875 Байт
1,875/1024= ~0,002 Кб
Можешь изменить 2 переменные - ширину и высоту изображения и решить ее, руководствуясь этими же рассуждениями))