1. Частота дискретизации 44.1 кГц означает, что в секунду надо запомнить 44100 значений уровня сигнала. 2. Для кодирования одного значения требуется 20 бит, поэтому для кодирования всех значений в секунду требуется 44100×20 = 882000 бит 3. За 40 секунд потребуется объем в 40 раз больше: 40×882000 = 35280000 бит = 35280000/8 = 4410000 байт = 4410000/1024 ≈ 4306.64 Кбайт = 4306.64/1024 ≈ 4.2 Мбайт 4. Это расчет для одного канала. В стереофайле два канала, поэтому результат нужно удвоить, получая 8.4 Мбайт.
procedure oddDec(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для вычитания в нечётном элементе begin; a:=a-b; end;
procedure NotoddInc(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для сложения в чётном элементе begin; a:=a+b; end;
begin randomize; readln(a); //ввод a readln(b); //ввод b writeln('Array:'); for i:=1 to 10 do //весь массив begin; ar[i]:=random(-20,80); //случайные числа от -20 до 80 включительно write(ar[i]:4); //вывод if odd(i) then oddDec(ar[i],b) else NotoddInc(ar[i],a); {если нечётное, то первая процедура, иначе вторая. Обращаю внимания на то, что элементы меняются сразу после вывода} end; writeln; writeln('Final array:'); //вывод получившегося массива for i:=1 to 10 do write(ar[i]:4); end.
Пример ввода: 20 10 Пример вывода: Array: 10 16 0 60 23 4 22 -20 4 55 Final array: 0 36 -10 80 13 24 12 0 -6 75
procedure oddDec(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для вычитания в нечётном элементе begin; a:=a-b; end;
procedure NotoddInc(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для сложения в чётном элементе begin; a:=a+b; end;
begin randomize; readln(a); //ввод a readln(b); //ввод b writeln('Array:'); for i:=1 to 10 do //весь массив begin; ar[i]:=random(-20,80); //случайные числа от -20 до 80 включительно write(ar[i]:4); //вывод if odd(i) then oddDec(ar[i],b) else NotoddInc(ar[i],a); {если нечётное, то первая процедура, иначе вторая. Обращаю внимания на то, что элементы меняются сразу после вывода} end; writeln; writeln('Final array:'); //вывод получившегося массива for i:=1 to 10 do write(ar[i]:4); end.
Пример ввода: 20 10 Пример вывода: Array: 10 16 0 60 23 4 22 -20 4 55 Final array: 0 36 -10 80 13 24 12 0 -6 75
2. Для кодирования одного значения требуется 20 бит, поэтому для кодирования всех значений в секунду требуется 44100×20 = 882000 бит
3. За 40 секунд потребуется объем в 40 раз больше:
40×882000 = 35280000 бит = 35280000/8 = 4410000 байт = 4410000/1024 ≈ 4306.64 Кбайт = 4306.64/1024 ≈ 4.2 Мбайт
4. Это расчет для одного канала. В стереофайле два канала, поэтому результат нужно удвоить, получая 8.4 Мбайт.