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

Понятие переменной в программировании. Виды и типы переменных (Практическое использование переменных)

Содержание:

Введение

Актуальность работы. Переменными называются такие величины, которые могут изменять свое значение во время выполнения алгоритма. Переменные в программировании отличаются от математических переменных. Они используются как символические имена "фрагментов оперативной памяти компьютера". При выполнении программы в различные моменты времени переменные могут хранить различные значения.

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

Объект исследования: переменные в программировании.

Предмет исследования: структура и типы переменных в программировании.

Цель работы: рассмотреть понятие переменной в программировании и привести виды и типы переменных.

Для осуществления поставленной цели необходимо решить такие задачи:

- рассмотреть понятие переменной;

- привести виды и типы переменных;

- разобрать основные элементы программирования;

- выполнить анализ работы с переменными.

1. Понятие и типы переменной

1.1 Понятие переменной

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

Переменная – это символическое обозначение величины в программе. Как ясно из названия, значение переменной (или величина, которую она обозначает) во время выполнения программы может изменяться.

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

Немного о языке программирования Си. Этот язык первоначально задумывался как заменитель языка Ассемблера для написания операционных систем. Поскольку Си – это язык высокого уровня, не зависящий от конкретной архитектуры, текст операционной системы оказывался легко переносимым с одной платформы на другую. Первой операционной системой, написанной практически целиком на Си, была система Unix. В настоящее время почти все используемые операционные системы написаны на Си. Кроме того, средства программирования, которые операционная система предоставляет разработчикам прикладных программ (так называемый API – Application Program Interface), – это наборы системных функций на языке Си. На смену языку Си пришел сначала Си+ а затем и С++. Я рассмотрю работу именно на языке Си++ так как сейчас большинство программистов исользуют именно его.

В языке Cи++ прежде чем использовать переменную, ее необходимо объявить. Объявить переменную с именем x можно так: Тип значение; - int x;

В объявлении первым стоит название типа переменной int (целое число), а затем идентификатор x– имя переменной. У переменной x есть тип – в данном случае целое число. Тип переменной определяет, какие возможные значения эта переменная может принимать и какие операции можно выполнять над данной переменной. Тип переменной изменить нельзя, т.е. пока переменная x существует, она всегда будет целого числового типа.

Язык Cи++ строго типизированный язык. Любая величина, используемая в программе, принадлежит к какому-либо типу. При любом использовании переменных в программе проверяется, применимо ли выражение или операция к типу переменной. Довольно часто смысл выражения зависит от типа участвующих в нем переменных.

Например, если записать x+y,

где x– переменная, то переменная y должна быть одного из числовых типов. Или же x + “ штук.”; В этом случае переменная x жолжна быть непременно строковой переменной c типом string.

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

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

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

Пример. Требуется найти произведение любых двух натуральных чисел n, m. Результат обозначить через k.

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

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

Переменную можно представить себе, как некий бокс, обозначенный именем, который идентифицирует эту переменную. Присвоение переменной с именем n значения 5 можно представить себе так; положить в этот бокс, имеющий имя n, 5 шаров. (Бокс является аналогом ячейки памяти в компьютере.)

Значение одной переменной также можно передать в другую переменную. При этой операции значение предаваемой переменной не изменяется. Например, переслать значение n в переменную i, или присвоить переменной i значение n, означает задать i такое же значение, которое имеет переменная n, т.е, скопировать значение n. Если мы захотим передать значение переменной n в переменную i, при том что переменной n присвоено значение 5 (n=5), то присвоение i значения n записывается так: i = n; (i присвоить значение n), если говорить по простому то мы говорим посмотреть какое число находится в ячейке памяти n, и такое же число "положить" в ячейку памяти i. Теперь будет i=5, но при этом n сохранило значение (n=5). Следует отметить также, что в выражениях используются знаки (операторы) это не совсем то же что в математике. В данном случае i = n знак "=" обозначает не равенство, а операцию присвоения.

Очень часто в программировании используется такая операция присваивания, когда слева и справа используется одна и та же переменная, например, i = i + 1. Такая запись означает, что сначала должна быть выполнена операция сложения (i+1), а затем полученная сумма присвоена переменной i в качестве ее нового значения. При этом старое значение i пропадает, "переназначается". После выполнения этой операции i будет иметь значение на 1 больше, чем перед ее выполнением. Часто такие выражения используются в циклических процедурах.

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

