Begin writeln('Введите первое число'); readln(a); writeln('Введите второе число'); readln(b);
if (a<0) and (b<0) then Begin a:=a+2; b:=b+2; writeln('a = ',a); writeln('b = ',b); end else if (a>0) and (b<0) then writeln('a*b = ',a*b) else if (a<0) and (b>0) then writeln('b-a = ', b-a)
Вычисления во вложении. Последнее деление на самом деле можно было бы "в столбик" и не писать, и так понятно, какой будет результат.
2. Переводим в двоичную систему счисления и дописываем вперед незначащие нули, пока не наберётся 8 знаков:
3. Добавляется знаковый бит: дописываем вперед 0, если число положительное, и 1, если отрицательное. Для неотрицательных чисел по сути ничего не меняется, а отрицательные представляем в дополнительном коде: меняем все биты на противоположные и добавляем к результату 1. -56: меняем биты на противоположные (получаем 11100011) и добавляем 1. Окончательно получается
uses crt;
var a,b:real;
Begin
writeln('Введите первое число');
readln(a);
writeln('Введите второе число');
readln(b);
if (a<0) and (b<0)
then
Begin
a:=a+2;
b:=b+2;
writeln('a = ',a);
writeln('b = ',b);
end
else
if (a>0) and (b<0)
then
writeln('a*b = ',a*b)
else
if (a<0) and (b>0)
then
writeln('b-a = ', b-a)
else writeln('Ни одно условие не выполняется');
readln;
end.
Вычисления во вложении. Последнее деление на самом деле можно было бы "в столбик" и не писать, и так понятно, какой будет результат.
2. Переводим в двоичную систему счисления и дописываем вперед незначащие нули, пока не наберётся 8 знаков:
3. Добавляется знаковый бит: дописываем вперед 0, если число положительное, и 1, если отрицательное. Для неотрицательных чисел по сути ничего не меняется, а отрицательные представляем в дополнительном коде: меняем все биты на противоположные и добавляем к результату 1.
-56: меняем биты на противоположные (получаем 11100011) и добавляем 1. Окончательно получается