1) 52-28
52 прям.код 0 0110100 (первый ноль знак числа +)
- 28 пр. код 1 0011100 (1 - знак "-")
- 28 об.код 1 1100011 (образуется путем инвертирования)
-28 доп. код 1 1100100 (<span>образуется путем прибавления 1 к младшему разряду обр.кода)
</span>0 0110100 +<span>1 1100100=1 0 0011000 (1 -перенос отбрасывается)
</span>+<span>11000 = 16+8=24 (10)
</span>2) 14 пр.код 0 0001110
-81 пр.код 1 1010001
-81 обр.код 1 0101110
-81доп. код 1 0101111
0 0001110+1 0101111= 1 0111101 это допол.код -67
При переводе в прямой биты результата инвертируются и к младшему разряду + 1
1 1000010+1=1 1000011= - 64+3= - 67
Var
a:array[1..10]of integer;
i:integer;
Begin
For i:= 1 to 10 do
begin
Read(a[i]);
if a[i] mod 2 <>0 then Write(a[i], ' ');
end;
end.
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/
//Более современное решение
// PascalABC.NET 3.3, сборка 1576 от 16.11.2017
// Внимание! Если программа не работает, обновите версию!
Begin
var a:= ReadlnString('Введите массив').ToIntegers;
SetLength(a, 10);
a.Where(t->t.isOdd).Println;
end.
Линейная структура на языке<u>Pascal</u>
Нахождение расстояния
var V,S,t:real;
begin
readln(V,t);
S:=V*t;
writeln(S);
end.
Ветвление
var a,b:integer;
begin
readln(a,b);
if (a>b) then writeln('+++') else
writeln('---');
readln;
end.
Цикл
var i:integer;
begin
for i:=1 to 5 do writeln(i);
readln;
end.