Но эта формула — не программа, хотя бы потому, что здесь есть неопределенность (например, многоточие),

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

Присвоить значение 0 переменной k, запишем k = 0.

Далее выполнить операцию

k = k + n

m раз. При этом после каждого выполнения указанной операции значение k увеличивается на n. В итоге в k будет получен результат решения задачи.

Чтобы выполнить операцию требуемое число раз, нужно считать, сколько раз эта операция уже выполнена. Используем для этого вспомогательную переменную i. Назовем ее счетчиком. Перед первым прибавлением к k значения n положим i = 1 и после очередного изменения k. значение счетчика i будем менять на 1.

Тогда программа может быть записана так:

1. Задать конкретные значения n, m

2. k = 0

3. i =1

4. k = k + n

5. i = i +1

6. Если i m идти к 4. (Повторить выполнение операций, начиная с п. 4)

7. Закончить вычисления

Пояснения к программе.

1. Программа написана на обычном языке человеческого общения с использованием общепринятой математической символики.

2. Операторы 2, 3 задают начальные значения переменных k и i. В языках программирования предписание о выполнении некоторой операции (например, операции присваивания) называется оператором.

3. Оператор 4 при каждом своем выполнении увеличивает значение k на n. Оператор 5 увеличивает значение счетчика на 1 после того, как выполнено очередное сложение.

4. Оператор 6 проверяет условие i m, и если оно выполняется, т. е. не все m сложений еще выполнены, то происходит возврат к оператору 4 и повторное выполнение программы, начиная с оператора 4. Как только в процессе выполнения программы условие i m не будет выполнено, процесс вычислений заканчивается. Это произойдет, когда будет i > m, т. е. все нужные сложения выполнены.

Приведенная программа задает порядок действий, которые могут быть выполнены, когда n и m получат конкретные значения.

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

Значение каждого параметра хранения в определенном участке памяти компьютера и может меняться в процессе выполнения алгоритма. Такой участок памяти ПК компьютера называется переменной.

Каждой переменной присваивается имя. С каждой переменной связан ее тип. С переменной можно выполнять следующие действия:

1) прочитать её текущее значение;

2) записать новое значение в переменную или как говорят присвоить новое значение переменной;

Запись нового значения переменной выполняется с помощью так называемого оператора присваивания. Имя переменной = выражение; //здесь знак равенства — это знак присвоения. Об этом я говорил раньше.

При выполнении оператора присваивания сначала вычисляется значение выражения в правой части, затем оно записывается в переменную, имя которой указано в левой части. Старое значение переменной при этом перезаписывается.

1. Память - это материальный носитель, который хранит информацию. Эту информацию можно читать и перезаписывать.

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

3. С переменной можно выполнять два действия: прочитать ее текущее значение и записать в нее значение (старое теряется). Для записи нового значения в переменную применяется оператор присваивания.

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

Переменные бывают:

- Логическими,

- Символическими,

- Числовыми,

- Целыми,

- Вещественными,

- Одинарной точности,

- Двойной точности,

Целочисленные переменные.

Тип целое число является основным для любого алгоритмического языка. Символы представляются в компьютере целыми числами — их кодами в некоторой кодировке. Целая переменная в компьютере может хранить лишь ограниченное множество целых чисел в некотором интервале. В современном ПК под целую переменную отводится 8 байтов, т.е. 64 двоичных разряда. Она может хранить числа от нуля до 2 в 64-й степени минус 1. Таким образом, максимальное число которое может храниться в целочисленной переменной, равно 18,446,744,073,709,551,615 (18 квинтиллионов 446 квадриллионов 744 триллиона 073 миллиарда 709 миллионов 551 тысяча 615).

В языке Си целым числам соответствуют типы int, char, bool

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

Вещественные переменные.

Вещественные числа представляются в компьютере в так называемой экспоненциальной, или плавающей, форме. Вещественное число r имеет вид r= +- 2(в степени e) * m

Представление числа состоит из трех элементов

1) Знак числа — плюс или минус. Под знак отводится 1 бит.

2) Показатель степени e, его называют порядком или экспонентой. Экспонента указывает степень двойки, на которую помножается число. Она может быть как положительной, так и отрицательной. Для чисел, меньших единицы. Под экспоненту отводится фиксированное число двоичных разрядов, обычно 8 или 11, расположенных в старшей части двоичного представления числа, сразу вслед за знаковым разрядом.

3) Мантисса m представляет собой фиксированное количество разрядов двоичной записи вещественного числа в диапазоне от 1 до 2: 1 <= m <= 2

В языке Си вещественным числам соответствуют типы float и double.

Основным типом является тип double, именно он наиболее естественен для компьютера. В программировании следует по возможности избегать типа float (этот тип оправдан в трехмерной компьютерной графике), т.к. его точность недостаточна, а процессор все равно при выполнении операций преобразует его в тип double. Если к большому плавающему числу прибавить очень маленькое, то оно не изменится.

a + b = a при b != 0

Для сложения не выполняется закон ассоциативности: a + (b + c) != (a + b) + c

Точность вычислений вещественных чисел типа double составляет 16 десятичных цифр. Кроме потери точности, при операциях с вещественными числами могут происходить и другие неприятности.

— Переполнение — когда порядок результата больше максимально возможного значения. Эта ошибка часто возникает при умножении больших чисел;

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

— Деление на ноль — является некорректной операцией. — вызывают аппаратное прерывание работы процессора.

Запись вещественных констант

Вещественные константы записываются в двух формах — с фиксированной десятичной точкой или в экспоненциальном виде. 1.2 , 0.725, 1. , .35 , 0 Отметим, что в программировании именно точка, а не запятая используется для отделения дробной части; запятая обычно служит для разделения элементов списка.

Экспоненциальная форма записи вещественной константы содержит знак, мантиссу и десятичный порядок (экспоненту).

Мантисса — это любая положительная вещественная константа в форме с фиксированной точкой или целая константа.

Порядок указывает степень числа 10, на которую помножается мантисса. Порядок может иметь знак плюс или минус.

1.5e + 6 —> 1 500 00.0

1e-4 —> 0.0001-.75e3 —> -750.0

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

Символьные переменные

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

Символы представляются их целочисленными кодами в некоторой фиксированной кодировке. Кодировка определяется тремя параметрами:

1) диапазон значений кодов. например ASCII. стандартный код обмена информацией. от 0 до 127. требует 7 бит на символ. большинство современных кодировок имеют диапазон кодов от 0 до 255, т.е. 1 байт на символ. Unicode, — диапазон от 0 до 65535 — т.е. 2 байта (16 бит) на символ.

2) множеством изображаемых символов.

3) отображением множества кодов на множество символов. кодировки кои-8, cp-1251, и т.д.

В языке Cи++ для Unicode существует тип wchar_t в котором под каждый символ отводится 2 байта.

Логические переменные и выражения

Логический тип данных bool, реализуется 1 байтом
Логические или условные выражения используются в качестве условия в конструкциях ветвления «если… то… иначе… конец если» и цикла «пока».

Любая операция сравнения имеет два аргумента и вырабатывает логическое значение «истина» и «ложь» (true и false)

Операции сравнения:

- Проверка равенства: ==

- Неравенство обозначается: !=

- Для сравнения величин выражений применяется четыре операции: больше > ; меньше < ; больше или равно >= ; меньше или равно <=

x == 0 // истина, если значение x равно 0

0 != 0 // ложь

3 >= 2 // истина

Логические выражения

0 < = x && x <= 1x != 0 or y != 0

1.2 Виды и типы переменных

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

Основными характеристиками переменной являются:

· Имя - переменные задаются именами, определяющими область памяти, в которой хранится значение переменной, например int Width; где Width и есть Имя переменной.

Имя любой переменной уникально и не может изменяться в процессе выполнения программы. Имя переменной должно обязательно начинаться с буквы. Например: Аll, Max, tt1.

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

Значение - значениями переменных могут быть данные различных типов (целое или вещественное число, последовательность символов, логическое значение и т.д.). Например: 5, -3.14 (запятая в десятичных дробях заменяется точкой), “результат” (текст - это любой набор знаков, взятый в кавычки).

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

Изображение 1 - Типы переменных

img3092

Значение переменной, занесенное и хранимое в ячейке с ее именем, может быть различным по типу числом (целым или действительным) либо символьным текстом. В соответствии со значением переменные называются целыми, действительными, символьными. Очевидно, что операции, которые можно произвести с числами, нельзя осуществить с символьным текстом. Объем памяти для хранения разных по типу значений тоже потребуется различный. Это ясно уже потому, что при хранении целого числа занимать место под нулевую дробную часть было бы нерационально. Поэтому в некоторых языках программирования предусмотрены операторы, объявляющие тип переменной с указанным именем, например integerA. Следовательно, для хранения значений А в этом случае будет отведено столько места, чтобы поместить знак и собственно целую часть. В других языках программирования прямо в имени переменной употребляют значки (символы), чтобы указать транслятору, сколько может понадобиться места под хранение значения данной переменной (неявное указание типа). Например, имя переменной А% содержит указание, что ее значением может быть только целое число, и только для него хватит места, отводимого в оперативной памяти. Более того, указание типа данных, которые могут стать значениями переменной, с помощью правил задания имени переменной позволяет компьютеру контролировать правомерность требуемых по отношению к переменной операции. Так, если имя переменной А%, то по отношению к ее значению будет ошибкой употребление команды «определить длину значения», которая уместна лишь для символьного текста. А если имя переменной содержит указание на вещественный или целый тип ее допустимого значения, то в ячейку с этим именем нельзя занести символьный текст. Ограничения, налагаемые на операции со значениями в зависимости от их типа, следовательно, требуют соответствующих ограничений на операции с именами переменных. Например выполнение программы будет прервано с выдачей сообщения об ошибке из-за несоответствия типов, если встретится команда, где будут одновременно присутствовать имена переменных или константы символьного типа и вещественного и/или целого.

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

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

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

2. Практическое использование переменных в программировании

2.1 Основные элементы программирования

Знакомство с основными элементами программирования VisualBasic начинается с понятия переменной.

1. Переменные, оператор присваивания

В языках программирования одним из важнейших понятий является понятие переменной.

Определение переменной

Здесь нужно вспомнить алгебру и решить простую задачу.

Задача. Вычислить функцию

Y=ax2+bx+c

при значениях коэффициентов и аргумента:

а = 3; b= - 4;c= 5; х = 2.

Без всякого программирования мы подставим значения а. b, c, x в формулу Y= 3٠22– 4٠2 + 5, произведем соответствующие арифметические действия и получим в результате Y= 9.

При программировании этой задачи фрагмент программы будет выглядеть так: a = 3, b = - 4, c = 5, x = 2

Y = a*x^2 + b*x + c

Print “Y = “; Y

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

Эти же вычисления можно запрограммировать, закодировать и так:

k1 = 3

k2 = - 4

k3 = 5

x = 2

Y = k1*x^2 + k2*x + k3

Print “Y = “; Y

Результат вычисления Y не изменится.

Оба варианта программы практически повторяют постановку задачи. Однако это только по внешнему виду. Так, знаки равенства в программе – это не знаки «равно», а операторы присваивания. С помощью них коэффициентам присваиваются численные значения, записанные справа от знака присваивания. Умножение, возведение в степень закодированы с помощью специальных символов* и ^.

Оператор Print выводит информацию на формы (или в графические поля). Все, что после оператора Print записано в двойных кавычках, это текст. Он выводится без изменений, что записано, то и выводится. Если далее пишется переменная, то выводится ее значение. Поэтому на форме появится: Y= 9. В операторе Print после текста стоит символ «точка с запятой» (;). Это разделитель. В этом случае значение переменной выводится сразу за текстом. Если же после текста поставить разделитель – запятую, то вывод значения переменной произойдет через 14 символов, считая от края формы.

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

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

В языках программирования высокого уровня аналогом этих ячеек памяти является переменная. Отсюда следующее определение.

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

Само название «переменная» предполагает ее изменчивость.

Важнейшее положение языков программирования:

После присвоения переменной некоторого значения вместо этого значения можно использовать переменную. Это равносильно использованию самих значений.

Именно в этом состоит основный смысл введения переменных в языках программирования.

В приведенном примере в первом варианте программы переменными являются: а, b, c, х, Y. Во втором варианте программы название некоторых переменных изменены и имеют имена: k1,k2,k3,x,Y. Только от программиста зависит, какие имена будут у переменных.

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

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

После трансляции программы в машинные коды каждой переменной в компьютере выделяется определенная область оперативной памяти со своим адресом. Делают это трансляторы при переводе кодов программы, написанной программистом, в машинные коды и операционная система.

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

2.2. Анализ работы с переменными

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

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

type var Name;

Где type - это указание типа переменной, а var Name - имя переменной. Тип переменной определяет ее поведение, а имя переменной позволит вам не запутаться среди придуманных переменных. Предположим, нам поручили подсчитать число всех посаженных тополей и берёз в городе. Для этого нам нужно обьявить переменные для тополей и берёз, как мы их назовём это уже личное дело. Например так:

int Topolya; // мы объявили переменную Topolya типа int

int Beryozy; // мы объявили переменную Beryozy тоже типа int

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

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

Правила объявления переменных

Существует несколько правил которыми нельзя пренебрегать.

Переменная должна быть объявлена до ее использования.

Переменную можно объявлять только внутри класса, как часть определения функции или внутри тела функции.

- Переменные, объявленные внутри класса, называются полями.

- Переменные, используемые для определения функции, называются параметрами.

- Переменные, объявленные внутри функции, называются локальными переменными.

Переменные должны начинаться с буквы или символа подчеркивания.

Имена переменных могут содержать в себе буквы цифры и значки подчеркивания.

Нельзя использовать в качестве имен переменных ключевые слова

Я приведу несколько примеров об]явления переменных:

// Правильные переменные

string _animal = "кот";

string Animal_Year = "2 года";

string animal_Name = "Никсон";

// Неправильные переменные

string 3animal = "животное"; //начинается с цифры

string elephant, Meow, Day = "Обезьяна"; //нельзя использовать запятую

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

string animal, years, name;

Если в строке выше мы только объявили переменные и чтобы начать их использовать мы должны их инициализировать, проще говоря присвоить им значение например:

animal = “Слон”;

years = “10 лет”;

name = “Ушастик”;

то в строке ниже, мы сразу инициализируем объявляемую переменную

String animals = “Кот”;

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

int widthSquare = 5; // присваиваем переменной значение

int perimeter = widthSqare * 4; // динамически инициализируем переменную perimeter. В данной строчке переменная perimrter будет равнв 5 умноженное на 4, таким образом мы динамически присвоили переменной perimeter значение 20.

Следует обратить внимание на то что язык C# очень чувствителен к именам. Если мы ошибетёмся в одной букве, то программа даже если будет работать, то выдавать она будет совсем неправильные результаты. Например, все перечисленные имена переменных будут являться совершенно разными: Width, wIdth, WidtH, width, WIdth

Присваивания

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

A = 3

B = 5

C = 6

D = A + B + C

Если перевести это простое упражнение на язык C#, то выглядеть это будет так:

int A, B, C, D;

A = 3;

B = 5;

C = 6;

D = A + B + C;

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

A = 3

C = A + B

B = 2

В C# менять порядок выражений нельзя. Операторы в C# выполняются последовательно, одно за другим! Во второй строчке примера переменной C присваивается значение суммы переменных A и B, но переменной B мы еще не присвоили никакого значения. Это недопустимо и программа просто не запустится. Также можно использовать круглые скобки для повышения приоритета (аналогично как в математике).

x = y/2 - 3 * z + 127;

m = (n/2 - 3* k) - 220;

В C# знак равенства называется оператором присваивания и обозначается знаком =. Оператор - это символ или короткое слово, которые выполняют операцию. У операторов имеются операнды. Например, оператор присваивания имеет два операнда: переменную слева от знака равенства и выражение справа от знака равенства. В данном случае, оператор присваивания заставляет переменную слева от знака равенства быть присвоенной значению, вычисляемому выражением справа.

В C# допустимо выражение с оператором присваивания, которое будет неправильным в математике:

C = 2;

C = C + 3;

В этом примере во второй строчке переменной C присваивается сумма текущего значения переменной C и числа 3, а предыдущее значение будет перезаписано новым полученным суммированием.

С помощью оператора присваивания также можно выстраивать цепочку присваиваний:

int x, y, z;

x = y = z = 26; // всем переменным присваивается значение 26

Еще можно использовать в программах блоки кода. Блок кода - это объединение нескольких операторов, заключенное в фигурные скобки. Блок кода позволяет создавать логический элемент, который будет использоваться как одиночный оператор. Обычно блок используется в операторах if и for:

If (a > t){

v = w * m;

l = d - r;

}

В этом примере, если переменная a будет больше переменной t, то будут выполняться сразу два оператора умножения и вычитания. По отдельности эти операторы выполняться не будут. Использование блоков кода позволяет создавать специальные алгоритмы для решения различных задач.

Область видимости и время жизни переменных

