М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Dasha16032005
Dasha16032005
06.01.2023 13:38 •  Информатика

(сделайте подробно) 1.перевести десятичное число 125,68 в двоичную, восьмеричную, девятеричную и шестнадцатеричную форму. 2.перевести число 111011,0011012 в десятичную, восьмеричную и шестнадцатеричную форму.

👇
Ответ:
dsokolovskiyp015em
dsokolovskiyp015em
06.01.2023
1. Переводим отдельно целую часть, отдельно - дробную. Целую часть переводим путем последовательного целочисленного деления с остатком на основание системы, в которую осуществляется перевод. Нам надо сделать перевод в системы счисления по основаниям 2, 8 и 16, поэтому выбираем 16 - это даст меньше всего операций деления.
125/16=7 остаток 13.
7 меньше 13, деление прекращаем. Теперь записываем частное, а за ним остатки в обратном порядке (это общее правило, а в нашем случае остаток единственный). Получаем 7 13. Заменяем полученные десятичные числа шестнадцатиричными и получаем 7D.
Теперь переводим дробную часть. Тут надо производить последовательное умножение на основание системы и отбрасывать целые части, записывая их в качестве получаемых цифр числа. Процесс ведут до получения нулевой дробной части или прекращают, если получено необходимое число цифр.
0.68х16=10.88, записываем 10, в 16й системе счисления это А
0.88х16=14.08, 14 ⇒ E
0.08x16=1.28, 1 ⇒ 1
0.28x16=4.48, 4 ⇒ 4
0.48x16=7.68, 7 ⇒ 7
0.68x16=10.88, 10 ⇒ E и все пошло по кругу.
Следовательно, дробная часть не может быть точно представлена в 16й системе счисления.
Ограничимся двумя цифрами после запятой.
Тогда результат перевода запишется так: 125.68(10)=7D.AE(16)
Переход к двоичной системе очень простой, поскольку 16  - это 2 в четвертой степени. Поэтому каждую шестнадцатиричную цифру мы просто заменяем четырьмя двоичными цифрами (так называемой тетрАдой).
7D.AE(16)=0111 1101.1010 1110(2) - очень простая операция.
Перевод из двоичной системы в восьмеричную тоже прост, поскольку 8 - это 2 в кубе. Разбиваем двоичное число на триАды (по три разряда) влево и вправо от десятичной точки и каждую триаду заменяем восьмеричной цифрой (они по написанию совпадают с десятичными). Если разрядов для триады не хватает, дополняем их нулями слева для целой части и справа для дробной.
001 111 101.101 011 100(2)=175.534(8)

2. Перевод из двоичного представления в восьмеричное мы только что делали. Повторим его.
111 011.001 101(2) = 73.15(8)
В шестнадцатиричную систему перевод делается так же, только двоичное число надо разбивать не на триады, а на тетрады. С дополнением нулями, как и для восьмеричной системы.
0011 1011.0011 0100(2) = 3В.34(16)
Осталось сделать перевод в десятичную систему счисления. Конечно, его можно выполнять для любого основания, но лучше брать такое, где меньше всего ненулевых цифр. В двоичном представлении 8 единиц, в восьмеричном и шестнадцатиричном - по 4. Следовательно можно брать или восьмеричное число, или шестнадцатиричное. Допустим, выбрано шестнадцатиричное число. Записываем его в расширенной форме по степеням основания (т.е. 16 в нашем случае):
3B.34_{16}=3\times 16^1+11\times 16^0+3\times 16^{-1}+4\times 16^{-2}= \\ 3\times 16+11+\frac{3}{16}+\frac{4}{16^2}=48+11+ \frac{3}{16}+ \frac{4}{256}=59+\frac{3}{16}+\frac{1}{64}= \\ 59+\frac{3\times 4+1}{64}=59 \frac{13}{64}=59.203125_{10}
4,6(35 оценок)
Открыть все ответы
Ответ:
Sdq2
Sdq2
06.01.2023

program sorting;

const

 N = 10;

var

 v: array[1..N] of integer;

 d: integer;

 i, t: integer;  

 k: boolean;  

begin

 randomize;

 write('ДО сортировки:    ');

 for i := 1 to N do

 begin

   readln(v[i])

   write(v[i]:6);

 end;

}  

 d := N div 2;

 while(d > 0) do

 begin

   k := true;  

   while k do

   begin

     k := false;

     i := 1;

     for i := 1 to N - d do

     begin

       if(v[i] > v[i + d]) then

       begin

         t := v[i];

         v[i] := v[i + d];

         v[i + d] := t;

         k := true;

       end;

     end;

   end;    

   d := d div 2;

 end;

 writeln;

 write('ПОСЛЕ сортировки: ');

 for i := 1 to N do

   write(v[i]:6);

 writeln;

end.

4,5(27 оценок)
Ответ:
Nomatdicov
Nomatdicov
06.01.2023

var

 Numbers: array [1..6] of integer;

 x, summ12, summ56, countN, r : integer;

begin

 for var i := 100000 to 999999 do begin

   // берем каждое число от 100000 до 999999

   x := i;

   for var j := 1 to 6 do begin

   

     // mod - получаем остаток от деления X на 10

     // например для 12345.6 остаток от деления - 6

     Numbers[7 - j] := x mod 10;

     

     //записываем цифры в обратном порядке (справа налево), поэтому [7 - j]

     

     // div - получаем целую часть числа от деления X на 10  

     // например, для 1234.5 целая часть - 12345

     x := x div 10;

     // теперь X будет на 1 разряд меньше (например X = 12345)

     

     // делим 6 раз X на 10

     // например (1) 12345.[6] => (2) 1234.[5] => (3) 123.[4] => (4) 12.[3] => (5) 1.[2] = > 0.[1]

   end;

   

   // считаем суммы двух первых и последних

   summ12 := Numbers[1] + Numbers[2];

   summ56 := Numbers[5] + Numbers[6];

   

   //  и разницу между суммами

   r := summ12 - summ56;

   //  разница может быть 5 или -5

   //  abs() - возвращает модуль числа

   //  приводим разницу в положительное число

   

   // если разница не более 5, то число счастливое

   if(abs(r) <= 5) then countN := countN + 1;

 end;

 

 writeln('Количество счастливых чисел: ', countN);

end.

Объяснение:

для PascalABC

это задача под номером 2

Получив цифры с

x mod y

x div y

можно (для других задач) изменить расчет суммы и условие счета количества

4,7(12 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