Старший разряд в дополнительном коде двоичного числа отвечает за знак числа. 0 ~ "+", 1 ~ "-". 1. если старший разряд равен 0, то последующие разряды напрямую переводятся в число. 2. если старший разряд равен 1, то число отрицательное и следующие за старшим разрядом записываются в виде: инверсия битов+прибавление единицы. следовательно для перевода их в исходное число требуется: вычесть единицу+инверсия но так, как второе число состоит из 7 знаков, то слева дописывается незначащий 0. и мы возвращаемся в пункт 1(или просто число записано с ошибкой и вы потеряли разряд).
teashop
17.08.2020
Var i,n,cnt,tmp,sum, last: integer; a: array [1..9999] of integer; begin writeln('введите кол-во элементов'); readln(n); writeln('введите последовательность -> '); for i: = 1 to n do read(a[i]); writeln(); for i: =1 to n do begin tmp: = a[i]; while tmp > 0 do begin last: =tmp mod 10; tmp: = tmp div 10; end; if last = 2 then begin cnt: = cnt + 1; sum: = sum + a[i]; end; end; writeln('всего элементов: ', cnt); writeln('сумма равна ', sum); end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Программирование, паскаль, посчитать сумму ряда от 3 до n чисел, кратных 3.