const N=30; var a: array [1..N] of integer; i,j,s: integer; begin for i:=1 to N do readln(a[i]); for i:=1 to N do if (a[i]>99)and(a[i]<1000) then if (a[i] mod 2)<>0 then begin s:=s+a[i]; j:=j+1; end; if j=0 then writeln('в массиве нет нечётных трехзначных чисел') else writeln('среднее арифметическое нечётных трехзначных чисел: ',s/j); end.
задача 2
const N=40; var a: array [1..N] of integer; i,x,y: integer; s: real; begin for i:=1 to N do readln(a[i]); x:=abs(a[1]); for i:=1 to N do if (a[i]>0)and((a[i] mod x)=0) then begin y:=y+1; s:=s+a[i]; end; if y=0 then writeln('в массиве нет нечётных трехзначных чисел') else writeln('среднее арифметическое положительных чисел кратных первому элементу: ',s/y); end.
задача 3
const N=30; var a: array [1..N] of integer; i,s,m: integer; begin for i:=1 to N do readln(a[i]); m:=a[1]; for i:=2 to N do if a[i]>m then m:=a[i]; for i:=1 to N do if a[i]=m then s:=s+1; if s=1 then writeln('в массиве только один максимальный элемент') else writeln('число элементов, равных максимальному: ',s-1); end.
Для перевода чисел в дополнительный код, нужно: 1) перевести в двоичную систему счисления 0000 1101 13 0000 0111 7 2) инвертировать (заменить 0 на 1 и наоборот) 1111 0010 1111 1000 3) и прибавить 1 1111 0011 1111 1001 все) числа в дополнительном коде мы получили
теперь сложение: 1111 0011 1111 1001 + 1 1110 1100 мы получили переполнение и единицу в старшем разряде, это значит, сумма будет со знаком минус теперь переведем сумму в обычный код, не трогаем старший бит 1) _001 0011 инвертируем биты 2) _001 0100 прибавим 1 3) переводим в десятичную систему счисления: 20
вспоминаем, что сумма отрицательная, поэтому ответ будет: -20 ------------ для положительных чисел нужно перевести в двоичную систему Например: 2 + 3 0000 0010 - 2 0000 0011 - 3 и сложить 0000 0101 - = 2 + 4 = 6 у положительных дополнительный код совпадает с прямым кодом
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку