Казалось бы, что переменные в программировании - это настолько просто, что нет особого смысла еще упрощать информацию о них. Но дело в том, что это простая тема для тех, кто близок к программированию или уже имели какой-то опыт в этой сфере. Эту статью я хочу посвятить попытке рассказать о том, что такое переменные в программировании максимально простым и доступным языком, найдя как можно более подробные примеры из жизни. Надеюсь, что моя интерпретация будет полезна новичкам, а так же людям, которые занимаются преподавательской деятельностью, в качестве нового взгляда.
Определение переменной
Переменная - это область в памяти, имеющая адрес, по которому к этой области памяти можно обратиться для получения доступа к данным. Что это за набор слов такой и как все это работает? Эти секреты будут доступны во время более углубленного изучения программирования, а пока хотелось бы углубиться в объяснение
Если просто, то переменная - это хранилище данных. В переменную можно поместить какую-то информацию, например число, строку или данные другого типа. Для того, чтобы лучше понимать что это такое - переменная, мы можем обратиться к примерам из жизни. В качестве примеры мы можем взять коробку, которая предназначена для хранения обуви. Т.е. мы взяли коробку, определили, что это коробка именно для обуви и далее начинаем хранить в ней обувь. В нужный момент мы из этой коробки можем достать обувь и делать с ней что-то, а после снова убрать в коробку, либо не убирать. Это на усмотрение каждого человека
Если подробно расписать алгоритм того, как какая-то коробка стала коробкой для обуви, то мы получим алгоритм объявления переменных в языках программирования. Ведь не каждая коробка предназначена для хранения обуви. Сначала пришло осознание, что нам необходимо где-то хранить обувь, после из огромного множества коробок мы выбрали ту, которая больше всего подходит нам по размеру, мы подписали эту коробку так, чтобы через некоторое время было понятно, что именно в ней хранится и после этих сложных манипуляций мы конец поместили в нее обувь и стали ее там хранить, чтобы в необходимый момент достать обувь из коробки.
Именно так, как описано выше, выглядит процесс определения переменной в языках программирования. Нам необходимо определить тип переменной, на основе того, какие данные мы собираемся в ней хранить, после нам необходимо определить название переменной, чтобы самим же было понятно, что в этой переменной будет храниться, необходимо определить память, которую, созданная нами переменная, в теории может использовать и потом указать значение, которое переменная будет содержать.
Современные языки программирования позволяют указывать тип данных переменных динамически, то есть тип данных в переменных определяется данными, которые в этой переменной хранятся. Если мы начинаем хранить в переменной цифру, то это будет числовая переменная(int), а если запишем туда какой-то текст, то это переменная будет типа строка(string).
По аналогии с коробкой это бы выглядело так: достали коробку, дали название, а тип определяется самостоятельно, в зависимости от того, что положили - если яблоки, то коробка для яблок, если тетради, то коробка для тетрадей и так далее.
Типы данных
Хотелось бы и такое понятие как типы данных перенести на примеры из жизни.
В прошлом блоке я использовал такие слова как "тип" и "данных" и еще упомянул, что его нужно указывать для переменной. Мы действительно используем данные разного типа, как в программировании, так и в жизни, и в зависимости от типа данных, который мы хотим использовать, мы определяем какие вообще действия возможны с определенным типом, определяем сколько места(памяти) нужно для хранения, какое количество данных может быть записано в выделенное для данных места и т.д.
В жизни мы явно можем определить как минимум два типа данных: это числа и буквы или строки в программировании. Числа мы используем для счета, а из букв мы составляем слова, которые далее произносим. Мы точно знаем, что с числами можно совершать такие операции как сложение и умножение и результатом будет еще одна число, но абсолютно точно мы не можем сложить две буквы по тем же правилам, по которым складываем числа. Если мы складываем буквы, например, "Д" и "А", то мы получим слово "Да" - этот процесс в программировании, в общем, выглядит так же, если опустить особенности языков программирования. Складывая два числа, например 12 и 13 мы получим число 25, а не "1213". Хотя, на самом деле, число может быть строкой в языке программирования, но это уже другая история, которая не относится к самой сути.
Конечно в программировании типов данных намного больше и это не всегда простые типы, как строки или числа. Это могут быть так называемые булевы значения, либо есть тип данных "массив". Но это отдельная тема.
Зачем нужны переменные и как они работают?
Понятно, что переменные нужны не просто для хранения данных. Они нужны для работы с данными. Ни для кого не секрет, что при помощи программирования можно создать такую программу как калькулятор и на основе этой программы попытаюсь описать как же переменные используются в программировании.
Основные действия в калькуляторе - это умножение, деление, вычитание и умножение и чаще все эти действия производятся над двумя числами, а результат этих действий над двумя числами, как правило, третье число. Тогда выходит нам нужно всего 3 переменные числового типа для того, чтобы хранить два числа и ответ.
Вспомнив начало алгебры мы можем назвать наши переменные таким образом: “a”, “b” и “c”. Переменные “a” и “b” будут содержать какие-то числа, а “c” будет содержать ответ, тогда мы можем записать c = a + b или c = a - b, c = a * b, c = a\b
Теперь, указывая для “a” и для “b” разные цифры мы будем получать разный результат, который будет сохранен в С.
И например в языке программирования Python мы сможем легко выводить результат на экран при помощи такого текста: print(c)
По сути мы храним в участке памяти числа, которые при необходимости из этого участка извлекаем, производим над ними нужную нам операцию, результат этой операции мы записываем в другой участок памяти и далее производим над ним нужные нам операции, например выводим на экран.
Далее, если нам эти данные больше не нужны, то нужно очистить память от лишних данных, но во многих языках программирования этот процесс автоматизирован и не нужно переживать о том, что где-то остается лишняя память, хотя все зависит от сложности приложения и задачи.
В целом и тут можно найти интерпретацию из жизни. Да в целом, если начать разбираться в процессе сложения двух чисел в уме, то мы придем к тому же, что я описал выше для языка программирования. Мы запоминаем первое число, запоминаем второе число, после производим над ними какую-то операцию и получаем ответ, этот ответ мы запоминаем и можем далее использовать, например произнести его вслух аналогично команде print()
Вывод
В языках программирования, по сути, не придумали ничего, что кардинально бы отличалось от того, что человек использует в повседневной жизни. Скорее всего вы уже знаете программирование и если когда-то вы захотите начать писать код, то процесс обучения - это не изучение новой информации, а изучение того, как известные нам жизненные процессы запускаются при помощи языков программирования.