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
1) var a, b: array [1..10] of integer; i, sum: integer; begin sum := 0; for i := 1 to 10 do b[i] := 0; for i := 1 to 10 do begin read(a[i]); if a[i] < 0 then begin sum := sum + 1; b[i] := i; end; end; writeln('Amount of negative numbers: ', sum); for i := 1 to 10 do if b[i] <> 0 then write(b[i], ' '); end.
2) var a: array [1..10] of integer; i: integer; flag: boolean; begin flag := false; randomize; for i := 1 to 10 do begin a[i] := random(10); if a[i] = 5 then flag := true; end; for i := 1 to 10 do write(a[i], ' '); if flag then writeln('YES') else writeln('NO'); end.
3) var a: array [1..10] of integer; i, ind, odd: integer; begin randomize; ind := 0; for i := 1 to 10 do begin a[i] := random(10); if a[i] mod 2 <> 0 then begin ind := i; odd := a[i]; end; end; for i := 1 to 10 do write(a[i], ' '); if ind <> 0 then writeln(a[ind], ' ', ind) else writeln('Array has no odd elements'); end.
4) var a: array [1..10] of integer; i: integer; begin writeln; randomize; for i := 1 to 10 do begin a[i] := random(20); write(a[i], ' '); end; writeln; for i := 1 to 10 do if (a[i] < 15) and(a[i] > 5) then write(a[i], ' '); end.
ответ: 357
Объяснение: 3 - begin c ";" это неверно
5 - нету цифры "3" на "<20 do"
7 - нету ";" в конце условия