При сложении в двоичной системе системе счисления двух единиц в данном разряде будет 0 и появится перенос единицы в старший разряд.
При вычитании из нуля единицы производится заём единицы из старшего разряда, где есть 1. Единица, занятая в этом разряде, даёт две единицы в разряде, где вычисляется действие, а также по единице, во всех промежуточных разрядах.
// PascalABC.NET 3.2, сборка 1478 от 10.06.2017 // Внимание! Если программа не работает, обновите версию!
№1
function Swp(Self:array of real):sequence of real; extensionmethod; begin foreach var x in Self do begin var s:=x.ToString; var p:=Pos('.',s); Swap(s[p-2],s[p-1]); Swap(s[p+1],s[p+2]); yield s.ToReal end end;
begin var a:=SeqRandom(25,3700000,9000000).Select(x->x/1000).ToArray; a.Println; a.Swp.Println end.
function F(Self:array of integer):sequence of string; extensionmethod; begin foreach var m in Self do begin var (i,k,s):=(m,0,0); while i<>0 do begin var d:=i mod 10; s+=d; k+=1; i:=i div 10 end; yield m+' '+m.ToString.Inverse+' k='+k+', s='+s end end;
begin ArrRandom(20,50,25000).F.Println(NewLine) end.
function DMS(Self:array of real):sequence of string; extensionmethod; begin foreach var x in Self do begin var g:=Trunc(x); var t:=Frac(x)*60; var m:=Trunc(t); var s:=Round(Frac(t)*60); if s=60 then (m,s):=(m+1,0); yield g+'^'+m++s+'"' end end;
begin var a:=SeqRandom(30,0,36000).Select(x->x/100).ToArray; a.Println; a.DMS.Println end.
При сложении в двоичной системе системе счисления двух единиц в данном разряде будет 0 и появится перенос единицы в старший разряд.
При вычитании из нуля единицы производится заём единицы из старшего разряда, где есть 1. Единица, занятая в этом разряде, даёт две единицы в разряде, где вычисляется действие, а также по единице, во всех промежуточных разрядах.
Объяснение: