8л 5л 3л
Наполнили 5л. 3 5 0Перелили это в 3л, осталось 2 л. 3 2 3 3 л вернули в 8 л. 6 2 02л перелили в 3л. 6 0 2Наполнили 5л из 8л. 1 5 2 Отлили из 5л в 5л 1 4 3перелили 3л в 8л 4 4Число переливаний 7.
{$APPTYPE CONSOLE}
Const
n = 13;
Type
Mass = array[1..n] of integer;
Procedure BbIBOD(Var A:Mass);
Var
i:integer;
Begin
For i:= 1 to n do
Write(' ',A[i])
End;
Function SWP(Var A:Mass; c:real):integer;
Var
i,j:integer;
Begin
For i:= 1 to n do
if (A[i] < 0)and(A[i] <= c) then j:=i;
if j <> 0 then
Begin
WriteLn('Искомый элемент: ',A[j],'[',j,']');
A[j]:=Sqr(A[j]);
i:=A[n-1];
A[n-1]:=A[j];
A[j]:=i;
Write('Новый массив:');
BbIBOD(A);
End
else Write('В массиве нет отрицательных элементов')
End;
Var
A:Mass;
i:integer;
c:real;
Begin
Randomize;
Write('Исходный массив(',n,'):');
For i:= 1 to n do
A[i]:=random(2*n+1)-n;
BbIBOD(A);
WriteLn;
Write('Введите число: ');
ReadLn(c);
SWP(A,c);
ReadLn
End.
Для передачи информации между компьютерами включеных в одну сеть
Крайний левый (восьмой) разряд отводится под знак числа: 0 для положительных и 1 для отрицательных
32 = 00100000
-32 = 10100000 - в прямом коде
= 10100000 - в дополнительном коде
102 = 01100110
-102 = 11100110 - в прямом коде
= 10011010 - в дополнительном коде
126 = 01111110
-126 = 11111110 - в прямом коде
= 10000010 - в дополнительном коде