1. Частота дискретизации 32 кГц означает, что каждую секунду в каждом канале звука делаются и запоминаются 32000 отсчета уровня звукового сигнала. Разрешение 16 бит = 16/8 = 2 байта означает, что хранение одного такого отсчета требует 2 байта. Если файл стереофонический, у него два канала. Таким образом, чтобы сохранить одну секунду звучания потребуется 32000×2×2 = 128 000 байт = 128 000 / 1024 = 125 Кбайт памяти. 2. Если файл занимает 3500 Кбайт, то время его звучания составит 3500 / 125 = 28с
Вариант с циклом while ... do... program z1; uses crt; var n:longint; i,max,x:integer; begin clrscr; read(n); max:=-1; i:=1; {это будет переменная-счетчик} while i<=5 do begin x:= n mod 10; if x>max then max:=x; n:= n div 10; {в этой строке исправлена опечатка в оригинале} i:=i+1; {наращиваем счетчик вручную} end; writeln(max); end.
Вариант с циклом repeat ... until program z1; uses crt; var n:longint;i,max,x:integer; begin clrscr; read(n); max:=-1; i:=1; repeat x:= n mod 10; if x>max then max:=x; n:= n div 10; i:=i+1; until i>5; writeln(max); end.
Вариант с циклом repeat ... until без счетчика! program z1; uses crt; var n:longint; max,x:integer; begin clrscr; read(n); max:=-1; repeat x:= n mod 10; if x>max then max:=x; n:= n div 10; until n=0; writeln(max); end. В последнем примере условием окончания цикла будет случай, когда число станет равным 0. Действительно, после каждого повторения цикла число становится на один разряд меньше (выделенная цветом строка программы), значит, когда-нибудь такое число станет равным 0 (цикл подходит для числа с любым количеством цифр). Пример: 34567 -> 3456 -> 345 -> 34 -> 3 -> 0
2. Если файл занимает 3500 Кбайт, то время его звучания составит
3500 / 125 = 28с
ответ: 28с
program z1;
uses crt;
var n:longint;
i,max,x:integer;
begin
clrscr;
read(n);
max:=-1;
i:=1; {это будет переменная-счетчик}
while i<=5 do
begin
x:= n mod 10;
if x>max then max:=x;
n:= n div 10; {в этой строке исправлена опечатка в оригинале}
i:=i+1; {наращиваем счетчик вручную}
end;
writeln(max);
end.
Вариант с циклом repeat ... until
program z1;
uses crt;
var n:longint;i,max,x:integer;
begin
clrscr;
read(n);
max:=-1;
i:=1;
repeat
x:= n mod 10;
if x>max then max:=x;
n:= n div 10;
i:=i+1;
until i>5;
writeln(max);
end.
Вариант с циклом repeat ... until без счетчика!
program z1;
uses crt;
var n:longint;
max,x:integer;
begin
clrscr;
read(n);
max:=-1;
repeat
x:= n mod 10;
if x>max then max:=x;
n:= n div 10;
until n=0;
writeln(max);
end.
В последнем примере условием окончания цикла будет случай, когда число станет равным 0. Действительно, после каждого повторения цикла число становится на один разряд меньше (выделенная цветом строка программы), значит, когда-нибудь такое число станет равным 0 (цикл подходит для числа с любым количеством цифр). Пример: 34567 -> 3456 -> 345 -> 34 -> 3 -> 0