Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика и ВТ Брукшир.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.07 Mб
Скачать

5.2.2Переменные и типы данных

В разделе 5.1 говорилось о том, что языки программирования высокого уровня позволяют обращаться к ячейкам памяти предпочтительно через описательные имена, а не через числовые адреса. Такие имена называются переменными (variable), тем самым подчеркивается тот факт, что при изменении значения, хранящегося в ячейке памяти, изменяется и значение, присвоенное переменной. В рассматриваемых нами языках все переменные, которые будут использоваться в программе, должны быть предварительно определены с помощью операторов описания. В этих же операторах необходимо описать типы данных, которые будут храниться в ячейках, связанных с переменными.

Понятие тип данных (data type) включает в себя и способ кодировки данных, и операции, которые можно выполнять над этими данными. Например, к типу данных integer (целые числа) относятся числовые данные, состоящие из целых чисел, которые хранятся в двоичном дополнительном коде. Над целыми числами можно выполнять обычные арифметические операции и операции сравнения. К типу данных real, или вещественные числа (в некоторых языках он называется float), относятся числовые данные, которые содержат действительные числа, представленные в формате с плавающей запятой. Над данными типа real можно выполнять те же операции, что и над целыми числами. Однако обратите внимание на то, что при сложении двух целых чисел и при сложении двух вещественных чисел выполняются разные действия.

Предположим, что мы хотим использовать переменную WeightLimit в нашей программе для обращения к ячейке памяти, содержащей числовое значение, представленное в двоичном дополнительном коде. В языках С, C++, Java и С# мы бы воспользовались выражением

int WeightLimit:

которое означает: «Имя WeightLimit будет использоваться дальше в программе по отношению к ячейке памяти, содержащей значение, представленное в двоичном дополнительном коде». В одном выражении можно объявить тип нескольких переменных. Например, выражение

int Height. Width;

объявляет обе переменные, Height и Width, как переменные типа integer. Кроме того, многие языки позволяют при описании переменной задавать ее первоначальное значение1. Таким образом, выражение

int WeightLimit = 100;

не только объявляет переменную WeightLimit переменной типа integer, но гакже присваивает ей начальное значение 100.

Другими распространенными типами данных являются character (символьный тип) и Boolean (логический тип). К символьному типу данных character относятся данные, состоящие из символов, хранящихся в кодировке ASCII или Unicode. Над такими данными можно выполнять операцию сравнения, то есть определять, находится ли один символ перед другим в алфавитном порядке, проверку, является ли цепочка символов подцепочкой другой, а также операцию конкатенации, то есть то есть добавления одной цепочки символов в конец другой.

К логическому типу данных Bool ean относятся элементы данных, которые могут принимать только два значения — true (истина) или false (ложь). К таким переменным можно применять операцию запроса, является текущее значение переменной истиной или ложью. Например, если переменная EndOfList является переменной логического типа, то можно использовать такое выражение

if (EndOfList) then (...) else (...).

К другим типам данных, которые еще пока не являются примитивами в языках программирования, относятся изображения, аудио-, видео- и гипертекст. Однако такие типы, как GIF, JPEG и HTML, могут в ближайшем будущем стать такими же обычными, как integer и real. Язык Java, который содержит инструменты для работы со многими такими типами данных, является шагом в этом направлении.

Пример того, как можно описать одни и те же переменные в разных языках программирования, представлен в табл. 5.1. (Переменные Length и Width являются переменными вещественного типа, переменные Price, Tax и Total — целочисленные переменные, а переменная Symbol является переменной символьного типа.) Обратите внимание на то, что языки больше различаются по форме, чем по содержанию. В разделе 5.4 мы рассмотрим, как транслирующая программа использует сведения, собранные из таких декларативных выражений, чтобы преобразовать программу, написанную на языке высокого уровня, в машинные команды. А пока обратите внимание на то, что такую информацию можно использовать для поиска ошибок. Например, выражение, которое требует сложения двух переменных символьного типа, по всей видимости, содержит ошибку.

Таблица 5.1. Описание переменных в разных языках программирования

Описание переменных в языке Pascal var

Lehgth, Width: real; Price, Tax, Total: integer; ____________________________________________Symbol:____________char;___________________

Описание переменных в языках С, C++, С# float Length, Width; и Java int Price. Tax, Total: ____________________________________________char Symbol;______________________________

Описание переменных в языке FORTRAN REAL Length, Width

IMTEGER Price. Tax. Total __________________________________________________CHARACTER Symbol_______________________________