3. Рухаючи повзунок відображення системи органів, яка задає рівень глибини проникнення, та керуючи масштабуванням зробіть висновок (описавши нижче) за ціллю завдання. Body
Задание 1. а) представим -17₁₀ в обратном коде на 8-битном регистре - запишем число 17₁₀ в двоичной системе: 10001₂ - дополним его слева нулями до 8 знаков: 00010001 - поскольку число отрицательное, инвертируем каждый разряд, т.е. заменяем 0 на 1, а 1 на 0: 11101110 б) представим 22 в обратном коде на 8-битном регистре - запишем число 22₁₀ в двоичной системе: 10110₂ - дополним его слева нулями до 8 знаков: 00010110 - поскольку число положительное, его не нужно менять. в) выполняем сложение Возник перенос в девятый разряд, которого у нас нет (т.е. фактически произошло переполнение регистра). В этом случае перенос нужно осуществить в младший разряд, т.е. сложить результат с единицей и окончательно получим 00000101
Задание 2. а) представим -17₁₀ в дополнительном коде на 8-битном регистре - запишем число 17₁₀ в двоичной системе: 10001₂ - дополним его слева нулями до 8 знаков: 00010001 - поскольку число отрицательное, инвертируем каждый разряд, т.е. заменяем 0 на 1, а 1 на 0: 11101110 - прибавляем единицу в младший разряд: 11101111 б) представим 22 в дополнительном коде на 8-битном регистре - запишем число 22₁₀ в двоичной системе: 10110₂ - дополним его слева нулями до 8 знаков: 00010110 - поскольку число положительное, его не нужно менять. в) выполняем сложение Возник перенос в девятый разряд, которого у нас нет (т.е. фактически произошло переполнение регистра). При суммировании в дополнительном коде переполнение игнорируется, поэтому результат не меняется.
// 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.