Задача №1
//Pascal
var i,a,s,k:integer;
begin
s:=0;k:=0;
repeat
readln(a);
if a>12 then begin
k:=k+1;
s:=s+a;
end;
until a=0;
if k<>0 then writeln(s/k)
else writeln('Таких чисел нет');
end.
Задача №2
var
n,p: integer;
begin
p:=1;
readln(n);
while n > 0 do
begin
write(' ', n mod 10);
if n mod 10 < 4 then p:=p * (n mod 10);
n := n div 10
end;
if p<>1 then writeln('Произведение цифр числа ', p)
else writeln('Нет решения');
end.
1. Переводим число в двоичную систему
168.625₁₀ = <span>10101000.101₂
2. Сдвигаем точку влево так, чтобы она отделяла в целой части только одну цифру и фиксируем величину сдвига, как двоичный порядок
</span>10101000.101₂ = <span>1.0101000101₂×2⁷
3. Отбрасываем целую часть, получая мантиссу </span><span>0101000101₂
4. Прибавляем к порядку 127
7+127 = 134₁₀ = 10000110₂
5. Приписываем к порядку его знак - 0 (сдвиг был влево), получая
010000110₂
6. Приписываем справа мантиссу и дополняем её нулями справа до 32 разрядов
</span>01000011001010001010000000000000₂ = 01000011 00101000 10100000 00000000₂
7. Переводим результат в шестнадцатиричную систему счисления, заменяя каждые 4 двоичных цифры соответствующей шестнадцатиричной
01000011 00101000 10100000 00000000₂ = 43 28 A0 00₁₆<span> </span>
Var
i,a:integer;
b,c:real;
Begin
read(a);
for i:=1 to a do begin
read(c);
b:=b+c;
end;
writeln(c/a);
end.
Var c:char;
begin
writeln('Введи скобку');
readln(c);
case c of
'[', '{', '(':writeln('Вы ввели открывающуюся скобку');
']', '}', ')':writeln('Вы ввели закрывающуюся скобку');
else writeln('Вы ввели не скобку, попробуйте еще раз');
end;
<span> end. </span>
<span>var
i:integer;
begin
i:=2;
while i<=100 do
begin
write (i,' ');
i:=i+2;
end;
end.</span>