Скорее всего попробовать в paint'e написать какой-то текст, написать о том, какие возможности он предоставляет. Тоже самое и о возможностях печати, что через него можно распечатать изображение
Потому что соединение не идеально, оно прерывается, некоторые данные по пути теряются. Допустим, я хочу передать файл по интернету. Если файл небольшой, то велика вероятность, что он не пострадает. В противном случае можно потратить много времени на передачу части файла, после чего данные передадутся с ошибкой, которую мы обнаружим только после передачи всего файла. Передавая информацию пакетами же можно этого избежать, так как любая потеря данных будет сразу видна по плохому пакету. После этого можно эту ошибку сразу и обработать и, допустим запросить повтор предыдущего пакета или попытаться починить пакет, прибывший с ошибкой.
// PascalABC.NET 3.3.5, сборка 1644 от 23.03.2018 // Внимание! Если программа не работает, обновите версию!
function aToDec(n:string;k:integer):string; // Перевод из системы по основанию k в десятичную begin var s:='0123456789ABCDEF'; Result:=''; var PointPos:=Pos('.',n); if PointPos>0 then begin // есть дробная часть var sFracPart:=n[PointPos+1:]; var r:=0.0; var p:=k; foreach var c in sFracPart do begin r+=(Pos(c,s)-1)/p; p*=k; end; Result:=r.ToString[2:] end else PointPos:=n.Length+1; var pa:=1; n:=n[:PointPos]; var p:=0; foreach var c in n.Reverse do begin p+=pa*(Pos(c,s)-1); pa*=k end; Result:=p.ToString+Result end;
function DecToa(n:string;k:integer):string; // Перевод из десятичной системы в систему по основанию k begin var s:='0123456789ABCDEF'; Result:=''; var PointPos:=Pos('.',n); var IntPart:integer; if PointPos>0 then begin // есть дробная часть var FracPart:=Frac(n.ToReal); var m:=0; while True do begin var r:=FracPart*k; Result+=s[Trunc(r)+1]; FracPart:=Frac(r); m+=1; if (m=15) or (FracPart=0) then break end; IntPart:=n[:PointPos].ToInteger; end else IntPart:=n.ToInteger; if Result<>'' then Result:='.'+Result; while IntPart>0 do begin Result:=s[IntPart mod k+1]+Result; IntPart:=IntPart div k end; if Result='' then Result:='0'; if Result[1]='.' then Result:='0'+Result end;
function AtoB(s:string;A,B:integer):string; // Перевод из системы по основанию A в систему по основанию B begin if A=10 then Result:=DecToa(s,B) else if B=10 then Result:=aToDec(s,A) else Result:=DecToa(aToDec(s,A),B) end;
begin var n:=ReadlnString('Какое число перевести?'); var (a,b):=ReadInteger2('Исходное и результирующее основания:'); Writeln(n,'(',a,') = ',AtoB(n,a,b),'(',b,')'); end.
Пример Какое число перевести? 345.653 Исходное и результирующее основания: 8 16 345.653(8) = E5.D58(16)
Скорее всего попробовать в paint'e написать какой-то текст, написать о том, какие возможности он предоставляет. Тоже самое и о возможностях печати, что через него можно распечатать изображение
Объяснение: