Переменная (имя, тип, значение)
Переменная в программировании - это небольшая область в оперативной памяти компьютера, куда во время работы программы можно занести и хранить в закодированном виде некоторое значение (целое или действительное число либо символьный текст), которое в дальнейшем можно использовать или изме-нять.
Место переменной в общем объеме ОЗУ определяется адресом - ее порядковым номером в 16-ричной системе счисления. Например, в машинных кодах команда имеет вид: K A B C, где К - код опера-ции; A, B, C - адреса ячеек памяти. Допустим, К - код операции сложения, А - номер (адрес) ячейки ОЗУ с первым слагаемым, В - номер (адрес) ячейки ОЗУ со вторым слагаемым, С - номер (адрес) ячейки ОЗУ, куда после сложения будет занесена сумма (результат операции).
При написании программы не на машинном, а на алгоритмическом языке пользуются более удоб-ным описательным заданием адреса - именем переменной (идентификатором). Следовательно, имя пере-менной - это название ячейки ОЗУ, используемое в программе на алгоритмическом языке вместо указа-ния адреса.
Транслятор при переводе программы на язык машинных кодов составляет таблицу, в которой каждому употребленному имени переменной ставится в соответствие конкретный числовой адрес.
Языки программирования позволяют работать с простыми переменными и индексированными (элементами массива). Место для простой переменной транслятор выделяет независимо от программиста при первом указании ее имени в каком-нибудь операторе программы. Все имена простых переменных должны быть различны, и они никак не связаны между собой. Для индексированных переменных место в памяти выделяется специальным оператором языка программирования, т.е. по указанию программиста. Тогда индексированным переменным, имеющим одно имя и отличающимся только индексами, в ОЗУ отводится непрерывная область. Конкретное значение переменная получает только при использовании некоторых операторов, отли-чающихся в различных языках программирования. Например, переменная может получить свое значение с помощью оператора присваивания или оператора ввода. Переменные могут принимать целые, вещест-венные или символьные значения (в некоторых алгоритмических языках еще и логические). От типа пе-ременной зависит набор действий, которые с ней возможно выполнять, а также объем памяти для хране-ния ее значения. Поэтому в некоторых языках программирования предусмотрены операторы, объявляю-щие тип переменной с указанием ее имени. В других языках программирования тип пишется непосредст-венно после идентификатора переменной (например, в QBasic: А% - переменная целого типа, А$ - переменная символьного типа, A - переменная вещественного типа).
Приведем некоторые примеры:
- Если во время выполнения программы встретится команда, где будут присутствовать одновре-менно имена числовых и текстовых переменных, то будет выведено сообщение об ошибке.
- На работе программы не отразится занесение целого числа в ячейку, предназначенную для хра-нения значений вещественного типа. При этом целое будет преобразовано в вещественное чис-ло с нулевой дробной частью. Действия же с целыми и вещественными числами могут выпол-няться одинаковые.
- Если вещественное число станет значением переменной целого типа, то ввиду отсутствия места для хранения дробной части она отбрасывается (произойдет преобразование типа значения), что отразится на точности вычислений.
При написании программы не на машинном, а на алгоритмическом языке пользуются более удоб-ным описательным заданием адреса - именем переменной (идентификатором). Следовательно, имя пере-менной - это название ячейки ОЗУ, используемое в программе на алгоритмическом языке вместо указа-ния адреса.
Транслятор при переводе программы на язык машинных кодов составляет таблицу, в которой каждому употребленному имени переменной ставится в соответствие конкретный числовой адрес.
Языки программирования позволяют работать с простыми переменными и индексированными (элементами массива). Место для простой переменной транслятор выделяет независимо от программиста при первом указании ее имени в каком-нибудь операторе программы. Все имена простых переменных должны быть различны, и они никак не связаны между собой. Для индексированных переменных место в памяти выделяется специальным оператором языка программирования, т.е. по указанию программиста. Тогда индексированным переменным, имеющим одно имя и отличающимся только индексами, в ОЗУ отводится непрерывная область. Конкретное значение переменная получает только при использовании некоторых операторов, отли-чающихся в различных языках программирования. Например, переменная может получить свое значение с помощью оператора присваивания или оператора ввода. Переменные могут принимать целые, вещест-венные или символьные значения (в некоторых алгоритмических языках еще и логические). От типа пе-ременной зависит набор действий, которые с ней возможно выполнять, а также объем памяти для хране-ния ее значения. Поэтому в некоторых языках программирования предусмотрены операторы, объявляю-щие тип переменной с указанием ее имени. В других языках программирования тип пишется непосредст-венно после идентификатора переменной (например, в QBasic: А% - переменная целого типа, А$ - переменная символьного типа, A - переменная вещественного типа).
Приведем некоторые примеры:
- Если во время выполнения программы встретится команда, где будут присутствовать одновре-менно имена числовых и текстовых переменных, то будет выведено сообщение об ошибке.
- На работе программы не отразится занесение целого числа в ячейку, предназначенную для хра-нения значений вещественного типа. При этом целое будет преобразовано в вещественное чис-ло с нулевой дробной частью. Действия же с целыми и вещественными числами могут выпол-няться одинаковые.
- Если вещественное число станет значением переменной целого типа, то ввиду отсутствия места для хранения дробной части она отбрасывается (произойдет преобразование типа значения), что отразится на точности вычислений.