самостоятельная работа
решение на кодирование звуковой информации
№ 1. объем свободной памяти на диске — 0,1 гб, разрядность звуковой платы — 16. какова длительность звучания цифрового аудиофайла, записанного с частотой дискретизации 44,03 кгц?
№ 2. две минуты записи цифрового стереоаудиофайла занимают на диске 5,1 мб. частота дискретизации — 44032 гц. какова разрядность аудиоадаптера?
№ 3. три минута записи цифрового аудиофайла занимает на диске 2,6 мб, разрядность звуковой платы - 16. с какой частотой дискретизации записан звук?
№ 4. оцените информационный объем моноаудиофайла длительностью звучания 3 мин. если "глубина" кодирования и частота дискретизации звукового сигнала равны соответственно:
а) 16 бит и 5 кгц;
б) 16 бит и 8 кгц.
№ 5. вычислить, сколько байт информации занимает на компакт-диске три секунды стереозаписи (частота 22050 гц, 16 бит на значение). сколько занимает одна минута? какова максимальная емкость диска (считая максимальную длительность равной 60 минутам)?
var
x1, y1, x2, y2, x3, y3, x4, y4: integer;
s, sc: real;
function linelength(x1, y1, x2, y2: integer): real;
begin
linelength := sqrt(sqr(x2 - x1) + sqr(y2 - y1));
end;
procedure ger(a, b, c: real);
var
p: real;
begin
p := (a + b + c) / 2;
sc := sqrt(p * (p - a) * (p - b) * (p - c));
end;
begin
write('1:');readln(x1, y1);
write('2:');readln(x2, y2);
write('3:');readln(x3, y3);
write('4:');readln(x4, y4);
ger(linelength(x1, y1, x2, y2), linelength(x2, y2, x3, y3), linelength(x1, y1, x3, y3));
s := s + sc;
ger(linelength(x1, y1, x4, y4), linelength(x4, y4, x3, y3), linelength(x1, y1, x3, y3));
s := s + sc;
writeln(s);
end.
//3)
var
a, b, c: integer;
function sce(var a: integer): integer;
var
sc, c: integer;
begin
while a <> 0 do
begin
c := a mod 10;
a := a div 10;
sc := sc + c;
end;
sce := sc;
end;
begin
read(a, b, c);
if (sce(a) > sce(b)) and (sce(a) > sce(c)) then writeln(a) else
if (sce(b) > sce(a)) and (sce(b) > sce(c)) then writeln(b) else
if (sce(c) > sce(a)) and (sce(c) > sce(b)) then writeln(c) else
if (sce(c) = sce(a)) and (sce(a) = sce(b)) then writeln('Равны');
end.
a: array of integer;
begin
{ считать количество чисел n }
write('n = '); readln(n);
{ установить длину массива а n+1,
массив динамический, нумерация с нуля}
i:=1; setlength(a,n+1);
writeln('введите числа через пробел: ');
{циклический ввод n чисел с клавиатуры}
repeat
read(a[i]);
i:=i+1;
until i>n;
{ конец ввода }
{ начальные значения для максимума и минимума mn mx }
mn:=a[1]; mx:=a[1];
{ цикл по элементам массива }
for i:=1 to n do
begin
{ если элемент массива больше текущего максимума,
то в максимум записать текущий элемент }
if a[i]>mx then mx:=a[i];
{ если элемент массива меньше текущего минимума,
то в минимум записать текущий элемент }
if a[i]<mn then mn:=a[i];
end;
{ конец цикла }
writeln('min = ',mn,' max = ',mx);
writeln('разница: (max - min) = ',mx-mn);
end.