Файл: Понятие переменной в программировании. Виды и типы переменных в разных языках программирования..pdf
Добавлен: 30.06.2023
Просмотров: 69
Скачиваний: 2
Введение.
Существует довольно много различных языков программирования, но не один из них не обходится без переменных. Умение пользоваться переменными очень важно, так как без этого вы не сможете написать даже простейшую программу. Из этой работы вы узнаете, что же такое переменная и как ей пользоваться. Рассмотрим типы и виды переменных в различных популярных языках программирования, а также стековые переменные и использование стеков, структуры данных, которая упрощает работу с программой.
1. Что такое переменная
Переменная в программировании (Variable) — поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным, находящиеся в переменной, называются значением этой переменной. В некоторых языках переменная определяется как имя, с которым может быть связано значение, или даже как место для хранения значения.
В программировании переменная является идентификатором, указывающим на область памяти с хранящимися там данными. Переменная задается уникальным именем и должна иметь тип, определяющий множество принимаемых ею допустимых значений. Перед любым обращением к переменной ее необходимо явно проинициализировать.
Переменная - это своего рода емкость для хранения данных. Когда информация записана в переменной (или по-другому, когда переменной присвоено значение), тогда эту информацию можно изменять, выводить в окне Web-браузера, посылать по электронной почте и т.д.
Переменная гибка:
- в ней можно хранить информацию;
- можно из неё извлекать информацию, что не повлияет на значение самой переменной;
- в неё можно записать новые данные.
Причем, эти действия можно выполнять практически сколько угодно раз. По самому названию ясно, что переменная – вещь непостоянная. К примеру, в языке программирования PHP переменные содержат в себе значение или существуют исключительно во время работы скрипта. Как только завершается исполнение скрипта, так и существование переменных прекращается. То есть при переходе с одной страницы web-сайта на другую, переменных и их значений прежней страницы уже нет. Это кроме случаев, когда нужные значения специально передаются другой странице.
Переменные появились вместе с первыми языками программирования. Результат работы любой программы сводится к выполнению действий над какими-либо данными. Напомним, что память (memory) – это последовательность байтов (byte), каждый из которых принимает значения от 0 до 255. Так как байтов неимоверно много, единственный способ различать их - это присвоение каждому из них порядкового номера. Так и есть. Каждый байт оперативной памяти доступен процессору через его порядковый номер. Этот порядковый номер называется адресом байта.
Во времена, когда программы писались на машинном коде, программист должен был запоминать в какой участок памяти он записал нужное значение. Представьте, как усложнялся процесс написания программы, когда возникала необходимость работы с несколькими значениями. Адрес байта памяти есть число, которое мало о чем говорит. Большой объем памяти создает трудности программисту.
С первыми языками программирования появилась полезная возможность связывания определенного участка оперативной памяти с символьным названием (набором символов). По сравнению с адресом название переменной может отражать содержимое этого участка памяти. Но имя переменной не единственная вещь, которая определяет переменную. Процессор может обрабатывать три вида данных: байт, слово и двойное слово. (?) (Термины «слово» и «двойное слово» здесь используются в узкоспециальном смысле, отражая собой размер участка памяти, выделенного под переменную.) Поэтому определение вида переменной в языках нижнего и среднего уровней происходит обычно указанием типа переменной. Эти два свойства переменной (название и тип) определяют нужный участок памяти и способ его использования. В большинстве случаев именно тип переменной определяет сколько байтов памяти захватит переменная. Например, переменной типа BYTE присвоено имя A. Процессор по названию переменной (А) определяет её место в памяти и при извлечении значения этой переменной воспользуется командой, предназначенной для извлечения байта (не слова и не двойного слова).
В общем случае, переменная – это поименованный участок оперативной памяти, используемый для временного хранения данных. В зависимости от языка программирования, объявление переменной может сопровождаться указанием его типа. Обычно в языках высокого уровня тип не указывается. Синтаксические различия между языками проявляются как раз в объявлении переменных. В C и C++ необходимо указывать тип, в PHP используется префикс $.
Прежде, чем использовать переменную, мы должны придумать ей имя и объявить ее.
Вот некоторые требования к имени переменной:
- Переменная может содержать лишь прописные, заглавные буквы латинского алфавита, цифры и знак подчеркивания: _. Все остальные знаки препинания, включая пробел - запрещены.
- Имя переменной не может начинаться с цифры.
- Имя переменной чувствительно к регистру. И поэтому: name, Name, nAme, naMe и т. д. будут расценены программой, как не одна, а несколько переменных.
- Они не могут писаться так же, как зарезервированные слова языка С++: and, and_eq, asm, auto, bitand, bitor, bool, break, case,catch, char, class,compl, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, not, not_eq, operator, or, or_eq, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while, xor, xor_eq.
В современном мире программирования программист должен знать не только имя и тип переменной. Также существуют понятия пространства имен и область действия переменной. Представьте, что создается программа, в которой используются несколько переменных. Имена этих переменных составляют список, который определяет пространство имен. Представим, что в ходе создания программы мы, по ошибке, объявили две переменные с одинаковыми названиями. При попытке запуска программы его компилятор сообщит об этой ошибке. Это было бы невозможно, если бы компилятор не контролировал переменные. То есть, контроль безупречности пространства имен возлагается от программиста на компилятор, что облегчает процесс создания и отладки программы. На практике, приведенный пример не во всех языках приводит к ошибке. Каждый компилятор (или интерпретатор) имеют собственные требования к пространству имен. То, что является ошибкой в одном языке (в данном случае C или C++), в других языках ошибкой может не быть.
Если раньше программы были небольшие и их исходный код располагался в одном файле, то сейчас текст кода может состоять из нескольких файлов. И запомнить уникальное имя каждой переменной, использующейся в программе, становится практически невозможным. Поэтому (и не только) было введено понятие области действия (или области существования) переменных. Область действия – понятие абстрактное. Это понятие применяется только в языках среднего и высокого уровней. Целью применения области действия является разделение пространства имен на несколько независимых частей. Так в программе могут существовать несколько переменных с одинаковыми именами и типами, не мешаю друг другу. Начинающему идея разделения области действия в пределах отдельных файлов исходного кода программы должна быть более понятна. Например, этот подход используется в PHP. Это означает, что переменная, объявленная в одном файле, может быть абсолютно недоступна в других файлах. Например, мы можем объявить переменную с именем "VarX" в нескольких файлах проекта, и это не будет ошибкой.
Таким образом, переменная в программировании обладает следующими характеристиками:
- имя
- адрес
- тип
- размер, который обычно определятся типом
- принадлежность какому-либо пространству имен
- область действия
2. Типы переменных
Тип переменной определяет набор значений для данной переменной, размер и операции, которые могут над ней выполняться. Рассмотрим типы переменных в различных языках программирования.
2.1. Типы переменных в языке программирования Pascal
Тип |
Структурный |
Простой |
Порядковый |
Вещественный |
- Массив
- Строка
- Запись
- Множества
- Файл
- Указатель
Стандартный |
- Перечисление
- Отрезок
- Вещественный
- Одинарной точности
- Двойной точности
- Расширенный
- Большое целое
- Целое
- Короткое целое
- Длинное целое
- Слово
- Байт
- Булевский
- Символ
На схеме изображена классификация типов переменных в Pascal.
Рассмотрим подробнее каждый из них.
1. Структурные переменные.
2. Простые (скалярные) переменные - описывают упорядоченные наборы значений.
Делятся на:
а) Вещественные типы переменных - с условно бесконечным набором значений. Используются для представления чисел, содержащих дробную часть.
Характеристики вещественных типов переменных в Паскале
Название |
Обозначение |
Количество десятизначных цифр |
Диапазон изменеия порядка |
Длина внутреннего представления, байт |
Вещественный |
Real |
11...12 |
-39...+38 |
6 |
Одинарной точности |
Single |
7...8 |
-45...+38 |
4 |
Двойной точности |
Double |
15...16 |
-324...+308 |
8 |
Расширенный |
Extended |
19...20 |
-4951...+4932 |
10 |
"Большое целое" |
Comp |
19...20 |
-263+1...263-1 |
8 |
б) Порядковые типы переменных - набор значений, имеющий начало и конец. Делятся на:
- Перечисление - данный тип переменных может принимать только заданные программистом значения. Перечень значений задается через запятую и в круглых скобках. Например:
Var X: (Mon, The, Wed, Thu, Fri, Set, Sun);...{переменная X может принимать только указанные значения};
Во внутреннем представлении значения данного типа кодируются целыми числами (начиная с 0). Таким образом, идентификатору Mon будет соответствовать значение 0, The - 1, Wed - 2 и т. д. Объявляя переменную перечисляемого типа сначала описывают новый тип, затем саму переменную. Например:
Type: Day=(Mon, The, Wed, Thu, Fri, Set, Sun); {объявление нового типа}
Var X: Day; ... {объявление переменной данного типа}
- Отрезок - определяется как дипазон значений определенного вида. При описании отрезка также можно использовать конструкцию объявления типа, например:
Type Data=1...31; {диапазон одного из целых типов}
Var DataX: Data;...
Или эту же переменную можно объявить таким образом:
Var DataX:1...31;...
Для описания нестандартных порядковых переменных используют следующую конструкцию.
Тип
Идентификатор типа
Type
- Целые типы - в таблице приведены значения целых типов переменных:
Название |
Обозначение |
Дипазон значений |
Длина внутреннего представления, байт |
Целое |
Integer |
-32768...32767 |
2 (со знаком) |
Короткое целое |
ShortInt |
-128...127 |
1 (со знаком) |
Длинное целое |
LongInt |
-231...231-1 |
4 (со знаком) |
Байт |
Byte |
0...255 |
1 (без знака) |
Слово |
Word |
0...65535 |
2 (без знака) |
- Булевский тип Boolean включает только два значения - false (0) и true (1), в памяти значения этого типа занимают целый байт;
- Символ или тип Char определяет набор символов по таблице ASCII (в таблице указаны 255 кодов, для большинства существует символьное представление, например буквы русского и латинского алфавита, специальные знаки - точка, запятая и др.).
2.2. Типы переменных в C/С++
Тип |
Размер в байтах |
Диапазон значений |
Char |
1 |
От -128 до 127 |
Unsigned char |
1 |
От 0 до 255 |
Short |
2 |
От -32768 до 32767 |
Unsigned short |
2 |
От 0 до 65536 |
Enum |
2 |
От -2147483648 до 2147483647 |
Long |
4 |
От -2147483648 до 2147483647 |
Unsigned long |
4 |
От 0 до 4294967295 |
Int |
4 |
От -2147483648 до 2147483647 |
Unsigned int |
4 |
От 0 до 4294967295 |
Float |
4 |
От 3,4*10-38 до 3,4*1038 |
Long float |
8 |
От 1,7*10-308 до 1,7*10308 |
Double |
8 |
От 1,7*10-308 до 1,7*10308 |
Long Double |
10 |
От 3,4*10-4932 до 1,1*104932 |
Bool |
1 |
true или false |