Перевести из системы счисления по основанию n в десятичную достаточно просто, потому что все действия выполняются в десятичной системе. используется расширенная запись числа в позиционной системе счисления. например, в целом десятичном числе, мы различаем позиции единиц, десятков, сотен и прочих степеней десяти, как основы десятичной системы счисления. например, число 1536 мы произносим: "одна тысяча пятьсот (т.е. пять сотен) тридцать (три по десять, потому что на дцать - это десять) шесть". и выделяем разряды тысяч, сотен, десятков и единиц. а если число записано так: 67453422 - сможем ли мы его сразу же произнести? нет! потому что первая (старшая) цифра шесть - это шесть чего? и мы начинаем от единиц, справа налево отсчитывать разряды - единицы, десятки, и выясняем, что 6 - это десятки миллионов. и говорим: "шесть/десят семь ". переходя к записи можно заметить, что 67453422 = 6 × 10⁷ + 7 × 10⁶ + 4 × 10⁵ + 5 × 10⁴ + 3 × 10³ + 4 × 10² + 2 × 10¹ + 2 × 10⁰ если число не целое, то десятичную дробь мы тоже может записать по . рассмотрим пример. 0.384 - это ноль целых и триста (три сотни) восемьдесят (восемь десятков) четыре тысячных. но это число можно представить и иначе: и теперь пример нецелого числа. 192.64 = 1 × 10² + 9 × 10¹ + 2 × 10⁰ + 6 × 10⁻¹ + 4 × 10⁻² мы проставляем степени десяти начиная с нулевой для позиции единиц влево с нарастанием на единицу и вправо с уменьшением на единицу. это и есть расширенная запись числа. но её можно проводить по любому основанию, а не только по основанию 10. в частности, для двоичной системы мы будем записывать степени уже не десятки. а двойки. 11.101₂ = 1 × 2¹ + 1 × 2⁰ + 1 × 2⁻¹ + 0 × 2⁻² + 1 × 2⁻² и останется только выполнить нужные действия. на единицу можно не умножать, достаточно просто брать сами значения степеней двойки, а на ноль тоже незачем умножать - просто отбрасывать соответствующие слагаемые. получаем 2¹ + 2⁰ + 2⁻¹ + 2⁻³ = 2 + 1 + 1/2 + 1/8 = 3 + 0.5 + 0.125 = 3.625 вот и все! так же поступаем и с прочими примерами. 101.1₂ = 2² + 2⁰ + 2⁻¹ = 4 + 1 + 1/2 = 5.5 1101.1101₂ = 2³ + 2² + 2⁰ + 2⁻¹ + 2⁻² + 2⁻⁴ = 8 + 4 + 1 + 1/2 + 1/4 + 1/16 = 13 + (8+4+1)/16 = 13 + 13/16 = 13.8125
Popov Valentina1324
13.11.2020
Var a: array[1..18] of integer; i,n,n2,max: integer; begin for i: =1 to 18 do begin case i of 1..6: begin write('введите ',i,'-ую оценку по обязательной программе '); readln(a[i]); n: =n+a[i]; if i=6 then begin max: =n; n: =0; n2: =1; end; end; 7..12: begin write('введите ',i-6,'-ую оценку по короткой программе '); readln(a[i]); n: =n+a[i]; if i=12 then begin if n> max then begin max: =n; n2: =2; end; n: =0; end; end; 13..18: begin write('введите ',i-12,'-ую оценку по произвольной программе '); readln(a[i]); n: =n+a[i]; if i=18 then begin if n> max then begin max: =n; n2: =3; end; n: =0; end; end; end; end; case n2 of 1: write('лучшая оценка по обязательной программе = ',max); 2: write('лучшая оценка по короткой программе = ',max); 3: write('лучшая оценка по произвольной программе = ',max); end; end.