У нас есть скорость передачи в кбит/с и мбит/с. Нужно определиться, в каких отношениях находятся кбит/с и бит/с, потому что тут есть две трактовки. Первая предполагает, что кбит/с - это системная единица Си и тогда 1кбит/с = 1000 бит/с. Вторая - что кбит/с, как и Кбайт/с - единица внесистемная, и тогда 1 кбит/с = 1024 бит/с. Правильным является первый вариант при написании по стандарту кбит/с, а во втором варианте надо писать Кбит/с. Именно заглавная буква К (и М в мегабитах, мегабайтах) указывают на внесистемность единицы. Однако, 128 кбит/с кратно степени 2, а не 10, что показывает мнение составителя задачи о том, что 1 кбит = 1024 бита. Условно примем эту версию.
1. Определяем количество фрагментов 350 Мбайт / 10 Мбайт = 35 фрагментов 2. Время отправки запроса на сервер 32 Кбайт / 128 кбит/с = 32 Кбайт / (128/8 Кбайт/с) = 2 с 3. Время приема одного фрагмента 10 Мбайт / 4 Мбит/с = 10 Мбайт / (4/8 Мбайт/с) = 20 с 4. Время отправки подтверждения 16 Кбайт / 128 кбит/с = 16 Кбайт / (128/8 Кбайт/с)= 1с 5. Время на каждый пакет, кроме последнего 2+20+1=23 с 6. Общее время на все пакеты, кроме последнего 23 х 34 = 782 с 7. Время на последний пакет (подтверждение можно не передавать) 2+20 = 22 с 8. Общее время 782+22 = 804 с или 13 минут и 24 секунды
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 type Point=record x,y:real end;
function ReadPoint(c:char):Point; begin Write('Координаты точки ',c,': '); Read(Result.x,Result.y); end;
procedure Quarter(a:Point); begin Write('Точка (',a.x,',',a.y,') '); if a.x<0 then begin if a.y>0 then Writeln('принадлежит II четверти') else if a.y=0 then Writeln('лежит на оси абсцисс') else Writeln('принадлежит III четверти') end else if a.x=0 then begin if a.y=0 then Writeln('лежит на пересечении координатных осей') else Writeln('лежит на оси ординат') end else if a.y<0 then Writeln('принадлежит IV четверти') else begin if a.y=0 then Writeln('лежит на оси абсцисс') else Writeln('принадлежит I четверти') end end;
begin var a,b:Point; a:=ReadPoint('A'); b:=ReadPoint('B'); Quarter(a); Quarter(b); Write('Расстояние от точки А до начала координат: '); Writeln(sqrt(sqr(a.x)+sqr(b.x))) end.
Тестовое решение: Координаты точки A: -3.7 1.73 Координаты точки B: 6 8 Точка (-3.7,1.73) принадлежит II четверти Точка (6,8) принадлежит I четверти Расстояние от точки А до начала координат: 7.04911341943084
Первая предполагает, что кбит/с - это системная единица Си и тогда 1кбит/с = 1000 бит/с. Вторая - что кбит/с, как и Кбайт/с - единица внесистемная, и тогда 1 кбит/с = 1024 бит/с.
Правильным является первый вариант при написании по стандарту кбит/с, а во втором варианте надо писать Кбит/с. Именно заглавная буква К (и М в мегабитах, мегабайтах) указывают на внесистемность единицы.
Однако, 128 кбит/с кратно степени 2, а не 10, что показывает мнение составителя задачи о том, что 1 кбит = 1024 бита. Условно примем эту версию.
1. Определяем количество фрагментов
350 Мбайт / 10 Мбайт = 35 фрагментов
2. Время отправки запроса на сервер
32 Кбайт / 128 кбит/с = 32 Кбайт / (128/8 Кбайт/с) = 2 с
3. Время приема одного фрагмента
10 Мбайт / 4 Мбит/с = 10 Мбайт / (4/8 Мбайт/с) = 20 с
4. Время отправки подтверждения
16 Кбайт / 128 кбит/с = 16 Кбайт / (128/8 Кбайт/с)= 1с
5. Время на каждый пакет, кроме последнего
2+20+1=23 с
6. Общее время на все пакеты, кроме последнего
23 х 34 = 782 с
7. Время на последний пакет (подтверждение можно не передавать)
2+20 = 22 с
8. Общее время
782+22 = 804 с или 13 минут и 24 секунды
type
Point=record
x,y:real
end;
function ReadPoint(c:char):Point;
begin
Write('Координаты точки ',c,': ');
Read(Result.x,Result.y);
end;
procedure Quarter(a:Point);
begin
Write('Точка (',a.x,',',a.y,') ');
if a.x<0 then begin
if a.y>0 then Writeln('принадлежит II четверти')
else
if a.y=0 then Writeln('лежит на оси абсцисс')
else Writeln('принадлежит III четверти')
end
else
if a.x=0 then begin
if a.y=0 then Writeln('лежит на пересечении координатных осей')
else Writeln('лежит на оси ординат')
end
else
if a.y<0 then Writeln('принадлежит IV четверти')
else begin
if a.y=0 then Writeln('лежит на оси абсцисс')
else Writeln('принадлежит I четверти')
end
end;
begin
var a,b:Point;
a:=ReadPoint('A'); b:=ReadPoint('B');
Quarter(a); Quarter(b);
Write('Расстояние от точки А до начала координат: ');
Writeln(sqrt(sqr(a.x)+sqr(b.x)))
end.
Тестовое решение:
Координаты точки A: -3.7 1.73
Координаты точки B: 6 8
Точка (-3.7,1.73) принадлежит II четверти
Точка (6,8) принадлежит I четверти
Расстояние от точки А до начала координат: 7.04911341943084