1) 2^20 = (2^10)*(2^10) = 1 (Мбит/с). 600 Мбайт - это 600*8=4800 Мбит, поэтому для их передачи без сжатия потребуется 4800/1=4800с. Если файл сжат архиватором и занимает объем, равный 20% от исходного, т.е. 0.2*4800=960 Мбит и время на его передачу составит 960/1=960с. Добавим сюда еще 2+1=3с на архивирование и разархивирование, итого получаем 963с. Разница во времени составляет 4800 - 963 = 3837 (с) ответ; Б 3837 2) Канал связи А -> Б по-прежнему 2^20 бит/с или 1 Мбит/с. Канал Б -> В имеет спорость 2^23 бит/с, разница составляет 2^3=8 раз, т.е. канал имеет скорость 8 МБит/с. Файл имеет объем 60 Мбайт или 480 МБит. Из А в Б он будет передаваться 480/1=480с, а из Б в В - 480/8=60с. Вся передача должна занять 480+60=540с По условию минут (600с), поэтому задержка в пункте Б составила 600-540=60с.
procedure Swap(var a: M; i: integer; j: integer); //обменивает местами элементы массива a[i,i] и a[i,j] var buff: integer; begin if i <> j then begin buff := a[i, i]; a[i, i] := a[i, j]; a[i, j] := buff end end;
function GetColMin(a: M; i: integer): integer; // возвращает номер столбца, в котором найден минимальный элемент // по строке с номером i, т.е. a[i,?]=min var j, vmin, jm: integer; begin vmin := 32766; for j := 0 to Length(a, 1) - 1 do if vmin > a[i, j] then begin vmin := a[i, j]; jm := j end; Result := jm end;
procedure SwapMatrix(var a: M); // меняет местами в массиве a[n,n] минимальный по строке элемент с // элементом, лежащим на главной диагонали. // Обращается к функции GetColMin и процедуре Swap var i: integer; begin for i := 0 to Length(a, 0) - 1 do Swap(a, i, GetColMin(a, i)) end;
procedure WriteMas(a: M; title: string); // выводит заголовок, а потом массив построчно var i, j, n: integer; begin n := Length(a, 0) - 1; writeln(title); for i := 0 to n do begin for j := 0 to n do write(a[i, j]:5); writeln end end;
procedure CreateMas(var a: M; n: integer; p: integer; q: integer); // Создает массив a[0..n-1,0..n-1] и заполняет его // данными используя датчик случайных чисел с мощностью "р" // и минимальным значением q var i, j: integer; begin Randomize; SetLength(a, n, n); for i := 0 to n - 1 do for j := 0 to n - 1 do a[i, j] := random(p) + q end;