Сложить X и Y в обратном и дополнительном кодах.
Результат перевести в прямой код. Проверить,
пользуясь правилами двоичной арифметики.
X= -11010, Y= 1001111
X= -11101, Y= -100110
Сложить X и Y в модифицированном обратном и
модифицированном дополнительном
восьмиразрядных кодах. Результат перевести в
прямой код и проверить, пользуясь правилами
двоичной арифметики.
X= 10110, Y= 110101
Первая предполагает, что кбит/с - это системная единица Си и тогда 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 секунды
Const
n=15;
Var
ar:array[1..n] of integer;
sum,i:integer;
begin
randomize;
writeln('First array:');
for i:=1 to n do
begin
ar[i]:=random(2,23);
write(ar[i]:4);
sum:=sum+sqr(ar[i]);
end;
writeln;
writeln('Sum=',sum);
writeln('Final array:');
for i:=1 to n do
begin
ar[i]:=ar[i]+ar[n];
write(ar[i]:4);
end;
end.
Пример работы программы:
First array:
19 21 10 13 7 13 9 2 22 20 10 7 17 7 22
Sum=3229
Final array:
41 43 32 35 29 35 31 24 44 42 32 29 39 29 44