Производится двухканальная (стерео) звукозапись с частотой дискретизации 16 кГц и 4-битным разрешением. Запись длится 1 минуту, ее результаты записываются в файл, сжатие данных не производится. Укажите размер полученного файла (в Мбайт) с точностью 1 Мбайт.
2.Производится звукозапись музыкального фрагмента в формате квадро (четырехканальная запись) с частотой дискретизации 32 кГц и 24-битным разрешением. Результаты записываются в файл, сжатие данных не производится; размер полученного файла 90 Мбайт. Затем производится повторная запись этого же фрагмента в формате стерео (двухканальная запись) с частотой дискретизации 64 кГц и 16-битным разрешением. Сжатие данных
не производилось. Укажите размер файла в Мбайт, полученного при повторной записи.
3. Музыкальный фрагмент был записан в формате 7.1 (восьмиканальная запись), оцифрован и сохранен в виде файла без использования сжатия данных. Размер полученного файла – 48 Мбайт. Затем тот же музыкальный
фрагмент был оцифрован повторно в формате стерео (двухканальная запись) и оцифрован с разрешением в 1,5 раза меньше и с частотой дискретизации в 2 раза больше, чем в первый раз. Сжатие данных не производилось. Укажите размер файла в Мбайт, полученного при повторной записи.
Алгоритм выглядит таким образом:
ввести x, y;
если x>y то
s:=(x*y)*2;
иначе
s:=(x+y)/2;
вывод s
конец. (блок-схема прилагается в скриншоте 1)
На паскале выглядит примерно так:
var
x, y, s:real;
begin
readln(x,y);
if x>y then
s:=(x*y)*2;
else
s:=(x+y)/2;
writeln(s:2:2);
end.
ответ на 2 задачу
Тут идентичный алгоритм: вводим 2 переменные x, y, далее создаем условие и возводим в модуль... (скриншот 2 с блок-схемой)
ответ на 3 задачу
Тут тоже.. в условии указываешь просто a<b<c, если условие верно, то выводишь "Верно", иначе "Не верно".
На паскале выглядит примерно так:
var
a, b, c:integer; {если число вещественное}
begin
readln(a, b, c);
if (a<b<c) then
writeln("Верно");
else
writeln("Неверно");
end.
ответ на 4 задачу
На паскале:
var
a, b, c, max:integer;
begin
max:=0;
readln(a,b,c);
if max<a then
max:=a;
if max<b then
max:=b;
if max<c then
max:=c;
writeln(max);
end.
ответ на 5 вопрос
На паскале:
Var
a,b,c:integer;
begin
readln(a,b,c);
if (a<0) then
a:=a*a;
writeln(a);
if (b<0) then
b:=b*b;
writeln(b);
if (c<0) then
c:=c*c;
writeln(c);
end.
Удачи!
Главная проблема - то, что между словами может быть несколько пробелов.
Устраним её, написав функцию, которая оставляла бы между словами по 1 пробелу:
function RemoveSpaces(str : string) : string;
begin
//Тут цикл for, переписанный через while
var iter := 1;
//Проходим по строке
while (iter < str.Length) do
begin
//Если видим 2 пробела подряд, удаляем 1 и откатывает итератор.
if (str[iter] = ' ') and (str[iter + 1] = ' ') then
begin
str := str.Remove(iter, 1);
iter -= 1;
end;
iter += 1;
end;
RemoveSpaces := str;
end;
Теперь мы можем получить кол-во слов очень просто:
function CalcWords(str : string) : integer;
begin
CalcWords := RemoveSpaces(str).Split(' ').Count();
end;
Т.е. мы делим строку на массив через пробелы, и считаем кол-во элементов массива.
полный код: https://pastebin.com/A63ggdWm