Файл: Понятие переменной в программировании. Виды и типы переменных ( Виды типизации в языках программирования).pdf
Добавлен: 28.03.2023
Просмотров: 86
Скачиваний: 2
ВВЕДЕНИЕ
Данная курсовая работа посвящена понятию переменной в программировании, а также видам и типам переменных. Если обратиться к статье «Переменная (программирование)» в русскоязычной Википедии, то мы там увидим, что переменная в программировании – это поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным [6]. Из данного определения следует, что переменные используются только для доступа к данным. Однако во многих современных языках программирования это не так. Например, кроме доступа к данным, переменные могут применяться для доступа к объектам (экземплярам класса), к структурам (ассоциативные или обычные массивы) и т.д. В этом и состоит актуальность данного исследования – ни одна программа не обходится без переменных, и программисту необходимо понимать все особенности работы с переменными в различных современных языках программирования, а также особенности их типов данных.
Объектами исследования в данной курсовой работе является переменная в программировании и типы данных различных переменных.
Целью данной работы является провести всестороннее исследование понятия переменная в различных современных языках программирования.
Исходя из поставленной цели работы, задачами данного исследования являются:
1. Дать определение понятию «переменная».
2. Дать трактовку переменной для программирования.
3. Исследовать свойства переменных в различных языках программирования.
4. Рассмотреть понятия «тип данных».
5. Исследовать различные варианты типизации в программировании.
В данной курсовой работе будет две главы. Первая глава будет посвящена понятию переменной, а вторая глава рассматривает вопросы типизации в различных языках программирования.
Курсовая работа содержит 14 рисунков, 0 таблиц.
ГЛАВА 1. Понятие переменной. Типы данных переменной
В самом начале нашего исследования необходимо разобраться в самом понятии «переменная». Само это понятие не очевидно для человека. Дело в том, что когда в школе начинают изучать различные науки, то впервые понятие переменной возникает в разделе математики – алгебра, а вот в арифметике данное понятие отсутствует. В арифметике мы имеем дело с числами. Например, маленький школьник решал следующие задачи: «Сколько будет 2+3?», «Найдите результат следующего выражения: 7-4=?» и т.д. В этих задачах 2, 3, 7, 4 – это числа, а точнее константы, то есть такие сущности, которые не меняют своего значения в течение времени – «семь всегда «семь».
Возьмем калькулятор. Что он умеет делать? Довольно много чего: он успешно справляется с арифметическими и алгебраическими действиями. Например:
- вводим на калькуляторе первое число, например, «2»;
- нажимаем на знак «плюс»;
- вводим второе число, скажем, «3» (см. рис. 1),
- и затем нажимаем знак «=».
Рис. 1. Пример работы калькулятора
Результат работы калькулятора в данном примере очевиден для всех – это цифра 5. Калькуляторы бывают разными: инженерными, для статистики, для программистов, но каким бы сложным калькулятор не был, он всё равно работает только с числами. Другие уровни абстракции ему не подвластны, калькуляторы умеют вычислять только числовые выражения.
Позже школьнику уже приходится иметь дело с выражениями другого вида: a+b=c. В чем тут отличие? Не только в том, что во втором случае вместо чисел мы применили буквы латинского алфавита, но и в том, что мы записали выражение на новом уровне абстракции. Подобные выражения носят названия формул. С помощью формул можно описывать законы окружающего мира, записывать выражения для вычисления площади, объема, длины, скорости и т.д. Введя понятие формул, мы подготовили своего рода «рецепт» какого-либо процесса или явления, то есть, написав формулу скорости , где V – скорость тела, S – пройденный телом путь, t – время движения, то мы описали все возможные значения скорости при различных значениях пройденного расстояния и времени движения. Также буквенная запись позволяет вычислить площадь любого треугольника, независимо от его параметров (длин его сторон, высот и т.д.).
Если бы следующий, новый уровень абстракции не вошел в обиход в компьютерной грамотности, то тогда не появилось бы программирование в том виде, как оно существует в наше время. Программирование, которое позволяет делать программное обеспечение с дружественным интерфейсом, то есть, удобным для последующего пользования.
Вернемся к нашему примеру со скоростью: . Это формула, а V, S, t в ней называются операндами или переменными. Именно подобные буквенные обозначения в формулах и являются переменными. Почему? Потому что они принимают различные значения. Их значения меняются, отсюда и такое название.
Итак, в математике и в программировании мы имеем дело с двумя очень важными сущностями: с переменными и константами. Константы не меняют своего значения с течением времени (смотри пример с числовыми выражениями и с калькулятором), а переменные могут принимать различные значения.
В программировании все выражения пишут как бы наоборот по сравнению с тем, как их пишут в алгебре. Если в алгебре сначала указывают операнды (переменные), над которыми следует произвести действия, а потом после знака равенства указывают результат, как в примере a + b = c, то в программировании делают все наоборот: сначала указывают результат, а потом действие, то есть: C = A + B. Здесь не случайно написаны строчные (заглавные) буквы вместо прописных (маленьких) букв. Это было сделано по двум причинам: во-первых, чтобы отличить алгебру от программирования, а во-вторых, потому что первоначально в нашей стране в программировании использовали в основном заглавные буквы латинского алфавита.
Почему стали в программировании писать наоборот, а именно стали писать C = A + B? Трудно сказать. Так сложилось, что сначала надо было указывать результат, и лишь потом действие.
Что же дает подобное «волшебное» выражение с буквами вместо цифр для программирования? Казалось бы, в чем разница между константами и переменными: 5 = 2 + 3 (напишем наоборот лишь для сравнения) и
C = A + B?
Давайте разберемся. Что может быть результатом сложения 2+3? Большинство ответит, конечно, «5». И хоть это почти правильный ответ, пожалуй, мы с этим согласимся. Почему почти? Да потому что это правильный ответ для десятичной системы исчисления. Для четверичной системы исчисления, в которой используются только цифры от 0 до 3, ответ был бы «11». А в пятеричной системе исчисления, где добавляется еще цифра 4, ответ был бы «10». Но в любом случае, о какой бы системе исчисления мы не говорили, результатом 2+3 всегда будет одно и то же число (константа). В десятичной системе (вернемся к ней теперь надолго), это «5», и только «пять».
А сколько будет A + B? Ответ очевиден: все зависит от того, чему равны A и B. Значит, результатом 2+3 всегда будет 5, а результатом A+B будут разные значения в зависимости от величин A и B.
Достаточно очевидно. Ну и что, что 5 – константа, а тут переменная? А то, что переменные – это другой уровень абстракции. За счет A+B мы теперь можем получать множество разных значений.
Мы разобрались с сутью понятия «переменная», теперь дадим более строгое определение, которое применяется в программировании.
Под переменной в языках программирования понимают программный объект (число, слово, часть слова, несколько слов, символы), имеющий имя и значение, которое может быть получено и изменено программой [5].
Если "заглянуть" в компьютер, то переменную можно определить так: переменная представляет собой контейнер в памяти компьютера, где хранятся данные [2]. Само название "переменная" подразумевает, что содержимое этого участка может изменяться.
Все программы работаю с данными. Данные могут быть представлены в виде документа, графического фрагмента, видеоигры или мгновенного сообщения. Для их хранения программа использует именно переменные.
Каждая переменная характеризуется следующими атрибутами [3]:
- именем;
- типом данных;
- значением;
- временем жизни;
- областью видимости.
О типизации более подробно будет написано во второй главе данной курсовой работы, так как это вопрос очень неоднозначный и все зависит от выбранного языка программирования. А сейчас мы подробно рассмотрим вопрос именования переменных, дадим общее определение понятию «тип данных» и рассмотри вопросы области видимости переменной в программе.
После того как данные сохранены, их можно вызвать, используя имя этой переменной [2]. В качестве имен переменных могут быть латинские буквы с цифрами. Причем может быть не одна буква, а несколько. Имя переменной не может начинаться с цифры, а также программист не может использовать в качестве имени переменной зарезервированные слова языка программирования [2]. Разные языки программирования по-разному чувствительны к регистру имен переменных. Например, в Pascal не имеет значение в обозначении переменных маленькими или большими (строчными или прописными) буквами они написаны, а вот C, C++, C#, Python, Java чувствительны к регистру (переменные «A» и «a» являются разными переменными).
Сформулируем общие правила именования переменных, которые характерны для всех языков программирования [5]:
1) всегда начинаться с буквы, после которой могут другие буквы или цифры;
2) в идентификаторе (имени) не должно быть пробелов, запятых или других непредусмотренных знаков;
3) нельзя использовать в качестве имен переменных слова, которые являются служебными или операторами.
Перед использованием переменной надо объявить. Объявление переменной чаще всего выглядит так: указывается тип и имя [4]. Например, на рис. 2 показан пример объявления переменных на языке программирования C# [4].
Рис. 2. Пример объявления переменных на языке C#
В языке программирования Паскаль существует отдельный раздел программы для описания переменных [5].
______________________________________________________________
var
a: byte;
b: integer;
c, d, e: real;
f:double;
______________________________________________________________
Слово var - это сокращение от слова variable (переменная) и является зарезервированным словом.
В разделе описания переменных может содержаться несколько строчек, каждая из которых заканчивается точкой с запятой. Для описания переменных необходимо перечислить через запятую их имена, а затем после двоеточия «:» указать их тип.
Тип данных характеризует внутреннее представление, множество допустимых значений для этих данных, а также совокупность операций над ними [5]. Каждая переменная и константа программы должны принадлежать к определенному типу данных. Это необходимо для того, чтобы отвести необходимое место в оперативной памяти и для проверки правильности записи выражений. Например, над числовыми данными можно производить арифметические операции, а символьные данные используются для анализа текста.
Среди типов данных различают стандартные (предопределенные разработчиками языка) и пользовательские (определяемые программистом в своей программе) [5].
К стандартным типам данных относят:
- целые числа ( -∞ …-2, -1, 0, 1, 2, … +∞)
- вещественные числа (действительные числа: все)
- логический тип (ложь, истина)
- символьный (символы, слова или текст).
Типы данных различаются, начиная с нижних уровней системы. Так, например, даже в Ассемблере х86 различаются типы «целое число» и «вещественное число». Это объясняется тем, что для чисел рассматриваемых типов отводятся различные объёмы памяти, используются различные регистры микропроцессора, а для операций с ними применяются различные команды Ассемблера и различные ядра микропроцессора [1].
Концепция типа данных появилась в языках программирования высокого уровня как естественное отражение того факта, что обрабатываемые программой данные могут иметь различные множества допустимых значений, храниться в памяти компьютера различным образом, занимать различные объёмы памяти и обрабатываться с помощью различных команд процессора [5].
Важно отметить то, что как правило, типы данных в языках программирования не строго соответствует аналогичным математическим типам. Например, «целое число» в различных языках программирования не соответствует математическому понятию «целое число», так как в математике данные тип не имеет ограничений ни снизу, ни сверху, а в языках программирования такие ограничения есть – компьютерная память имеет физические границы. В программировании существует ни один тип «целое», а множество таких типов, отличающихся друг от друга допустимым диапазоном значений.
Программист может описать свой тип на основе базовых типов данных. Так, например, в языке программирования C++ можно задать тип enum, где программист через запятую прямо перечислит те значения, которые возможны в данном типе [3].