//Блок-схема во вложении //Pascal ABC.NET v3.1 сборка 1172
Var ma:array of array of integer; i,j,r,n,m,s:integer; begin randomize; readln(n); readln(m); setlength(ma,n); for i:=0 to n-1 do setlength(ma[i],m); writeln('Matrix:'); for i:=0 to n-1 do begin writeln; for j:=0 to m-1 do begin ma[i,j]:=random(50); write(ma[i,j]:4); end; end; writeln; writeln('Res:'); for i:=0 to n-1 do begin for j:=0 to m-1 do s:=s+ma[i,j]; writeln(i+1,' ',s); s:=0; end; end.
У нас есть скорость передачи в кбит/с и мбит/с. Нужно определиться, в каких отношениях находятся кбит/с и бит/с, потому что тут есть две трактовки. Первая предполагает, что кбит/с - это системная единица Си и тогда 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 секунды
//Pascal ABC.NET v3.1 сборка 1172
Var
ma:array of array of integer;
i,j,r,n,m,s:integer;
begin
randomize;
readln(n);
readln(m);
setlength(ma,n);
for i:=0 to n-1 do
setlength(ma[i],m);
writeln('Matrix:');
for i:=0 to n-1 do
begin
writeln;
for j:=0 to m-1 do
begin
ma[i,j]:=random(50);
write(ma[i,j]:4);
end;
end;
writeln;
writeln('Res:');
for i:=0 to n-1 do
begin
for j:=0 to m-1 do
s:=s+ma[i,j];
writeln(i+1,' ',s);
s:=0;
end;
end.
Пример ввода:
10
15
Пример вывода:
Matrix:
12 1 21 15 36 30 12 13 46 40 22 48 20 48 7
48 37 49 25 37 41 29 23 34 45 38 14 21 13 3
48 27 29 26 18 28 24 20 21 41 18 10 48 8 46
5 7 48 9 31 46 35 11 36 41 33 28 37 20 47
15 41 0 43 42 44 19 44 30 29 24 16 28 34 18
30 31 14 37 39 30 16 11 32 6 13 16 42 35 35
0 37 49 23 25 27 10 5 16 2 36 13 18 30 7
30 6 26 18 11 1 14 49 31 17 49 29 17 37 28
28 26 8 44 28 36 16 5 8 41 19 25 47 35 2
17 48 31 25 26 6 39 24 23 33 35 37 18 6 26
Res:
1 371
2 457
3 412
4 434
5 427
6 387
7 298
8 363
9 368
10 394