svt5299
?>

Запусти Паскаль и введи программу: var a, b, c:integer; begin a:=−43; b:=abs(a); writeln('abs(−43)=', b); c:=sqr(b); writeln('sqr(b)=', c); c:=sqr(b+b); writeln('sqr(b+b)=', c); end. При запуске программы вывод на экран: abs(−43)= sqr(b)= sqr(b+b)=

Информатика

Ответы

Yeliseeva Verevkin864

abs(−43)=43                                                                                                                                          

sqr(b)=1849                                                                                                                                          

sqr(b+b)=7396

anazarov80
1)  Один байт = 8 бит, максимальное число 2^8 - 1 = 255, если числа без знака.  Для знаковых чисел старший бит отводится под знак числа, следовательно, минимальное число = - 2^7 - 1
 = - 127,  максимальное число = + 127
2)  Число 1607, ячейка двухбайтовая, один бит под знак, следовательно, под число отводится 15 бит,  в двоичном представлении 1607(10) = 11001000111(2), дополняем до 16 бит, старший бит - знаковый - нулевой, так как число положительное
= 0000011001000111(2) - это двоичное представление в двухбайтовой ячейке, чтобы получить шестнадцатиричное представление, разбиваем число справа - налево по 4 бита
0000  0110  0100  0111  и записываем в шестнадцатиричном виде 
0111(2) = 7(16)   0100(2) = 4(16)   0110(2) =6(16)   0000(2) = 0(16)
1607(16) = 0647(16) или без старшего не значащего нуля  = 647(16)
3) для получения дополнительного кода числа, находят обратное число, или инверсию числа,
для этого каждый бит числа изменяют на противоположный, 1 на 0, 0 на 1
105(10) = 1101001(2) - это и есть дополнительный код числа - 105, т.е. дополнительным кодом
числа (- а)   будет число а.
Найдем дополнительный код в однобайтовой ячейке числа 105(10) = 01101001(2),
а) находим обратное  01101001(2)  ->(обратное) ->10010110(2)
б) дополнительный код-> обратный код + 1 ->(дополнительный)->10010111(2), а это число - 105
потому, что отрицательные числа представляются в дополнительном коде.
Если для числа - 105 найти дополнительный код, то получим число 105
10010111(2)->(дополнительный)->01101000+1->01101001 = 69(16) = 16*6+9 = 96+9 = 105
ftyh6
Программу надо сформатировать и тогда её структура будет видна лучше.
А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".

var
  s, k: integer;
label
  met;
begin
  s:=-12;
  k:=90;
  Writeln('s=',s,', k=',k);
  s:=s+10;
  Writeln('s=',s);
met:
  Writeln('Метка met:');
  k:=k+10; Write('k=',k);
  if k<200 then s:=50 else s:=s+k;
  Writeln(', s=',s);
  if k<200 then goto met;
  Writeln('Результат: s=',s)
end.

Результат выполнения программы:
s=-12, k=90
s=-2
Метка met:
k=100, s=50
Метка met:
k=110, s=50
Метка met:
k=120, s=50
Метка met:
k=130, s=50
Метка met:
k=140, s=50
Метка met:
k=150, s=50
Метка met:
k=160, s=50
Метка met:
k=170, s=50
Метка met:
k=180, s=50
Метка met:
k=190, s=50
Метка met:
k=200, s=250
Результат: s=250

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Запусти Паскаль и введи программу: var a, b, c:integer; begin a:=−43; b:=abs(a); writeln('abs(−43)=', b); c:=sqr(b); writeln('sqr(b)=', c); c:=sqr(b+b); writeln('sqr(b+b)=', c); end. При запуске программы вывод на экран: abs(−43)= sqr(b)= sqr(b+b)=
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Leobed917670
luza5
Igorevich1559
Paikina Natalya30
elenaowchinik4842
macmakka
Кулагина_Владимир1179
Катерина Телюкин925
первый вопрос не надо, только 2 3 4 ​
anna-leonova
Стефаниди
plv-57
laktionova-natal
mail5
VladimirovnaKashintsev1151
Как выделяется тело документа?
rudakovam198