Что такое переменная в информатике кратко

Обновлено: 05.07.2024

Всем здравствуйте! Меня зовут Александр Георгиевич. Я являюсь профессиональным рейтинговым репетитором по информатике, программированию и математике.

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

Написание даже наипростейшей программы превращается в сущий ад. Если у вас возникли большие проблемы и затруднения при изучении азов какого-либо языка программирования, например, вы отвратительно понимаете, что такое переменная, или при подготовке к ОГЭ или ЕГЭ по информатике, то срочно звоните мне на мобильный телефон и записывайтесь на пробный индивидуальный урок.

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

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

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

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

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

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

Дискретные (можно перечислить возможные значения):

  • целые (integer, longint)
  • символьный (char)
  • логический (boolean)
  • диапазон (часть значений стандартного дискретного типа, например, 1..100)
  • перечисляемый (явно перечислены все допустмые значения)

Вещественные (real, double, extended) — служат для представления действительных чисел с ограниченной точностью.

  • Массив (фиксированное количество данных одного типа)
  • Строка
  • Запись (связанные данные, в общем случае, разных типов)
  • Множество
  • Файл (данные одного типа, хранящиеся на внешнем носителе)

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

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

компьютер будет ожидать ввода двух значений, которые затем будут помещены в переменные a и b.

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

Для того чтобы переменная получила или изменила свое значение, используется оператор присваивания. В Pascal он записывается следующим образом:

Например, при выполнении оператора

переменная x получит значение суммы переменных a и b. При выполнении оператора

значение переменной n увеличится на единицу.

Запомните! При присваивании переменной нового значения старое будет потеряно безвозвратно. Например, после выполнения операторов a := b;

обе переменные будут иметь одинаковые значения, равные тому, которое имела переменная b.

Рассмотрим, как составить простую программу, выполняющую какие-либо вычисления. Для этого нам нужно:

  1. Проанализировав условие задачи, выделить исходные данные и результаты. Выбрать для них имена переменных (если они не заданы в условии). Определить тип данных.
  2. Построить математическую модель задачи — описание в виде набора математических соотношений.
  3. Разработать (или подобрать из известных) алгоритм решения задачи — последовательность действий, приводящую от исходных данных к результатам за конечное число шагов. (Не забудьте, что сначала компьютер должен получить значения исходных данных, а после нахождения результатов — вывести эти результаты на экран).
  4. Если в процессе решения используются промежуточные данные, выбрать имена переменных и определить их тип.
  5. Записать программу в соответствии с правилами синтаксиса языка программирования (в нашем случае — Pascal).

Рассмотрим простейший пример.

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

1) Определим исходные данные и результаты задачи. В данном случае они явно указаны в условии: исходная величина — радиус, результаты — длина окружности и площадь круга. Используем для них традиционные обозначения: R, L и S, соответственно. Все эти переменные могут принимать как целые, так и дробные числовые значения, поэтому следует использовать вещественный тип данных, например, Real.

2) Математически задача описывается известными формулами:

3) Алгоритм в данном случае предельно прост:

  1. Ввести значение радиуса.
  2. Вычислить длину окружности по формуле [1].
  3. Вычислить площадь круга по формуле [2].
  4. Вывести значения длины окружности и площади круга на экран.

4) При вычислениях нам (точнее, компьютеру) потребуется значение π. Вообще говоря, практически все реализации Pascal имеют встроенную константу PI, но мы объявим подобную константу самостоятельно.

Если заглянуть в википедию, то можно увидеть, что переменная в программировании — это поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным. Слово, из этого определения, на которое я хотел бы обратить ваше внимание — это данные. Так ли на самом деле, что в языках программирования, на которых мы пишем, переменные используются только для доступа к данным. Я, например, пишу на PHP. И в нём, как и в других языках программирования, переменные, кроме доступа к данным, используются также для доступа к объектам(экземплярам классов) и массивам(ассоциативным и обычным) и ещё некоторым вещам. Данные(строки, целые числа, числа с плавающей точкой, булевы значения), объекты(экземпляры классов) и структуры( ассоциативные и обычные массивы, если брать PHP) для человека по-сути являются разными сущностями (абстракциями), и было бы разумным, в наших языках программирования, обращаться с ними, как с разными вещами, игнорируя факт того, что для машины они являются одним и тем же(именованными областями памяти). Для этого я предлагаю вместо переменных начать пользоваться такими сущностями как, например: объект, структура, данные.


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

