Файл: Понятие переменной в программировании. Виды и типы переменных (Язык программирования C++).pdf
Добавлен: 31.03.2023
Просмотров: 161
Скачиваний: 1
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
Цель данной курсовой работы – ознакомиться с переменными в программировании, их типами и видами, научиться их применять.
Что такое переменная?
Данные хранятся в ячейках памяти компьютера. Когда мы вводим число, оно помещается в какую-то ячейку памяти. Но как потом узнать, куда именно? Как впоследствии обращаться к этим данными? Нужно как-то запомнить, пометить соответствующую ячейку.
Раньше, при написании программ на машинном языке, обращение к ячейкам памяти осуществляли с помощью указания их регистров, т. е. конкретно сообщали, куда положить данные и откуда их взять. Однако с появлением ассемблеров при обращении к данным стали использовать словесные переменные, что куда удобней для человека.
Механизм связи между переменными и данными может различаться в зависимости от языка программирования и типов данных. Пока достаточно запомнить, что в программе данные связываются с каким-либо именем и в дальнейшем обращение к ним возможно по этому имени-переменной.
Слово "переменная" обозначает, что сущность может меняться, она непостоянна. Действительно, вы увидите это в дальнейшем, одна и та же переменная может быть связана сначала с одними данными, а потом – с другими. То есть ее значение может меняться, она переменчива.
Для хранения различных данных в языках программирования используют переменные. Переменной называется область памяти, имеющая имя, которое иначе называют идентификатором.
Давая переменной имя, программист одновременно тем же именем называет и область памяти, куда будут записываться значения переменной для хранения.
Разберём переменные в популярных языках программирования.
1. Swift
За последние годы Swift стал более популярен, чем Objective-C. Это язык программирования для разработки нативных приложений для iOS или Mac OS. Также можно сказать, что это язык программирования с наибольшим потенциалом для изменения будущего. Было обнаружено, что нативные приложения превосходят кросс-платформенные гибридные приложения, а движок SpriteKit при этом упрощает создание 2D-игр. На деле Swift опирается на успехи C и Objective-C, но при этом без ограничений совместимости.
Большую роль в становлении Swift оказало влияние на него таких языков программирования, как Ruby и Python. Он считается удобным для пользователя и интересным в использовании. Swift — это высокоуровневый мультипарадигмальный язык, разработанный Apple для iOS. Если работа с продуктами Apple является вашей целью, то это язык для вас. Swift — статически типизированный язык. Это означает, что Xcode проверяет ошибки за вас, поэтому их легче отслеживать. У Swift есть преимущество перед конкурентами, так как в нем также имеется автоматический счетчик ссылок (ARC), известная функция, которая управляет использованием памяти приложения в реальном времени, etc. Использование этого языка может дать преимущество, поскольку приложения iOS зачастую более выгодны, чем приложения Android.
1.1 Переменные в Swift
В Swift для объявления переменной используется ключевое слово var. Хотя в других языках программирования переменные объявляются похожим способом, не стоит думать о других языках программирования, когда используете ключевое слова var в Swift. Есть несколько важных отличий. Ключевое слово var - это единственный способ объявления переменной в Swift.
Наиболее распространенный и краткий способ использования ключевого слова var - объявить переменную и присвоить ей значение.
var street = "5th Avenue"
Не добавляем в конце этой строки кода точку с запятой, так как точка с запятой необязательна в Swift, рекомендуется не использовать ее, если в этом нет необходимости. Мы не указали тип при объявлении переменной street. Это подводит нас к одной из ключевых особенностей Swift - выведению типа.
Выведение типа
Приведенная выше декларация объявляет переменную street и присваивает ей значение 5th Avenue. Безопасность типов - это один из краеугольных камней языка. Несмотря на то, что приведённая выше декларация не указывает явно тип, переменная street имеет тип String. Так выглядит выведение типа Swift в действии. Значение, которое мы присваиваем street, - это строка. Swift достаточно умен, чтобы это увидеть, и неявно устанавливает тип переменной street в String.
Следующее предложение дает такой же результат. Разница заключается в том, что здесь мы явно задаём тип переменной. Следующее предложение буквально говорит, что street имеет тип String
var street: String = "5th Avenue"
Swift требует явно или неявно задавать тип переменных и констант. Если вы этого не сделаете, Swift будет ругаться, выбрасывая ошибку. Добавьте следующую строку в вашу интерактивную среду, чтобы увидеть, что я имею в виду. var number
Это предложение будет допустимым в PHP или JavaScript. Однако в Swift оно является недопустимым. Причина проста. Несмотря на то, что мы объявляем переменную с помощью ключевого слова var, мы не указываем тип переменной. Swift не может вывести тип, так как мы не присваиваем значение переменной. Если щелкнуть на ошибку, Xcode покажет вам, что не так с этим предложением.
Рисунок 1 Пример ошибки Xcode
Можно легко решить эту проблему, сделав одну из двух вещей. Или присвоить значение переменной, как мы делали раньше, или явно указать тип для переменной number. После явного задания типа для number ошибка исчезает. Приведённые ниже строки кода говорят, что number имеет тип String.
var number: String
Изменение типа
Как вы можете видеть ниже, присвоение новых значений для street и number делается очень просто и происходит безо всяких сюрпризов.
var street: String = "5th Avenue"
var number: String
street = "Main Street"
number = "10"
Не было бы проще присвоить номер 10 переменной number. Нет необходимости хранения номер дома как строку. Давайте посмотрим, что произойдет, если мы это сделаем.
var street: String = "5th Avenue"
var number: String
street = "Main Street"
number = 10
Если мы присвоим number целое число, то Xcode выбросит другую ошибку. К сожалению на этот раз сообщение об ошибке не слишком полезно. Причина, по которой Xcode выдает ошибку, в том, что мы пытаемся присвоить целое число переменной типа String. Это не проблема в слабо типизированных языках, но в Swift это недопустимо. Swift является строго типизированным языком, в котором каждая переменная имеет конкретный тип, и этот тип изменить нельзя. Чтобы избавиться от ошибки, необходимо объявить переменную number как целое число Int. Взглянем на обновленный пример ниже.
var street: String = "5th Avenue"
var number: Int
street = "Main Street"
number = 10
Важно запомнить следующее. Можно объявлять переменную с использованием ключевого слова var, при этом необязательно явным образом объявлять тип переменной. Однако помните, что в Swift каждая переменная — и константа — имеет тип. Если Swift не может вывести тип, то он будет ругаться. Каждая переменная имеет тип, и этот тип изменить нельзя.
2. Go
Go – язык 2009 года – эпохи многоядерных процессоров, тогда как языки вроде Python и Java появились в годы однопоточной среды разработки. Именно поэтому язык Go учитывает многозадачность и работает в соответствии с ней. Вместо всем известных потоков (Thread), которые у большинства языков занимают уйму памяти (например, в Java это 1 Мб на каждый поток), в Go предусмотрены горутины, «съедающие» всего 2 Кб памяти. Можно создать хоть тысячу или миллион горутин, и это практически не отразится на работе приложения.
Быстрое время запуска, использование памяти, только если это необходимо (сегментированные, но расширяемые стеки горутин), и другие преимущества делают Go чрезвычайно востребованным в решении многопоточных задач. Это без преувеличений серверный язык будущего, и в 2018 он точно не сдаст свои позиции.
2.1 Переменные в Go
Для определения переменной применяется ключевое слово var, после которого идет имя переменной, а затем указывается ее тип:
var имя_переменной тип_данных
Имя переменной представляет произвольный идентификатор, который состоит из алфавитных и цифровых символов и символа подчеркивания. При этом первым символом должен быть либо алфавитный символ, либо символ подчеркивания. При этом имена не должны представлять одно из ключевых слов: break, case, chan, const, continue, default, defer, else, fallthrough, for, func, go, goto, if, import, interface, map, package, range, return, select, struct, switch, type, var.
Например, простейшее определение переменной:
var hello string
Данная переменная называется hello и она представляет тип string, то есть некоторую строку.
Можно одновременно объявить сразу несколько переменных через запятую:
var a, b, c string
В данном случае определены переменные a, b, c, которые имеют тип string. В этом случае опять же в конце указывается тип данных, и все переменные принадлежат этому типу.
После определения переменной ей можно присвоить какое-либо значение, которое соответствует ее типу:
package main import "fmt" func main() { var hello string hello = "Hello world" fmt.Println(hello) } |
Поскольку переменная hello представляет тип string, ей можно присвоить строку. В данном случае переменная hello хранит строку "Hello world". С помощью функции Println значение этой переменной выводится на консоль.
Также важно учитывать, что Go - регистрозависимый язык, то есть переменные с именами "hello" и "Hello" будут представлять разные переменные:
var hello string hello = "Hello world" fmt.Println(Hello) // ! Ошибка переменной Hello нет, есть переменная hello |
Также можно сразу при объявлении переменной присвоить ей начальное значение. Такой прием называется инициализацией:
package main import "fmt" func main() { var hello string = "Hello world" fmt.Println(hello) } |
Если мы хотим сразу определить несколько переменных и присвоить им начальные значения, то можно обернуть их в скобки:
package main import "fmt" func main() { var ( name string = "Tom" age int = 27 )
fmt.Println(name) // Tom fmt.Println(age) // 27 } |
Отличительной особенностью переменных является то, что их значение можно многократно изменять:
package main import "fmt" func main() { var hello string = "Hello world" fmt.Println(hello) // Hello world
hello = "Hello Go" fmt.Println(hello) // Hello Go
hello = "Go Go Go Ole Ole Ole" fmt.Println(hello) // Go Go Go Ole Ole Ole } |
Краткое определение переменной
Также допустимо краткое определение переменной в формате:
имя_переменной := значение
После имени переменной ставится двоеточие и равно и затем указывается ее значение.
package main import "fmt" func main() { name := "Tom" fmt.Println(name)
} |
В этом случае тип данных явным образом не указывается, он выводится автоматически из присваиваемого значения.
3. PHP
PHP используется повсеместно благодаря WordPress. 80% сайтов с посещаемостью свыше 10 млн. пользователей используют PHP. Примерами таких сайтов могут стать Facebook и Wikipedia. В PHP не существует каких-либо строгих правил в написании кода, а также он гибок в решении различных проблем. PHP — это отличный выбор для веб-разработчиков, поскольку он является серверным скриптовым языком и для Worldpress, и для Facebook.
В большинстве случаев изучение PHP для веб-разработчика является залогом успеха, так как его знание позволяет вам создавать потрясающие динамические веб-сайты. Вы можете использовать PHP для различных веб-проектов. Это довольно простой язык с открытым исходным кодом, хорошей поддержкой многих баз данных, а также многочисленными инструментами и различными направлениями для использования.
3.1 Переменные в PHP
При программировании на PHP можно не скупиться на объявление новых переменных. Принципы экономии памяти, которые были актуальны несколько лет назад, сегодня в расчет не принимаются. Однако, при хранении в переменных больших объемов памяти, лучше удалять неиспользуемые переменные, используя оператор Unset.
Вообще, переменная - это область оперативной памяти, доступ к которой осуществляется по имени. Все данные, с которыми работает программа, хранятся в виде переменных (исключение — константа, которая, впрочем, может содержать только число или строку). Такого понятия, как указатель (как в Си), в PHP не существует — при присвоении переменная копируется один-в-один, какую бы сложную структуру она ни имела. Тем не менее, в PHP, начиная с версии 4, существует понятие ссылок — жестких и символических. Имена всех переменных в PHP должны начинаться со знака $ — так интерпретатору значительно легче "понять" и отличить их, например, в строках. Имена переменных чувствительны к регистру букв: например, $var — не то же самое, что $Var или $VAR: В официальной документации PHP указано, что имя переменной может состоять не только из букв "Латиницы" и цифр, но также и из любых символов, код ASCII которых старше 127, — в частности, и из символов кириллицы, то есть "русских" букв! Однако не рекоммендуется применять кириллицу в именах переменных — хотя бы из-за того, что в различных кодировках ее буквы имеют различные коды. Впрочем, поэксперементируйте и делайте так, как вам будет удобно. Можно сказать, что переменные в PHP — это особые объекты, которые могут содержать в буквальном смысле все, что угодно.