Вычислите, какое количество информации (в Гбайт) содержит 128 минутный цветной фильм, если один его кадр содержит 512 Кбайт информации, а за 1 с сменяется 36 кадров
Var s,st: string; a: array[1..255] of integer; i: integer; begin write('строка: '); readln(s); for i:=1 to 255 do a[i]:=0; for i:=1 to length(s) do inc(a[ord(s[i])]); st:=''; for i:=1 to length(s) do if ((a[ord(s[i])]>=2) and (s[i] in ['а'..'я'])) then continue else st:=st+s[i]; writeln('новая строка: ',st); end.
строка: Это строка для проверки. новая строка: Э са для пвеи.
Если нужно, чтобы не различались прописные и строчные буквы, то другой вариант программы:
var s: string; a: array[1..255] of integer; i,j: integer; begin write('строка: '); readln(s); for i:=1 to 255 do a[i]:=0; for i:=1 to length(s) do if ord(s[i])>32 then begin inc(a[ord(s[i])]); if s[i] in ['а'..'я'] then inc(a[ord(UpperCase(s[i]))]) else if s[i] in ['А'..'Я'] then inc(a[ord(LowerCase(s[i]))]); end; j:=0; for i:=1 to length(s) do if (a[ord(s[i])]>=2) then continue else begin inc(j); s[j]:=s[i]; end; delete(s,j+1,length(s)-j); writeln('новая строка: ',s); end.
Решение: Объем памяти занимаемого файла изображения равен кол-ву пикселов, умноженное на глубину цвета. 1) В первом случае у нас фигурируют два цвета: черный и белый, т.е. два пиксела. Глубина цвета таких пикселов равна 1. Таким образом, битов требует изображение. Однако, можно перевести биты в байты, поделив полученное значение на 8. Мы получим значение, равное 2500 байтам. 2) Глубина цвета равна логарифму кол-ва цвета пикселов, доступные изображению по основанию 2. В нашем случае изображение хранит в себе пикселы, которые могут иметь 16-цветовое значение. Значит, . Т.е. глубина цвета каждого пиксела составляет 4 бита. Теперь, Столько битов потребуется, чтобы компьютер смог запомнить данное изображение. Можно перевести биты в байты, поделив полученное значение на 8. Получим 10000 байтов.
Дано:
t = 128 мин = 7680 с
f = 36
ответ: 135 ГБ.