16 градаций = 16 разных значений = , значит для хранения 1 пикселя нам хватит 4 бита (0.5 байта). Всего имеем 100х500 точек (500 000 точек) размером 4 бита каждая. И всё это нам необходимо передать за 2 секунды со скоростью 2800 бит/c. Решение задачи сходится до решения равенства: (500 000 точек * 4 бита) / 2 секунды = 2800 бит/c 2 000 000 бит / 2 секунды = 2800 бит/c 1 000 000 бит/c = 2800 бит/c
Очевидно, что файл не может быть загружен за 2 сек, посколько за такое время его можно загрузить только со скоростью 2 000 000 бит/c.
Var A, B, C: array[1..15] of real; i, m, max_weight, b_n, c_n, N, max: integer; s: real;
begin N := 15; m := 10; max_weight := 50;
writeln('ВВедите массы состава ', m, ' состоящего из ', n, ' вагонов'); for i := 1 to n do begin write('Масса вагона № ', i, ' = '); readln(a[i]); end; writeln();
writeln('Все вагоны:'); for i := 1 to n do writeln('Вагон №', i, ' = ', a[i], ' тон'); writeln();
writeln('Порожние вагоны:'); for i := 1 to n do if (A[i] <= m) then writeln('Вагон №', i); writeln();
s := 0; writeln('Груженные вагоны:'); for i := 1 to n do if (A[i] > m) then begin s := s + a[i]; writeln('Вагон №', i); end; Writeln('Сумма масс груженных вагонов = ', s);
{// if s > max_weight then begin // writeln('Превышение массы! Состав не будет сформирован'); // exit; // end;}
writeln; writeln('Новый состав:'); s := 0; for i := 1 to n do if (A[i] > m) and (s + A[i] <= max_weight) then begin b_n := b_n + 1; s := s + A[i]; B[b_n] := A[i]; writeln('Вагон №', b_n, ' = ', B[b_n], ' тон'); end else begin c_n := c_n + 1; C[c_n] := A[i]; end;
writeln(); writeln('Остаток:'); for i := 1 to c_n do writeln('Вагон №', i, ' = ', C[i], ' тон'); writeln();
max := 1; for i := 1 to b_n do if B[i] > B[max] then max := i;
writeln('Максимальная масса в составе: Вагон №', max, ' = ', B[max], ' тон'); end.
(500 000 точек * 4 бита) / 2 секунды = 2800 бит/c
2 000 000 бит / 2 секунды = 2800 бит/c
1 000 000 бит/c = 2800 бит/c
Очевидно, что файл не может быть загружен за 2 сек, посколько за такое время его можно загрузить только со скоростью 2 000 000 бит/c.
ответ: Нет, не может.
A, B, C: array[1..15] of real;
i, m, max_weight, b_n, c_n, N, max: integer;
s: real;
begin
N := 15;
m := 10;
max_weight := 50;
writeln('ВВедите массы состава ', m, ' состоящего из ', n, ' вагонов');
for i := 1 to n do
begin
write('Масса вагона № ', i, ' = ');
readln(a[i]);
end;
writeln();
writeln('Все вагоны:');
for i := 1 to n do
writeln('Вагон №', i, ' = ', a[i], ' тон');
writeln();
writeln('Порожние вагоны:');
for i := 1 to n do
if (A[i] <= m) then
writeln('Вагон №', i);
writeln();
s := 0;
writeln('Груженные вагоны:');
for i := 1 to n do
if (A[i] > m) then begin
s := s + a[i];
writeln('Вагон №', i);
end;
Writeln('Сумма масс груженных вагонов = ', s);
{// if s > max_weight then begin
// writeln('Превышение массы! Состав не будет сформирован');
// exit;
// end;}
writeln;
writeln('Новый состав:');
s := 0;
for i := 1 to n do
if (A[i] > m) and (s + A[i] <= max_weight) then begin
b_n := b_n + 1;
s := s + A[i];
B[b_n] := A[i];
writeln('Вагон №', b_n, ' = ', B[b_n], ' тон');
end
else begin
c_n := c_n + 1;
C[c_n] := A[i];
end;
writeln();
writeln('Остаток:');
for i := 1 to c_n do
writeln('Вагон №', i, ' = ', C[i], ' тон');
writeln();
max := 1;
for i := 1 to b_n do
if B[i] > B[max] then
max := i;
writeln('Максимальная масса в составе: Вагон №', max, ' = ', B[max], ' тон');
end.