Этому есть несколько причин. 1. Если имеется требование объявлять ВСЕ переменные в программе, то это хранит программиста от искаженного указания имен переменных, например, xl вместо x1 или suma вместо summa. 2. Объявление переменных позволяет явно указать их типы, а использование типизированных переменных позволяет с меньшими усилиями добиться правильной записи алгоритма. Например, при типизации переменных последовательность команд c=5 a=3*c c=a/3 недопустима. В самом деле, присваивание необъявленной переменной "с" значения целочисленной константы 5 подразумевает, что она тоже становится целочисленной. Далее, по той же причине необъявленная переменная "а" также получает целый тип. И третий оператор выполняет деление. А такая операция деления дает вещественный результат и присваивание его целочисленной переменной "с" недопустимо, потом что приведет к потере дробной части. И мы получаем сообщение об ошибке, т.е. можем вовремя ошибку увидеть и исправить её. 3. Некоторые системы программирования независимо от того, объявлена переменная или нет, очищают её нулём (или делают пустой, если переменная символьная). А некоторые этого не делают. Появление в программе необъявленной переменной с таким неопределенным значением может вызывать неожиданное поведение этой программы. Многие системы, в которых объявление переменных обязательно, выдают сообщение, что переменной не было присвоено начальное значение, что также избегать ошибок. 4. При объявлении переменных в одном месте, им всем отводится одна область памяти, что уменьшает затраты вычислительной системы на адресацию памяти и делает программу компактнее, а также ускоряет её работу. Особенно это важно при нехватке оперативной памяти, когда программа вынужденно использует виртуальную память, которая располагается на внешнем носителе.
1. Если имеется требование объявлять ВСЕ переменные в программе, то это хранит программиста от искаженного указания имен переменных, например, xl вместо x1 или suma вместо summa.
2. Объявление переменных позволяет явно указать их типы, а использование типизированных переменных позволяет с меньшими усилиями добиться правильной записи алгоритма. Например, при типизации переменных последовательность команд c=5 a=3*c c=a/3 недопустима. В самом деле, присваивание необъявленной переменной "с" значения целочисленной константы 5 подразумевает, что она тоже становится целочисленной. Далее, по той же причине необъявленная переменная "а" также получает целый тип. И третий оператор выполняет деление. А такая операция деления дает вещественный результат и присваивание его целочисленной переменной "с" недопустимо, потом что приведет к потере дробной части. И мы получаем сообщение об ошибке, т.е. можем вовремя ошибку увидеть и исправить её.
3. Некоторые системы программирования независимо от того, объявлена переменная или нет, очищают её нулём (или делают пустой, если переменная символьная). А некоторые этого не делают. Появление в программе необъявленной переменной с таким неопределенным значением может вызывать неожиданное поведение этой программы. Многие системы, в которых объявление переменных обязательно, выдают сообщение, что переменной не было присвоено начальное значение, что также избегать ошибок.
4. При объявлении переменных в одном месте, им всем отводится одна область памяти, что уменьшает затраты вычислительной системы на адресацию памяти и делает программу компактнее, а также ускоряет её работу. Особенно это важно при нехватке оперативной памяти, когда программа вынужденно использует виртуальную память, которая располагается на внешнем носителе.
118 / 2 = 59 (в остатке 0)
59 / 2 = 29 (в остатке 1)
29 / 2 = 14 (в остатке 1)
14 / 2 = 7 (в остатке 0)
7 / 2 = 3 (в остатке 1)
3 / 2 = 1 (в остатке 1)
1 / 2 = 0 (в остатке 1)
236(10) = 11101100(2)
236 / 8 = 29 (в остатке 4)
29 / 8 = 3 (в остатке 5)
3 / 8 = 0 (в остатке 3)
236(10) = 354(8)
236 / 16 = 14 (в остатке 12 - C)
14 / 16 = 0 (в остатке 14 - E)
236(10) = EC(16)
б) 1010 / 2 = 505 (в остатке 0)
505 / 2 = 252 (в остатке 1)
252 / 2 = 126 (в остатке 0)
126 / 2 = 63 (в остатке 0)
63 / 2 = 31 (в остатке 1)
31 / 2 = 15 (в остатке 1)
15 / 2 = 7 (в остатке 1)
7 / 2 = 3 (в остатке 1)
3 / 2 = 1 (в остатке 1)
1 / 2 = 0 (в остатке 1)
1010(10) = 1111110010(2)
1010 / 8 = 126 (в остатке 2)
126 / 8 = 15 (в остатке 6)
15 / 8 = 1 (в остатке 7)
1 / 8 = 0 (в остатке 1)
1010(10) = 1762(8)
1010 / 16 = 63 (в остатке 2)
63 / 16 = 3 (в остатке 15 - F)
3 / 16 = 0 (в остатке 3)
1010(10) = 3F2(16)
в) Переведем целую часть:
370 / 2 = 185 (в остатке 0)
185 / 2 = 92 (в остатке 1)
92 / 2 = 46 (в остатке 0)
46 / 2 = 23 (в остатке 0)
23 / 2 = 11 (в остатке 1)
11 / 2 = 5 (в остатке 1)
5 / 2 = 2 (в остатке 1)
2 / 2 = 1 (в остатке 0)
1 / 2 = 0 (в остатке 1)
Переведем дробную часть:
0,125 * 2 = 0,25 (целая часть 0)
0,25 * 2 = 0,5 (целая часть 0)
0,5 * 2 = 1 (целая часть 1)
370,125(10) = 101110010,001(2)
Переведем целую часть:
370 / 8 = 46 (в остатке 2)
46 / 8 = 5 (в остатке 6)
5 / 8 = 0 (в остатке 5)
Переведем дробную часть:
0,125 * 8 = 1 (целая часть 1)
370,125(10) = 562,1(8)
Переведем целую часть:
370 / 16 = 23 (в остатке 2)
23 / 16 = 1 (в остатке 7)
7 / 16 = 0 (в остатке 7)
Переведем дробную часть:
0,125 * 16 = 2 (целая часть 2)
370,125(10) = 772,2(16)
г) Переведем целую часть:
929 / 2 = 464 (в остатке 1)
464 / 2 = 232 (в остатке 0)
232 / 2 = 116 (в остатке 0)
116 / 2 = 58 (в остатке 0)
58 / 2 = 29 (в остатке 0)
29 / 2 = 14 (в остатке 1)
14 / 2 = 7 (в остатке 0)
7 / 2 = 3 (в остатке 1)
3 / 2 = 1 (в остатке 1)
1 / 2 = 0 (в остатке 1)
Переведем дробную часть:
0,375 * 2 = 0,75 (целая часть 0)
0,75 * 2 = 1,5 (целая часть 1)
0,5 * 2 = 1 (целая часть 1)
929,375(10) = 1110100001,011(2)
Переведем целую часть:
929 / 8 = 116 (в остатке 1)
116 / 8 = 14 (в остатке 4)
14 / 8 = 1 (в остатке 6)
1 / 8 = 0 (в остатке 1)
Переведем дробную часть:
0,375 * 8 = 3 (целая часть 3)
929,375(10) = 1641,3(8)
Переведем целую часть:
929 / 16 = 58 (в остатке 1)
58 / 16 = 3 (в остатке 10 - A)
3 / 16 = 0 (в остатке 3)
Переведем дробную часть:
0,375 * 16 = 6 (целая часть 6)
929,375(10) = 3A1,6(16)
д) Переведем целую часть:
31 / 2 = 15 (в остатке 1)
15 / 2 = 7 (в остатке 1)
7 / 2 = 3 (в остатке 1)
3 / 2 = 1 (в остатке 1)
1 / 2 = 0 (в остатке 1)
Переведем дробную часть:
0,09 * 2 = 0,18 (целая часть 0)
0,18 * 2 = 0,36 (целая часть 0)
0,36 * 2 = 0,72 (целая часть 0)
0,72 * 2 = 1,44 (целая часть 1)
0,44 * 2 = 0,88 (целая часть 0)
31,09(10) = 11111,00010(2)
Переведем целую часть:
31 / 8 = 3 (в остатке 7)
3 / 8 = 0 (в остатке 3)
Переведем дробную часть:
0,09 * 8 = 0,72 (целая часть 0)
0,72 * 8 = 5,76 (целая часть 5)
31,09(10) = 37,05(8)
Переведем целую часть:
31 / 16 = 1 (в остатке 15 - F)
1 / 16 = 0 (в остатке 1)
Переведем дробную часть:
0,09 * 16 = 1,44 (целая часть 1)
0,44 * 16 = 7,04 (целая часть 7)
31,09(10) = 1F,17(16)