RFC для PHP по этой теме уже в процессе создания.

PS
Вообщем создать RFC для PHP не вышло, тк разработчики PHP сказали, что не хотят тратить символы которые будут нужны для реализации этой задумки. Добавлю от себя что в PHP это всё равно не получилось бы реализовать потому, что у него динамическая типизация. Но! В языке со статической типизацией, где типы не меняются, это вполне можно реализовать. Поэтому надеюсь разработчики таких языков обратят своё внимание на предложенную идею.

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

Резюме

Переменные и константы

Программируемые переменные

Этот раздел необходимо переработать (27 января 2021 г.) .
Необходима реорганизация и уточнение содержания. Улучшите его или обсудите области, требующие улучшения .

В языке программирования переменная - это пространство для хранения [сомнительная информация] для результата. Однако возможности [Что?] Переменной тесно связаны с языком программирования, о котором мы говорим. Например, переменная в C ++ будет иметь шесть характеристик:

  • ее имя, т.е. под каким именем объявлена ​​переменная;
  • его тип - это соглашение об интерпретации последовательности битов, составляющих переменную. Тип переменной также определяет длину этой последовательности (8 бит, 32 бита, 64 бита);
  • его значение , то есть сама битовая последовательность [недостоверная информация] ;
  • его адрес - это место в памяти, где он хранится;
  • его область видимости - это часть исходного кода, в которой она доступна, например, область видимости (неглобальной) переменной в C означает ее определение в конце блока, в котором она определена.
  • его видимость , это набор правил, которые фиксируют, какие могут использоваться переменные (пример: ключевые слова публичные, частные, защищенные или маскирование переменной другим);
  • его время жизни - это время выполнения, в течение которого существует переменная. В C и C ++ переменная, содержащаяся в блоке кода, ограниченном фигурными скобками "<>", имеет время жизни, соответствующее времени выполнения этого блока. Время жизни локальной переменной не следует путать с ее видимостью или областью действия: переменная вне области видимости (например, скрытая другой) все еще существует.

Однако можно найти языки, которые ограничивают эти характеристики:

  • в PHP нет строгой типизации, как в большинстве языков сценариев;
  • Prolog , как и все языки, функциональное программирование не позволяет значения изменений переменных с течением времени , как только сделали первую идентификацию;
  • видимость [Что?] переменный [Which?] является общедоступным по умолчанию в C;
  • понятие указателя в C ++ заменено понятием ссылки в Java , в Prolog адрес переменной недоступен для программиста.

Переменные и указатели

Во всех языках, которые позволяют динамическое создание адресов (новое в C ++ или Java), понятие переменной дополняется понятием указателя (тип данных, связанных с переменной, значения которых адреса). Адрес, содержащийся в переменной-указателе, может быть недоступен для программиста (PHP, Java, Python) или напрямую (C ++) [Комментарий?] .

Имя переменных

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

Примеры допустимых имен переменных на C :

Пример неверного имени переменной в C:

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

Все эти имена переменных действительны в Лиспе .

Печатать

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

Статическая типизация помогает генерировать более эффективный объектный код (с точки зрения потребления памяти и скорости выполнения). Однако он запрещает рефлексивность во время выполнения.

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

Мы говорим о строгой типизации, когда язык требует, чтобы переменные были объявлены в типе и использовались в этом типе (например, Ada или C ++). Мы говорим о слабой типизации, когда язык допускает, что переменная может изменять тип во время своего существования (в частности, чтобы соответствовать семантике выражения).

Жизненный цикл переменных

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

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

Такие языки, как C , Caml или Pascal , требуют объявления переменной или даже присвоения ей типа перед использованием. Вынужденная объявление переменных позволяет компилятору или интерпретатор для выявления опечаток как необъявленных переменных или одноименных переменных. Другие языки делают объявление во время первого присваивания (так обстоит дело с большинством языков сценариев ) или когда они впервые появляются в коде (как в Прологе).

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

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

Рефлексивность

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

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

Читайте также: