Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Понятие переменной в программировании. Виды и типы переменных (Общее понятие переменной в программирование)

Содержание:

ВВЕДЕНИЕ

Актуальность данной курсовой работы обусловлена большой значимостью в понимании того, что из себя представляет переменная, а также какие существуют виды и типы переменных

Следует иметь в виду, что при решении задач ЭВМ оперирует не со значениями, а с их обозначениями, которыми являются конфигурации битов, байтов или слов. Чтобы ЭВМ могла при выполнении операций распознавать принадлежность этих конфигураций к тому или иному типу данных, необходимо при разработке алгоритмов, и особенно программ, прямо указывать эту принадлежность. Достигается это путем явного описания типов используемых данных. В зависимости от типа, заданного в описании переменной, она может принимать текущие значения только указанного типа. Например, если тип переменной A указан как «целый», то она в данный момент времен может иметь любое значение из допустимого множества целых чисел {...–3, –2, –1, 0, 1, 2, 3, ...}; если тип переменной B указан как «логический», то текущее значение может быть одним из двух {истина, ложь}.

Каждый тип данных характеризуется так называемым кардинальным числом – количеством различных значений, принадлежащих типу. Для каждого типа данных должен быть строго определен набор операций, которые можно применять при обработке данных этого типа.

В данной курсовой работе описаны общие типы и виды данных переменных в программировании, а также подробно раскрывается сама сущность переменной. Также, на основании актуальности, я разобрал на пример двух языков программирования особенности и различия использования переменных:

  • Python – как один из самых популярынх языков программирования на текущий момент.
  • Kotlin – среда программирования, которая только набирает популярность, но показывает уверенную положительную динамику, в контексте частоты использования со стороны разработчиков программного обеспечения.

1 ПОНЯТИЕ ПЕРЕМЕННОЙ В ПРОГРАММИРОВАНИИ. ВИДЫ И ТИПЫ ПЕРЕМЕННЫХ

1.1 Общее понятие переменной в программирование.

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

Переменные в программировании могут не соответствовать напрямую понятию переменных в математике. Последнее является абстрактным и не имеет ссылки на физический объект, такой, как адрес хранилища. Значение вычислительной переменной не обязательно является частью уравнения или формулы, как в математике. Переменным в компьютерном программировании часто дают длинные имена, чтобы сделать их относительно понятными для использования, в то время как переменные в математике часто имеют, как правило, одно- или двухсимвольные имена для краткости в транскрипции и манипуляции.

На адрес хранения переменной могут ссылаться несколько различных идентификаторов - псевдоним. Присвоение значения переменной с использованием одного из идентификаторов изменит значение, к которому можно получить доступ через другие идентификаторы.

Компиляторы должны заменить символические имена переменных фактическими адресами данных. Хотя - имя, тип и адрес переменной часто остаются неизменными, данные, хранящиеся в адресе, могут быть изменены во время выполнения программы.

1.2 Действия с переменными.

В императивных языках программирования значения, как правило, могут быть доступны или изменены в любое время. В чистых функциональных и логических языках переменные связаны с выражениями и сохраняют одно и тоже значение в течение всего срока их службы из-за требований к ссылочной прозрачности. В императивных языках такое же поведение демонстрируют константы, которые обычно противопоставляются переменным.

В зависимости от системы типов языка программирования, переменные могут хранить только определенный тип данных (например, целое число или строку). Альтернативно, тип данных может быть связан только с текущим значением, позволяя одной переменной хранить все, что поддерживается языком программирования.

Переменные и область действия:

  • Автоматические переменные: каждая локальная переменная в функции возникает только при вызове самой функции и исчезает при выходе из неё. Такие переменные известны как автоматические переменные.
  • Внешние переменные - это переменные, которые являются внешними по отношению к функции и могут быть доступны из любой функции. Эти переменные существуют постоянно.

1.3 Идентификаторы, ссылающиеся на переменную.

Идентификатор, ссылающийся на переменную, может использоваться для доступа к переменной, чтобы считывать значение, или изменять значение, или редактировать другие атрибуты переменной, такие как разрешение доступа, блокировки, семафоры и т. д.

Например, на переменную может ссылаться идентификатор «total_count», а переменная может содержать число 1956. Если на эту же переменную ссылается и идентификатор «r», и он же и используется, то значение переменной изменяется, тогда как чтение значения с использованием идентификатора total_count даст результат иной результат, отличный от 1956.

Если на переменную ссылается только один идентификатор, то его можно просто назвать именем переменной. В противном случае мы можем говорить об одном из имен переменной.

1.4 Область применения.

Область действия переменной описывает, где в тексте программы может использоваться переменная, в то время как экстент (или время жизни) описывает, когда в ходе выполнения программы переменная имеет (значимое) значение. Область действия переменной на самом деле является свойством имени переменной, а экстент является свойством самой переменной. Их не следует путать с контекстом (также называемым окружением), который является свойством программы и зависит от точки в исходном коде или исполнении. Кроме того, время жизни объекта может совпадать с временем жизни переменной, но во многих случаях они не связаны.

Область действия - важная часть разрешения имени переменной. Большинство языков программирования определяют конкретную область видимости для каждой переменной (а также для любой другой именованной сущности), которая может отличаться в рамках данной программы. Область действия переменной - это часть программного кода, для которой имя переменной имеет значение и для которой переменная называется «видимой». Вход в эту область, как правило, начинает время жизни переменной (когда она входит в контекст), а выход из этой области, как правило, заканчивает ее время жизни (когда она выходит из контекста). Например, переменная с «лексической областью действия» имеет смысл только в пределах определенной функции / подпрограммы или, более точно, в пределах блока выражений / операторов (соответственно с областью действия функции или областью блока); это статическое разрешение, выполняемое во время разбора или во время компиляции. Переменные, доступные только внутри определенных функций, называются «локальными переменными». «Глобальная переменная» или переменная с неопределенной областью действия может указываться в любом месте программы.

С другой стороны, экстент является динамическим аспектом переменной. У каждой привязки переменной к значению может быть свой экстент во время выполнения. Степень привязки - это часть времени выполнения программы, в течение которой переменная продолжает ссылаться на то же значение или место в памяти. Работающая программа может входить и выходить из заданного экстента много раз.

Если в языке программирования отсутствует сборка кэша, переменная, экстент которой постоянно превышает его область действия, может привести к утечке памяти, в результате чего память, выделенная для переменной, никогда не может быть освобождена, поскольку переменная, которая будет использоваться для ссылки на нее в целях освобождения, больше не будет доступна. Однако может быть допустимо, что привязка переменной выходит за пределы ее области действия, как это происходит в Lisp и статических локальных переменных C; когда выполнение возвращает обратно в область действия переменной, переменная может быть снова использована. Переменная, область которой начинается раньше, чем ее экстент, называется неинициализированной и часто имеет неопределенное произвольное значение, если к ней обращаются , поскольку ей еще предстоит явно указать конкретное значение. Переменная, экстент которой заканчивается до ее области видимости, может стать висящим указателем и снова считаться неинициализированной, поскольку ее значение было уничтожено. Можно сказать, что переменные, описанные в предыдущих двух случаях, вышли за пределы или не связаны. Во многих языках ошибочно пытаются использовать значение переменной, когда оно выходит за пределы. На других языках это может привести к непредсказуемым результатам. Однако такой переменной может быть присвоено новое значение, что придает ей новый экстент.

Переменная нужна только тогда, когда она находится в области видимости, поэтому начало времени жизни каждой переменной - когда она входит в область действия. Чтобы не тратить впустую такое пространство, компиляторы часто предупреждают программистов, если переменная объявлена, но не используется.

