Как известно целое натуральное число n называется треугольным, если его можно представить в виде n= k(k+1) /2 где k целое число Нам дано число n, нужно определить, является ли оно треугольным решить на Паскале.
Я бы посоветовал вместо прямого перевода 2 <-> 10 работать через 16ричную систему счисления. Алгоритмы те же, вычислений меньше, значит меньше и ошибок. А двоичные значения 16 цифр очень легко запомнить.
Замечание1. Для решения последнего примера нужно, конечно, знать таблицу сложения 16-ричных цифр.
Замечание2 Напомню перевод 10 ->16, повторюсь, алгоритм тот же, что и 10->2
Например
122/16 = 7 (ост 10), значит 122=7Аh
Замечание3 И последнее, в практической деятельности 2-ичная система практически не используется, профессионалы, если нужно, работают с 16-ричной(это связано с тем, что байт, так уж случилось, равен 8 бит).
В двоичном числе каждый разряд справа налево представляет собой степень двойки. Первый разряд имеет 0 степень. Далее для остальных разрядов степень увеличивается, а для дробной части уменьшается. Для перевода в десятичную систему счисления нужно перевести все единицы в числе в соответствующие им степени двойки и сложить. Возьмём число 111011,001: Распишем по разрядам: 1 (-3 разряд) = 2^-3 = 1/8 0 (-2 разряд) 0 (-1 разряд) , 1 (1 разряд) = 2^0 = 1 1 (2 разряд) = 2^1 = 2 0 (3 разряд) 1 (4 разряд) = 2^3 = 8 1 (5 разряд) = 2^4 = 16 1 (6 разряд) = 2^5 = 32 Теперь нужно сложить полученные числа: 1/8 + 1 + 2 + 8 + 16 + 32 = 59.125 ответ: 111011,001(10) = 59.125(10)
Я бы посоветовал вместо прямого перевода 2 <-> 10 работать через 16ричную систему счисления. Алгоритмы те же, вычислений меньше, значит меньше и ошибок. А двоичные значения 16 цифр очень легко запомнить.
Гляди, как просто получится
1.
96 = 60h = 0110 0000b
53 = 35h = 0011 0101b
74 = 4Ah = 0100 1010b
80 = 50h = 0101 0000b
122=7Ah= 0111 1010b
2.
1010011b = 0101 0011b = 53h = 5*16+3=83
10011101b= 1001 1101b = 9Dh = 9*16+13 = 157
11011111b= 1101 1111b = DFh = 13*16+15= 223
3.
1010011b + 110101b = 0101 0011b + 0011 0101b = 53h + 35h = 88h = 1000 1000b
11011111b + 1111010b = 1101 1111b + 0111 1010b = DFh+7Ah = 159h= 0001 0101 1001b
Замечание1. Для решения последнего примера нужно, конечно, знать таблицу сложения 16-ричных цифр.
Замечание2 Напомню перевод 10 ->16, повторюсь, алгоритм тот же, что и 10->2
Например
122/16 = 7 (ост 10), значит 122=7Аh
Замечание3 И последнее, в практической деятельности 2-ичная система практически не используется, профессионалы, если нужно, работают с 16-ричной(это связано с тем, что байт, так уж случилось, равен 8 бит).
Ну, вроде всё.
Первый разряд имеет 0 степень. Далее для остальных разрядов степень увеличивается, а для дробной части уменьшается.
Для перевода в десятичную систему счисления нужно перевести все единицы в числе в соответствующие им степени двойки и сложить.
Возьмём число 111011,001:
Распишем по разрядам:
1 (-3 разряд) = 2^-3 = 1/8
0 (-2 разряд)
0 (-1 разряд)
,
1 (1 разряд) = 2^0 = 1
1 (2 разряд) = 2^1 = 2
0 (3 разряд)
1 (4 разряд) = 2^3 = 8
1 (5 разряд) = 2^4 = 16
1 (6 разряд) = 2^5 = 32
Теперь нужно сложить полученные числа:
1/8 + 1 + 2 + 8 + 16 + 32 = 59.125
ответ: 111011,001(10) = 59.125(10)