Прямой код - это когда старший бит (крайняя левая цифра) обозначает знак числа: 0 - плюс, 1 - минус. Остальные - само число. В твоем случае оба числа положительные. Чтобы перевести в десятичную систему, надо крайний правый бит умножить на 2^0, второй справа на 2^1, третий справа на 2^2 итд, а потом сложить все это.
a) (иду слева, старший бит пропускаю) 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 = 64 + 8 + 4 = 76
б) 0*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 16 + 4 + 1 = 21
<em>// PascalABC.NET 3.2, сборка 1425 от 22.04.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrFill(ReadInteger('n='),0);
a[0]:=1; a[a.Length-1]:=1; a.Println;
end.
<u>Пример</u>
n= 10
1 0 0 0 0 0 0 0 0 1
<em>1) 100001100 = 1∙2^8 + 0∙2^7 + 0∙2^6 + 0∙2^5 + 0∙2^4 + 1∙2^3 + 1∙2^2 + 0∙2^1 + 0∙2^0 = 268</em><span>
<em>2) путем долгого деления получилось 10001001</em>
<em>3 a) </em></span><em>151 = 1∙8^2 + 5∙8^1 + 1∙8^0</em><span><em> = 105</em>
</span><em>3 б) 2C</em><span><em> = 2∙16^</em></span><em>1</em><span><em> + C∙16^</em></span><em>0</em><span><em> = 44</em></span>
{ Если в Вашей версии система "ругается" на sign, раскомментируйте
текст определения этой функции. В противном случае удалите все комментарии }
{
function sign(x:real):integer;
begin
if x<0 then sign:=-1
else
if x>0 then sign:=1 else sign:=0
end;
}
var
x1,x2,y1,y2:real;
begin;
Write('Введите через пробел координаты точки 1: ');
Read(x1,y1);
Write('Введите через пробел координаты точки 2: ');
Read(x2,y2);
if (sign(x1)=sign(x2)) and (sign(y1)=sign(y2))
then Writeln('Точки находятся в одной четверти')
else Writeln('Точки находятся в разных четвертях')
end.
<em><u>Тестовое решение:</u></em>
Введите через пробел координаты точки 1: -3.5 8.1
Введите через пробел координаты точки 2: -5 4
Точки находятся в одной четверти
Есть два варианта:
1) Они поплыли на другой лодке а ту оставили у причала.
2) Лодка по течению поплыла сома.
А если не какой то это невозможно.
Но первый вариант надёжней.