Хорошей практикой программирования считается та, при который область переменных настолько делается настолько узкой, насколько это возможно, чтобы различные части программы случайно не взаимодействовали друг с другом, изменяя переменные друг друга. Обычные методы этого состоят в том, чтобы в разных разделах программы использовались разные пространства имен, или чтобы отдельные переменные были «приватными» через динамическую область видимости или область видимости лексической переменной.

Многие языки программирования используют зарезервированное значение (часто называемое нулевым или NULL) для указания недопустимой или неинициализированной переменной.

1.5 Тип данных

В статически типизированных языках, таких как Java или ML, переменная также имеет тип, что означает, что в ней могут храниться только определенные виды значений. Например, переменной типа «целое» запрещено хранить текстовые значения.

В динамически типизированных языках, таких как Python, это значения, а не переменные, которые несут тип. В Common Lisp обе ситуации существуют одновременно: переменной присваивается тип (если он не объявлен, предполагается, что это T, универсальный супертип), который существует во время компиляции. Значения также имеют типы, которые можно проверять и запрашивать во время выполнения.

Типизирование переменных также позволяет разрешать полиморфизмы во время компиляции. Однако это отличается от полиморфизма, используемого в вызовах объектно-ориентированных функций (называемых в C ++ виртуальными функциями), которые разрешают вызов на основе типа значения, а не супертипов, которые может иметь переменная.

Переменные часто хранят простые данные, такие как целые числа и буквенные строки, но некоторые языки программирования позволяют переменной также хранить значения других типов данных. Такие языки могут также позволить функциям быть параметрически полиморфными. Эти функции работают как переменные для представления данных нескольких типов. Например, функция с именем length может определять длину списка. Такая функция длины может быть параметрической полиморфной, если включить переменную типа в сигнатуру, поскольку число элементов в списке не зависит от типов элементов.

1.6 Память, которая используется переменными.


Особенности распределения переменных и их значений сильно различаются как среди языков программирования, так и среди реализаций данного языка. Многие реализации языка выделяют пространство для локальных переменных, степень которых длится один вызов функции в стеке вызовов и чья память автоматически восстанавливается при возврате функции. В более общем смысле в привязке имя переменной связано с адресом некоторого конкретного блока (непрерывной последовательности) байтов в памяти, и операции над этой переменной управляют этим блоком. Ссылка чаще встречается для переменных, чьи значения имеют большие или неизвестные размеры при компиляции кода. Такие переменные ссылаются на местоположение значения вместо хранения самого значения, которое выделяется из пула памяти, называемого кэшом.
Связанные переменные имеют значения. Однако ценность - это абстракция, идея; в реализации – это значение представлено некоторым объектом данных, который хранится в памяти компьютера. Программа или среда выполнения должна выделять память для каждого объекта данных и, поскольку память ограничена, обеспечить выделение этой памяти для повторного использования, когда объект больше не нужен для представления значения некоторых переменных.

Объекты, выделенные из кэша, должны быть возвращены, особенно когда объекты больше не нужны. В таких языках, как C #, Java, Python, Golang и Lisp среда выполнения автоматически восстанавливает объекты, когда существующие переменные больше не могут ссылаться на них. В языках без сбора кэша, таких как C, программа (и программист) должны явно выделить память, а затем освободить ее, чтобы освободить свою память. Невыполнение этого требования приводит к утечкам памяти, при которых кэш уменьшается во время работы программы, что может привести к возможному отказу из-за исчерпания доступной памяти.
Когда переменная ссылается на структуру данных, созданную динамически, доступ к некоторым ее компонентам возможен только косвенно через переменную. В таких обстоятельствах сборщики «garbage collection» (или аналогичные программные функции в языках, где garbage collection отсутствуют) иметют дело со случаем, когда требуется извлечь только часть памяти, доступную для переменной.
Соглашения об именах

1.7 Наименование переменных.


В отличие от своих математических аналогов, переменные и константы программирования обычно принимают многосимвольные имена, например Sum или Total. Односимвольные имена чаще всего используются только для вспомогательных переменных; например, i, j, k для переменных индекса массива.
Некоторые наименования применяются на уровне языка, как часть синтаксиса языка, который включает формат допустимых идентификаторов. Почти во всех языках имена переменных не могут начинаться с цифры (0–9) и не могут содержать пробельные символы. Разрешены или нет знаки препинания в именах переменных, зависит от языка; многие языки допускают только подчеркивание ("_") в именах переменных и запрещают все другие знаки препинания. В некоторых языках программирования сигилы (символы или знаки пунктуации) прикрепляются к идентификаторам переменных для указания типа данных или области видимости переменной.
Чувствительность к регистру имен переменных также различается в разных языках, и некоторые языки требуют использования определенного регистра при именовании определенных объектов. Большинство современных языков чувствительны к регистру; некоторые старые языки - нет. Некоторые языки резервируют определенные формы имен переменных для собственного внутреннего использования; во многих языках имена, начинающиеся с двух подчеркиваний ("__"), часто подпадают под эту категорию.
Однако, помимо основных ограничений, налагаемых языком, наименование переменных в значительной степени зависит от стиля. На уровне машинного кода имена переменных не используются, поэтому точные имена не имеют значения для компьютера. Таким образом, имена переменных идентифицируют их, а в остальном они являются всего лишь инструментом для программистов, облегчающим написание и понимание программ. Использование некорректно выбранных имен переменных может сделать код более сложным для просмотра.
Программисты часто создают и придерживаются принципов стиля кода, которые предлагают руководство по наименованию переменных или навязывают точную схему наименования. Более короткие имена быстрее набирать, но они менее наглядны; более длинные имена часто облегчают чтение программ и облегчают понимание назначения переменных. Однако чрезмерное многословие в именах переменных также может привести к менее понятному коду.

1.8 Типы переменных (в зависимости от «срока» жизни).

С точки зрения классификации переменных мы можем классифицировать переменные на основе времени их жизни. Различные типы переменных являются статическими, динамическими в стеке, явными динамическими значениями кучи и неявными динамическими переменными. Статическая переменная также известна, как глобальная переменная, она связана с ячейкой памяти до начала выполнения и остается в той же ячейке памяти до завершения. Типичным примером являются статические переменные в C и C ++. Динамическая переменная стека известна, как локальная переменная, которая связывается при выполнении оператора объявления и освобождается при возврате процедуры. Основными примерами являются локальные переменные в подпрограммах C и методы Java. Явные динамические переменные динамической памяти - это безымянные (абстрактные) ячейки памяти, которые выделяются и освобождаются с помощью явных инструкций времени выполнения, указанных программистом. Основными примерами являются динамические объекты в C ++ (через new и delete) и все объекты в Java. Неявные динамические переменные кучи связываются с кучей только тогда, когда им присваиваются значения. Распределение и освобождение происходят, когда значения переназначаются на переменные. В результате, неявные динамические переменные кучи имеют самую высокую степень гибкости. Основными примерами являются некоторые переменные в JavaScript, PHP и все переменные в APL.

2 ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ ПЕРЕМЕННЫХ В СРЕДЕ ПРОГРАММИРОВАНИЯ PYTHON. ТИПЫ ПЕРЕМЕННЫХ

2.1 Особенности использования переменных в Python.

Python - отличный язык для многих задач. Он обычно используется для задач системного администрирования, а также для создания веб-сайтов, обработки данных и текста. Он также становится предпочтительным языком для машинного обучения (ML), используя мощные модули для выполнения математических задач и для визуализаций.

Как и в основе большинства языков программирования, вы можете использовать переменные в Python для хранения и манипулирования значениями.

Переменные содержат значения. В Python переменные не требуют предварительного объявления - все, что вам нужно сделать, это указать имя переменной и присвоить ей некоторое значение.

Интерпретатор Python отображает объявление переменно, которое выглядит следующим образом: >>>. Каждая строка, которую вы вводите в интерпретатор, берется по одной за раз, анализируется интерпретатором и, если строка завершена, также выполняется.

Если вы введете один = 1 в интерпретаторе Python и нажмете «Enter», интерпретатор просто покажет вам приглашение новой строки.

Запрос новой строки >>> пуст. Но Python на самом деле сделал несколько вещей:

  • Была создана переменная с именем one.
  • Значение 1 было присвоено переменной один.

Это не видно из вывода пустой строки. Но интерпретатор может показать вам значение любой переменной, если вы просто наберете имя переменной и нажмете Enter:

Значение 1 показано, потому что Python оценивает строку и сообщает возвращаемое значение. Ранее строка содержала оператор. Переменной один было присвоено значение. Эта операция вычислялась оператором, поэтому в результате ничего не отобразилось. Более явный способ осуществить вывод значения переменной - использовать функцию print ().

Имена переменных состоят только из символов. Python позволяет называть переменные по своему вкусу, если имена следуют этим правилам:

  • Имена переменных могут содержать буквы, цифры (0-9) или символ подчеркивания _.
  • Имена переменных должны начинаться с буквы от A-Z или символа подчеркивания _. Допустимы как строчные, так и прописные буквы.
  • Имена переменных не могут быть зарезервированным словом в Python.

Следуя приведенным выше правилам, все эти переменные присваиваются правильно:

Все приведенные выше имена переменных допустимы. Но только то, что они приемлемы, не означает, что вы должны их использовать. Сообщество Python разработало соглашения об именах, которым необходимо следовать. Например, хотя односимвольный идентификатор является абсолютно допустимым, настоятельно не рекомендуется использовать символы l (строчные буквы) или O (заглавные буквы). Это связано с тем, что в некоторых шрифтах их трудно отличить от цифр 1 (один) и 0 (ноль). То есть, следующие имена переменных недопустимы. Если вы попытаетесь использовать их, python выдаст ошибку, и никакая переменная не будет создана.

Начальный символ, который не является подчеркиванием или буквой A-Z или a-z, вызовет ошибку. Символ обратного хода (`), например:

Во всех вышеперечисленных неудачных случаях интерпретатор Python выдавал ошибку и отказывался выполнять присвоение или создание переменной. Вы можете заметить, что символ вставки ^ указывает на другую позицию в ошибочном идентификаторе. Это связано с попыткой интерпретатора сопоставить идентификатор с приемлемым синтаксисом. Но в любом случае результат один и тот же: неверные имена переменных приводят к ошибке.

В качестве ссылки, список зарезервированных слов Python включает в себя:

2.2 Типы переменных.

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

Эта ошибка возникает из-за того, что не существует идентификатора с именем imaary_thing. Python примет переменную с таким именем, но он требует, чтобы любая используемая переменная уже была назначена.

Акт присваивания переменной выделяет имя и пространство для переменной для того, чтобы она содержала значение.

Мы разобрали, что можем присвоить переменной числовое значение, а также строковое (текстовое) значение; также , что возможно переназначить переменную, предоставив ей новое значение, которое заменит любое предыдущее значение, которое она содержала.

Python отслеживает значение переменной, позволяя вам получить доступ к нему через имя переменной. Python также отслеживает тип значения, назначенного переменной. Чтобы определить тип значения, вы можете использовать встроенную функцию type ():

В каждом из приведенных выше примеров Python выводит тип значения, анализируя правую часть присваивания и определяя тип соответственно. Существование десятичной точки в значении 3.14 подсказало Python присваивать тип float, тогда как целое число 42 выдает int.

Python также поддерживает логические типы данных. Логическим значениям присваивается значение True или False (оба из которых являются ключевыми словами).

Целочисленный тип данных также создается при использовании шестнадцатеричных, восьмеричных или двоичных литералов. Чтобы ввести значение в виде восьмеричного числа, добавьте к числу 0. Чтобы ввести шестнадцатеричное значение, добавьте к нему 0x. Для двоичного литерала используйте префикс 0b.

2.3 Заключение об использовании переменных в Python.

Подводя итог: Python позволяет создавать переменные, просто присваивая значение переменной, без необходимости объявлять переменную заранее. Значение, присвоенное переменной, определяет тип переменной. Различные типы могут поддерживать некоторые операции, которые другие не поддерживают. Если вы хотите контролировать тип назначенной переменной, вы можете использовать специальный конструктор класса для назначения значения, например, int () или float (). Числа, выраженные без десятичной точки - или в виде шестнадцатеричных или восьмеричных литералов - будут давать целое число. Вы можете получить тип класса переменной с помощью функции type () или проверить, соответствует ли тип какому-либо определенному типу, используя оператор is.

Переменные Python обеспечивают простой и динамичный способ создания переменных, но в то же время поддерживают мощную систему типов для обеспечения безопасной работы с вашими данными.

3 ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ ПЕРЕМЕННЫХ В СРЕДЕ ПРОГРАММИРОВАНИЯ KOTLIN. ТИПЫ ПЕРЕМЕННЫХ.

3.1 Использование переменных в Kotlin.

Работа с переменной сводится к простому - присвойте значение и дайте ему имя, которое будет вызываться позже. Kotlin использует эту концепцию и добавляет некоторые дополнительные правила для повышения производительности и читабельности кода.

В Kotlin объявления переменных имеют простую структуру:

  • Ключевое слово var (или val) для указания начала объявления переменной.
  • Имя переменной.
  • Двоеточние, за которыми следует тип переменной. (необязательный)
  • Знак равенства для присвоения значения переменной.
    Наглядный пример объявления переменной:

Мы можем объявить переменную, используя ключевые слова var или val. Основное различие между ними - изменчивость или способность меняться. С помощью var вы можете изменить значение переменной, а с помощью val - нет, и когда говорится «value», то имеется в виду экземпляр, поскольку в kotlin все является объектом. Свойства объекта могут изменяться, но не экземпляр, на который он ссылается.

Еще одна интересная вещь, которую стоит отметить, - переменные, объявленные в val, ведут себя подобно постоянным значениям, но с одним существенным отличием: val позволяет присваивать ему выражение, которое преобразуется в значение, тогда как const допускает только примитивные или строковые литералы.

Здесь мы можем увидеть пример val против const:

Kotlin не допускает пустых значений «из коробки», что означает, что вы не можете объявить переменную, не присвоив ей значение сразу, по крайней мере, в стандартном объявлении. Даже используя обнуляемые значения, из-за философии kotlin, способствующей читабельности, вы должны явно присваивать значение (даже ноль) при объявлении начального состояния переменной.

Но как насчет случаев, когда мы не знаем значение переменной сразу, как, например, с переменными экземпляра в классе? Мы можем сделать это используя с помощью ключевого слова lateinit перед объявлением переменной. Иначе, latenit можно интерпретировать, как «обещании». Обещание инициализировать переменную позднее, прежде чем вы попытаетесь ее использовать.

Пример:


3.2 Duck-typing.


Kotlin - это язык со статической типизацией - означает, что все типы переменных оцениваются во время компиляции, но это не значит, что вам нужно явно указывать тип переменной. У Kotlin есть система, называемая duck-typing, которая позволяет выводить тип на основе значения, которому он назначается, избавляя вас от необходимости делать это самостоятельно.
Не нужно это путать с характеристикой динамической типизации, присутствующей в других языках (например, javascript), которая позволяет изменять тип переменной во время выполнения в зависимости от значения, которое она содержит. Хотя kotlin может определить тип переменной, это всё равно происходит во время компиляции, и как только тип переменной определен, его уже нельзя изменить.

3.3 Типы переменных в kotlin.

Здесь мы обсудим распространенные типы (или виды информации), которые переменная может хранить в «коробке». Большинство из них должны быть очень знакомы, но в то же время они имеют небольшой различие.

Числа (в любом из их вариантов) являются объектами и, как таковые, они содержат методы и свойства.

В конкретном случае запуска kotlin поверх JVM эти числа сохраняются в виде примитивов, и в случае использования числа, допускающего обнуление, процесс упаковки / распаковки выполняется автоматически.

Что любопытно в kotlin - это, что числа не являются неявно приведенными. Это означает, что вы не можете назначить переменную int длинной, не выполнив заблаговременное приведение.

Символы представляют одну букву или цифру и практически любой символ, который вы можете найти в таблице ASCII. Вы определяете их, используя одинарные кавычки.

В некоторых языках вы можете использовать числовое представление символа для сравнения с int. В kotlin этого не происходит из «коробки», вместо этого вы должны использовать метод toInt () для выполнения преобразования.

Если в прошлом вы выполняли какие-либо манипуляции с текстом, вам будет удобно работать со строками в kotlin. То, как kotlin обрабатывает строки, очень стандартно, методы и свойства очень просты и понятны.

Вот несколько ключевых моментов об этом типе данных:

  • String - это набор символов, поэтому он может использовать способ доступа коллекции к своим элементам с помощью оператора индексации, а также иметь доступ к методам коллекции для управления ее содержимым.
  • Строки являются неизменяемыми, что означает любую операцию, которая «модифицирует» существующую строку, что в действительности отправляет предыдущую строку и создает новую с результатом.
  • Существует два типа строк: те, которые экранированы, и те, которые не экранированы. В первом типе любой специальный символ должен быть включен явно с помощью специальных escape-символов, тогда как другого достаточно для включения в строковый литерал.
  • Вы можете оценить переменные и выражения внутри строки.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Александреску, А. Язык программирования D / А. Александреску. — М.: Символ, 2013. — 536 c.
2. Александреску, А. Язык программирования D / А. Александреску. — СПб.: Символ-плюс, 2014. — 544 c.
3. Ашарина, И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. — М.: Гор. линия-Телеком, 2012. — 208 c.
4. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. — М.: ИЦ Академия, 2012. — 368 c.
5. Белоусова, С.Н. Основные принципы и концепции программирования на языке VBA в Excel: Учебное пособие / С.Н. Белоусова, И.А. Бессонова. — М.: БИНОМ. ЛЗ, 2010. — 200 c.
6. Бьянкуцци, Ф. Пионеры программирования: Диалоги с создателями наиболее популярных языков программирования / Ф. Бьянкуцци, Ш. Уорден; Пер. с англ. С. Маккавеев. — СПб.: Символ-Плюс, 2011. — 608 c.
7. Бьянкуцци, Ф. Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования / Ф. Бьянкуцци, Ш. Уорден. — М.: Символ, 2011. — 608 c.
8. Бьянкуцци, Ф. Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования / Ф. Бьянкуцци, Ш. Уорден. — СПб.: Символ-плюс, 2011. — 608 c.
9. Гавриков, М.М. Теоретические основы разработки и реализации языков программирования: Учебное пособие / М.М. Гавриков, А.Н. Иванченко, Д.В. Гринченков. — М.: КноРус, 2010. — 184 c.
10. Гергель, В.П. Современные языки и технологии паралелльного программирования: Учебник / В.П. Гергель. — М.: МГУ, 2012. — 408 c.
11. Гергель, В.П. Современные языки и технологии параллельного программирования: Учебник/ предисл.: В.А. Садовничий. / В.П. Гергель. — М.: Изд. МГУ, 2012. — 408 c.
12. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. — М.: Форум, НИЦ ИНФРА-М, 2013. — 400 c.
13. Головин, И.Г. Языки и методы программирования: Учебник для студентов учреждений высшего профессионального образования / И.Г. Головин, И.А. Волкова. — М.: ИЦ Академия, 2012. — 304 c.
14. Довек, Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. — М.: ДМК, 2016. — 134 c.
15. Дорогов, В.Г. Основы программирования на языке С: Учебное пособие / В.Г. Дорогов, Е.Г. Дорогова; Под общ. ред. проф. Л.Г. Гагарина. — М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. — 224 c.