Блок кода окружается фигурными скобками. Он также определяет область видимости, которая задает время жизни объявляемых переменных. Объявленная внутри области видимости переменная является недоступной для кода, который расположен за этой областью. Следовательно, при объявлении переменной в пределах ее области видимости, мы локализуем эту переменную и защищаем ее от неразрешенного доступа и модификации. Область видимости может быть вложенной. Каждый раз, создавая новый блок кода, мы создаем новую вложенную область видимости, и при этом внешняя область становится видимой для вложенной области. Но при этом объекты, объявленные во внутренней области видимости, будут невидимы для кода во внешней области. Например:

using System;

class ScopeDemo //класс ScopeDemo

{

public static void Main() //метод Main

{

int x; // переменная видна всему коду в пределах метода

x = 10;

if(x == 10)

{ // создается новая область видимости

int y = 20; // переменная будет видна только в этом блоке

// Так как видны обе переменные, мы можем их использовать

Console.WriteLine("Сумма переменных x и y равна: " + (x + y));

}

// y = 100; // если уберём знак комментария, то получим ошибку так как переменная у не видна за пределами блока области видимости

Console.WriteLine("Значение x равно: " + x);

}

}

Попытка присвоить переменной у другое значение за пределами блока приводит к ошибке. Тогда как переменная x видна в обоих блоках кода и доступна для использования.

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

Если при объявлении переменной одновременно происходит ее инициализация, то переменная будет повтороно инициализироваться каждый раз при входе в блок, в котором она объявлена. Например:

using System;

class VarLife //класс VarLife

{

public static void Main() // метод Main

{

int x;

for(x = 0; x < 3; x++) //цикл

{

int y = -2; // переменная инициализируется каждый раз при входе в блок

Console.WriteLine("Значение y равно: " + y);

y = 25;

Console.WriteLine("Значение y равно: " + y);

}

}

}

Запустив программу, мы увидим следующее:

Значение y равно: -2

Значение y равно: 25

Значение y равно: -2

Значение y равно: 25

Значение y равно: -2

Значение y равно: 25

Как мы видим, каждый раз при входе в цикл for переменная y принимает значение -2, затем ей присваивается значение 25, которое утрачивается при завершении цикла.

Комментарии

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

С# поддерживает также многострочные комментарии, заключаемые в комбинации символов «/*» и «*/». В этом случае текст комментария может находиться на многих строчках. Все, что находится между этими разграничительными символами, игнорируется компилятором.

/*

Этот текст в коде

игнорируется компилятором.

*/

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

Заключение

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

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

Переменные помогают экономить время при написании и отладке программы. Вместо того, чтобы использовать одно и тоже значение (литерал), его можно присвоить в начале программы переменной, и далее в остальном коде программы её использовать. Если позднее мы захотим изменить значения, то вносить изменения в код придется не в нескольких местах, а только в одном месте — там, где переменной присваивалось значение.

Ну и главный вопрос, «Для его нужны переменные?».

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

Список литературы

  1. Григорьев, А.Б. О чем не пишут в книгах по Delphi; БХВ-Петербург - Москва, 2013. - 576 c.
  2. Гудман, Д. Java Script и DHTML. Сборник рецептов для профессионалов; СПб: Питер - Москва, 2013. - 523 c.
  3. Доорс, Дж.; Рейблейн, А.Р.; Вадера, С. Пролог - язык программирования будущего; М.: Финансы и статистика - , 2011. - 144 c.
  4. Дунаев, Вадим Web-программирование для всех; БХВ-Петербург - Москва, 2013. - 560 c.
  5. Дьяконов, В.П. Справочник по расчетам на микрокалькуляторах; М.: Наука. Главная редакция Физико-математической литературы - Москва, 2011. - 464 c.
  6. Ерофеев, В.И.; Меркушов, Ю.П. и др. Средства отладки программ в ОС ЕС; Статистика - Москва, 2012. - 245 c.
  7. Кристиансен, Том; Торкингтон, Натан Perl: библиотека программиста; СПб: Питер - Москва, 2013. - 736 c.
  8. Ламот, А. Программирование трехмерных игр для Windows; Вильямс - Москва, 2011. - 920 c.
  9. Либерти, Джесс Освой самостоятельно C++ за 21 день; М.: Вильямс - Москва, 2012. - 816 c.
  10. Интернет сайт; https://puzzleweb.ru/php/02_variables.php - Раздел «Переменные»
  11. Девид, МакФарланд JavaScript и jquery ; O`RELLY, Москва 2015, 878 с.
  12. Голиков В.А. Теория программирования часть вторая, Голиков В.А. 2006, МФПУ «Университет», 2006, раздел 3.5