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

Скачать на Телефон 04.04.2019
Скачать на Телефон

Дадим определения переменной и ее различных видов.

Переменная – это наблюдаемое свойство объекта, которое может принимать два и более значений .

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

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

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

В случае, когда имеем дело с интервальной шкалой, значений может быть в принципе бесконечно много. Например, ясно, что значений такой переменной, как рост человека в принципе бесконечно много: 152 см, 152,1 см, 152,15 см, 157,115 см и т. д. Чтобы ограничить число значений, вводятся интервалы: от 150 до 155 см, от 155 до 160 см … от 200 до 210 см. Каждый интервал приравнивается средней величине: 152,5 см, 157,5 см и т. д. В таком случае в диапазоне от 150 до 210 см переменная будет принимать всего 12 значений.

Социальный статус можно определять как высокий и как низкий (2 значения переменной), но можно определять как высокий, средний, низкий (3 значения переменной «социальный статус»). Можно еще больше дифференцировать: высший-высший, средний-высший, низший-высший, высший-средний, средний-средний, низший-средний, высший-низший, средний-низший, низший-низший. Тогда получается 9 значений.

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

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

Различаются зависимые и независимые переменные. Зависимые переменные меняют свое значение при изменении значений других переменных. Независимые переменные − это такие, изменение которых приводит к изменениям других переменных. Например, очевидно, что при изучении связи между переменными «пол» и «наличие водительских прав», первая переменная будет независимой, а вторая – зависимой переменной. Дело в том, что приобретение водительских прав или их утрата не приводит к смене пола. А вот пол влияет, если можно так выразиться, на наличие водительских прав: среди мужчин автолюбители встречаются чаще, чем среди женщин.



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

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

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

Таблица 10.1

Рис. 10.1. График зависимости между коэффициентом интеллекта и законченным учебным заведением

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

Таблица 10.2

Рис. 10.2. График зависимости между законченным учебным заведением и коэффициентом интеллекта

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

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

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

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

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

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

1. Независимые переменные . Среди них выделяются экспериментальные и дифференциальные переменные.

Экспериментальные переменные – это те переменные, которые экспериментатор изменяет по своему желанию и наблюдает их влияние на зависимые переменные. Например, экспериментатор варьирует сложность задания или интенсивность стимула.

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

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

3. Переменные помех (нарушения ). Это переменные, которые не контролируются в ходе эксперимента и которые могут оказывать влияние на зависимые переменные. Помехи ошибочно могут быть отнесены к экспериментальным переменным. Например, неприятный (надоедливый, навязчивый) шум в комнате, в которой субъекты проходят тест на интеллект.

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

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

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

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

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

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

Например, если записать x+y , гдеx – переменная, то переменнаяy должна быть одного из числовых типов.

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

Основные типы данных

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

char short int long float double

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

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

Тип Размер памяти в байтах Диапазон значений

char 1 от -128 до 127

int 2 от -32768 до 32767

short 2 от -32768 до 32767

long 4 от -2 147 483 648 до 2 147 483 647

unsigned char 1 oт 0 до 255

unsigned int 2 от 0 до 65535

unsigned short 2 от 0 до 65535

unsigned long 4 от 0 до 4 294 967 295

Для переменных, представляющих число с плавающей точкой используются следующие модификаторы-типа: float, double, long double.

Величина с модификатором-типа float занимает 4 байта. Из них 1 байт отводится для знака, 8 бит для избыточной экспоненты и 23 бита для мантиссы. Отметим, что старший бит мантиссы всегда равен 1, поэтому он не заполняется, в связи с этим диапазон значений переменной с плавающей точкой приблизительно равен от 3.14E-38 до 3.14E+38.

Величина типа double занимает 8 бит в памяти. Ее формат аналогичен формату float. Биты памяти распределяются следующим образом: 1 бит для знака, 11 бит для экспоненты и 52 бита для мантиссы. С учетом опущенного старшего бита мантиссы диапазон значений равен от 1.7E-308 до 1.7E+308.

Цели урока:

  • введение понятия “переменной”;
  • добиться сознательного усвоения материала;
  • развитие логики мышления;
  • обретение навыков работы с переменными.

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

Организационная форма урока: мини-лекция.

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

ХОД УРОКА

Приветствие. Проверка готовности учащихся к уроку, организация внимания. На доске написана тема.

Подготовка учащихся к усвоению нового материала:

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

Изучение нового материала:

Алгоритмический язык имеет сходство с математическим тем, что в нем также используется понятие величины. Используются в основном, величины двух типов – числовые и символьные, хотя не исключены и другие типы. Числовые величины – это числа: натуральные, целые, вещественные; символьные – буквы, цифры, слова, предложения. В информатике также используется понятие “переменная”. Запишем определение переменной.

Переменная – это объект, которому дано имя и который может принимать различные значения.

Переменные удобно представить в виде “почтовых ящиков” (ячеек памяти компьютера), на которые навешены ярлыки с их именами.

Информация, хранимая в переменной, называется ее значением .

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

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

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

Наш “почтовый ящик” имеет некоторые необычные свойства. Когда в него помещается другое значение, начальное стирается и исчезает. Оно уже не может быть восстановлено. Задать значение переменной можно с помощью команды присваивания , которая обозначается знаком “=”.

Например:

Задание 1:

Выполнить следующие операции

  1. A=13 B=3
  2. A=A+B
  3. X=A+B
  4. Y=A*B
  5. Печать X, Y
A B X Y
13 3
A+B 16
A+B 19
A*B 48
Печать 19 48

Домашнее задание:

  • проработать материал;
  • выполнить задачу 1.

Задача 2:

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

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

Задача 3:

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

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

Задача 4:

Записать два числа в переменные A и B. Поменять местами содержимое A и B:

а) с использованием вспомогательной переменной С;

б) без использования дополнительной переменной.

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

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

Согласитесь, что выражение
2 + 3 = 5
достаточно серьезно отличается от выражения:
a + b = c

В чем отличие? Не только в том, что в алгебре вместо цифр применяются буквы латинского алфавита, но отличие и в уровне абстракции.

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

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

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

Так же и в компьютерной грамотности. Можно говорить сначала о самом низком уровне абстракции, например, об арифметике .

Калькуляторы дружат с константами

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

  • Вводим на калькуляторе первое число, например, «2»,
  • нажимаем на знак «плюс»,
  • вводим второе число, скажем, «3» (см. рис. 1),
  • и затем нажимаем знак «=».

Что получим? Очевидно, значение «5». Арифметика. Но с использованием компьютерной техники – калькулятора.

Рис. 1. Суммирование констант 2+3 на калькуляторе (Windows 7)

Рис. 2. Некоторые виды калькуляторов, имеющихся в Windows 7

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

Программы дружат с переменными величинами

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

Как это работает? Поясним несколько упрощенно, чтобы не требовалось глубокое погружение в сложную область программирования.

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

то в программировании делают все наоборот: сначала указывают результат, а потом действие, то есть:

Здесь не случайно я пишу строчные (заглавные) буквы вместо прописных (маленьких) букв:

во-первых, чтобы отличить алгебру от программирования, а

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

Так как вместо прописных букв латиницы у нас делали строчную кириллицу, иначе где еще взять ?! Это связано с тем, что многие трансляторы с языков программирования у нас в стране лишь адаптировали с западных аналогов, а не разрабатывали с нуля. А там, откуда все это копировалось, русского языка не было по понятным причинам. Хотя были и примеры .

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

Почему стали в программировании писать наоборот, а именно стали писать C = A + B? Трудно сказать. Так сложилось, что сначала надо было указывать результат, и лишь потом действие.

Что же дает подобное «волшебное» выражение с буквами вместо цифр для программирования? Казалось бы, в чем разница между константами и переменными:

5 = 2 + 3 (напишем наоборот лишь для сравнения) и

Давайте разберемся. Что может быть результатом сложения 2+3? Большинство ответит, конечно, «5». И хоть это почти правильный ответ, пожалуй, мы с этим согласимся.

Почему почти? Да потому что это правильный ответ для . Для четверичной системы исчисления, в которой используются только цифры от 0 до 3, ответ был бы «11», да-да, именно одиннадцать, можете не сомневаться. А в пятеричной системе исчисления, где добавляется еще цифра 4, ответ был бы «10».

Но в любом случае, о какой бы системе исчисления мы не говорили, результатом 2+3 всегда будет одно и то же число (константа). В десятичной системе (вернемся к ней теперь надолго), это «5», и только «пять».

А сколько будет A + B? Ответ очевиден: все зависит от того, чему равны A и B. Значит, результатом 2+3 всегда будет 5, а результатом A+B будут разные значения в зависимости от величин A и B.

Достаточно очевидно. Ну и что, что 5 – константа, а тут переменная? А то, что переменные – это другой уровень абстракции. За счет A+B мы теперь можем получать множество разных значений.

Как могут использоваться выражения с переменными величинами

Допустим, A – это вес одного товара, а B – это вес другого товара. Значит, A+B – это суммарный вес обоих товаров. Значит, используя выражение C=A+B, программист может запрограммировать автоматическое суммирование двух весов.

Как он это сделает?

  • Например, сначала программист попросит ввести с клавиатуры вес первого товара (не описываю, как это можно сделать в языке программирования, поверим, что так можно сделать), и присваивает введенное значение переменной с именем A.
  • Затем он проделывает то же самое с весом второго товара, и присваивает это уже переменной B.
  • А потом пишет в своей программе теперь уже понятное нам выражение:

Что получается в итоге? Конечно, вы сразу догадались, что переменной C будет присвоено значение суммы весов, сохраненных в переменных A и B.

И далее программист напишет в своей программе (тоже прошу поверить, что это можно сделать средствами языка программирования): вывести на экране дисплея значение переменной C. Что мы увидим на экране? Конечно, сумму весов первого и второго товаров!

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

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

А если пойти дальше, и не выводить на экран сумму весов 2-х товаров, а записать это куда-то в базу данных?! А если не ограничиваться 2-я товарами, а, скажем, говорить о миллионе разных видов товаров, подлежащих взвешиванию? Почему бы и нет! Все это можно описать в виде выражений, подобных C = A + B.

И в итоге мы получим, можно без стеснения сказать, серьезную автоматизированную систему для супермаркета, где учитываются и веса всех товаров, и количество, и стоимость, а также все покупки, сделанные покупателями и прочее, и прочее и прочее. Но это стало возможным, когда появилось программирование с использованием переменных величин, тех самых A, B, C и тому подобное! Без этого уровня абстракции, без переменных не было бы программирования.

Переменные и константы – вместе навсегда

Справедливости ради, надо сказать, что цифры (простые и не очень простые числа) остались в программировании. Они тоже нужны. Их назвали иностранным словом «константы».

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

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

Так что наряду с выражением C = A + B, в программировании возможно как выражение C = A + 3, так и C = 2 + B.

Однако в левой части программного выражения (до знака равенства «=») константа не может употребляться. Там может быть только переменная, поскольку значение выражения, которое присваивается переменной в левой части выражения, может меняться в зависимости от значений переменных в правой части выражения. А значит, слева может быть только переменная величина.

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

Чего стоило разработчикам языков программирования реализовать возможности для применения переменных величин? Это уже отдельная тема. Одно могу сказать, стоило дорого, само собой, не только в деньгах. Дорого в расходовании (применении) интеллекта для изобретения подобных вещей.

Другой уровень абстракции требует принципиально иных решений, новой конфигурации «железа», новых команд для нового «железа». Но это уже, что называется, другая история…

Другие материалы:

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

.

Рекомендуем почитать

Наверх