Понятие «Переменная», «Поле» и «Константа. Переменная (программирование)

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

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

В языке 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.

Урок 11

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

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

Переменную можно представить как простейший объект программы потому что:

· имя переменной связывает переменную с некоторой областью памяти,

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

· переменные в программе перед их использованием нужно объявлять (декларировать),

· при объявлении переменной надо указать, что объявляется переменная, задать имя переменной и указать ее тип,

· тип указывает способ представления переменной.

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

Переменная может хранить значения заданного типа. Разрешено использовать

– семь простых типов (число, валюта, строка, болевое, дата, время и дата-время),

– шесть типов диапазонов (диапазон чисел, диапазон валют, диапазон строк, диапазон дат, диапазон времени, диапазон дат и времени) и

– переменные, которые могут хранить указанные типы.

Всего переменная может хранить значения 26 различных типов.

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

1. Объявить переменную. Сообщить программе имя и тип переменной, которую требуется использовать.

2. Присвоить переменной значение. Передать переменной значение для хранения.

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

Объявление переменных

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

Объявление переменных может быть явной или неявной. Явное объявление означает указание имени и типа переменной перед ее использованием. Оно осуществляется операторами Dim, Private, Static, Public, которые имеют следующий синтаксис:

Dim имяПеременной

Private имяПеременной Dim ИмяПеременной1[ As Тип1]

где Dim (Размер) - ключевое слово, которое сообщает Visual Basic, что декларируется переменная и резервируется область памяти для ее хранения;

ИмяПеременной - имя переменной (идентификатор, не входящий в перечень ключевых слов Visual Basic);

As (Как) - ключевое слово, которое сообщает Visual Basic, что определяется тип данных для переменной;

Тип - тип данных для объявляемой переменной;

Private (Частный), Public (Общий)- ключевые слова, определяющие область видимости переменной;

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

Примечание:

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

Переменная, объявленная при помощи оператора Dim, доступна из любого места программы (или блока программы) в пределах области видимости, содержащей оператор Dim. Например, если она объявлена внутри модуля вне любой процедуры, то такая переменная доступна из любого места этого модуля. Если переменная объявлена внутри процедуры, то она доступна только в пределах этой процедуры. Такая переменная называется локальной. Чтобы определить доступность переменной более детально, применяются операторы Private и Public.

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

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

Если переменная при объявлении указана как Static, то она остается существовать в памяти и сохраняет свое последнее значение после завершения работы процедуры, в которой была объявлена, static-переменная не может быть объявлена вне процедуры.

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

Private bSuccess As Boolean

Dim lastName, firstName As String, dblSum As Double

· Вторым способом явного объявления переменных является указание типа с помощью суффикса.

Часть объявления переменной является необязательной, однако если тип данных не указан, Visual Basic назначит переменной тип значения, которое присваивается ей при объявлении. Если не указан тип данных и переменная не инициируется никаким начальным значением, Visual Basic назначит ей тип данных object. Это может стать причиной более медленной работы программы, поскольку для переменной типа Object выделяется больше памяти, чем, возможно, нужно. Кроме того, программе придется тратить дополнительное время на определение, к какому типу данных относится значение переменной в данный момент времени.

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

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

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

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

· имя переменной должно содержать не более 255 символов;

· имя переменной может содержать любые буквы, цифры и символ подчеркивания;

· первым символом в имени переменной должен быть символ или знак подчеркивания;

· в имени переменной должны отсутствовать пробелы и знаки пунктуации ;

· имя должно быть уникальным внутри области видимости;

· имя не должно являться ключевым словом.

Обычно объявляют переменную, при помощи ключевых слов Dim и As:

Dim aNumber As Integer

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

Поскольку aNumber является переменной типа Integer, она может хранить только целые числа. Если бы нужно было хранить, например, число 42.5, то использовался бы тип данных Double. А для хранения слов используется тип данных с именем String. Еще одним типом данных, который следует упомянуть здесь, является тип Boolean, который может хранить значения True или False.

Ниже приведены дополнительные примеры объявления переменных.

Dim aDouble As Double

Dim aName As String

Dim YesOrNo As Boolean

Имя переменной не может совпадать с именем какой-либо функции, оператора или ключевым словом, зарезервированным в синтаксисе Basic. Например, переменная не может иметь имя Sin, Mod или If, поскольку Sin является именем встроенной функции, Mod является встроенным оператором, а If представляет собой встроенное ключевое слово. При вводе формул в редакторе формул имена встроенных функций, операторов и других ключевых слов подсвечиваются другим цветом. Это позволяет визуально определить, что имя переменной вызывает конфликт имен.

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

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

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

· Local (локальная),

· Global (глобальная),

· Shared (общая).

Каждая переменная имеет область действия, которая определяется при объявлении переменной.

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

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

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

Public gdtmFinish As Date

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

Для объявления переменной как локальной внутри модуля, формы, обработчика событий, используйте операторы Private, Local или Dim. В этом случае объявленная переменная будет доступна для всех входящих в форму, модуль или обработчик событий процедур, но в то же время окажется недоступной в процедурах других модулей, форм или обработчиков событий. Значение локальной переменной сохраняют только до момента действия формы, модуля или обработчика событий, в которых она объявлена. После их выполнения значения локальных переменных теряются. Приведенные ниже выражения являются эквивалентными:

Local x As Number

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

Если нет никаких особых требований,

то есть смысл всегда выбирать область видимости Dim .

Присваивание переменным значений

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

Эта строка кода берет значение 42 и сохраняет его в ранее объявленной переменной с именем aNumber.

При необходимости можно также добавить ключевое слово Let.

Объявление и присваивание значений для переменных со значениями по умолчанию

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

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

Dim aDouble As Double = 0

Dim aName As String = "default string"

Dim YesOrNo As Boolean = True

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

Строковые переменные

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

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

Dim VarName As String* ДлинаСтроки

где ДлинаСтроки - целочисленная переменная или константа, содержащая число, которое указывает длину строковой переменной.

Например:

Dim strMyName As String*20 ′ Объявляется строковая переменная фиксированной длины в 20 символов

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

String (строка) представляет собой любой набор символов текста, таких как буквы, цифры, специальные знаки и пробелы. Строки могут быть легко читаемыми пользователем фразами или предложениями, такими как "Выпей же ещё чаю и съешь этих мягких французских булок", или совершенно нечитаемыми сочетаниями, такими как "@#fTWRE^3 35Gert".

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

При назначении фактического текста (также называемого строка литералов) переменной типа String текст должен быть заключен в кавычки (""). Можно также использовать символ = при присвоении одной переменной типа String другой переменной типа String, как показано в этом примере.

Dim aString As String = "Это строка"

Dim bString As String = ""

bString = aString

Можно использовать знак амперсанда (& или знак «+») для последовательного объединения двух или более строк в новую строку, как показано ниже. Эта процедура также называется объединение.

Dim cString As String = ""

cString = aString & bString

В предыдущем примере объявляются три переменные String, первым двум присваиваются значения "using string" и "variables" соответственно, а затем объединенные значения первых двух переменных присваиваются третьей переменной. Каким будет значение переменной cString? Возможно, это удивительно, но значением этой переменной станет строка using stringvariables из-за отсутствия пробела в конце aString или в начале bString. Две строки просто соединены вместе. Если требуется добавить пробелы или что-либо еще между двумя строками, следует сделать это с помощью строкового литерала, например, " ", как показано ниже.

Dim aString As String = "using string"

Dim bString As String = "variables"

Dim cString As String = ""

cString = aString & " " & bString

Преобразование от одного типа переменной к другому

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

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

Некоторые функции преобразования в Visual Basic

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

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

Преобразует число в символ Unicode.

Преобразует выражение (любое числовое выражение или строка, представляющая число число от -32768 до 32767) к типу Integer с округлением.

Преобразует выражение (Любое числовое выражение или строка, представляющая число от - до) к типу Long с округлением.

Преобразует выражение (любое числовое выражение или строка, представляющая число) к типу Single (число от -3.402823E8 до -1.401298E-45 для отрицательных значений и от 1.401298E-45 до 3.402823E8 для положительных значений).

Преобразует выражение (любое числовое выражение или строка, представляющая число) к типу Double (число в диапазоне значений от -1.E308 до -4.E-324 для отрицательных значений, и от 4.E-324 до 1.E308 для положительных значений.)

Преобразует выражение (любое допустимое выражение или число) к типу String:

· Строки переменной длины, которые могут содержать до приблизительно 2 миллиардов (2^31) символов.

· Строки постоянной длины, которые могут содержать от 1 до приблизительно 64K (2^16) символов.

Преобразование переменных в текст

Каждая переменная в Visual Basic может быть преобразована в текст с помощью специальной функции CStr (сокращение от Convert to String). Эта функция, как следует из ее названия, возвращает данные, представленные в переменной, в виде данных типа String (т. е. преобразует любое число в набор символов). В следующей процедуре демонстрируется простой пример преобразования данных типа Integer в текст.

Помимо преобразования переменных типа Integer в текст, функция CStr может использоваться для преобразования любого числового типа данных, например, Double или Long. Также она может использоваться для преобразования в текст данных типа Date и типа Boolean.

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

Иногда результат арифметической операции не может быть представлен в виде Integer. Помимо функции преобразования чисел в текст, в Visual Basic также предусмотрены функции для преобразования переменных из одного числового типа данных в другой. Например, можно использовать функцию CDbl (Convert to Double) в арифметической операции для возврата дробных чисел при работе с переменными типа Integer. В следующей процедуре показано использование функции CDbl при делении двух целых чисел.

Классификация

Статическая и динамическая типизация переменных

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

Простые и сложные переменные

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

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

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

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

Соглашения об именовании переменных

См. также


Wikimedia Foundation . 2010 .

Смотреть что такое "Переменная (программирование)" в других словарях:

    У этого термина существуют и другие значения, см. Динамическая переменная. Динамическая переменная переменная в программе, место в оперативной памяти под которую выделяется во время выполнения программы. По сути, она является даже не… … Википедия

    - (англ. environment variable) текстовая переменная операционной системы, хранящая какую либо информацию например, данные о настройках системы. Содержание 1 Переменные среды UNIX 2 Переменные среды Windows … Википедия

    Переменная атрибут физической или абстрактной системы, который может изменять своё значение. Значение может меняться в зависимости от контекста, в котором рассматривается система, или в случае уточнения, о какой конкретно системе идёт речь … Википедия

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

    Раздел программирования, связанный с изучением и разработкой методов и средств для: а) адекватного описания в программах естественного параллелизма моделируемых в ЭВМ и управляемых ЭВМ систем и процессов, б) распараллеливания обработки информации … Математическая энциклопедия

    В программировании глобальной переменной называют переменную, областью видимости которой является вся программа (кроме затенённых (англ.) областей). Механизмы взаимодействия с глобальными переменными называют global state или global… … Википедия

    Динамическая переменная термин. Динамическая переменная (программирование) Динамическая переменная (физика) … Википедия

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

    У этого термина существуют и другие значения, см. Параметр (значения). Параметр в программировании принятый функцией аргумент. Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр в каком качестве… … Википедия

    У этого термина существуют и другие значения, см. SSI. SSI (Server Side Includes включения на стороне сервера) несложный язык для динамической «сборки» веб страниц на сервере из отдельных составных частей и выдачи клиенту полученного HTML… … Википедия

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

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

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

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

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

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

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

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

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

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

Независимая переменная

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

В качестве независимых переменных в психологическом эксперименте могут выступать:

1) характеристики заданий;

2) особенности ситуации (внешние условия);

3) управляемые особенности (состояния) испытуемого.

Последние часто называют «переменными организма».

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

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

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

Что может варьировать экспериментатор?

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

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

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

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

Зависимая переменная

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

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

Приведем примеры этих параметров.

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

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

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

4.Темп, или частота действий. Важнейшая характеристика, особенно при исследовании простейших форм поведения.

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

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

Существует еще одно важное свойство зависимой переменной, а именно - сензитивностъ (чувствительность) зависимой переменной к изменениям независимой. Суть в том, что манипуляция независимой переменной влияет на изменение зависимой. Если же мы манипулируем независимой переменной, а зависимая не изменяется, то зависимая переменная несензитивна по отношению к независимой.

Однофакторный план. Гипотеза. Переменные. Проверка результатов эксперимента на соответствие гипотезе

Один фактор - два уровня

Как показано на рис. 1, изображающем дерево принятия решений, есть четыре вида плана с одной независимой переменной, которая принимает два значения (т. е. для которой имеется два уровня). К каждому из этих видов приводит после­довательность решений, принятых в отношении независимой переменной. Во-пер­вых, эта переменная может быть внутрисубъектной или межсубъектной. Если ее изучают как межсубъектную, она может быть управляемой или субъектной. При управляемой независимой переменной план будет называться планом с независи­мыми группами, если для создания эквивалентных групп используется случайное распределение, и планом с уравненными группами, если для этого используется уравнивание, а затем случайное распределение. Чтобы принять решение об использовании уравнивания, необходимо учитывать размер вы­борки и особенно внимательно относиться к внешним переменным, коррелиру­ющим с зависимой переменной. Если изучается субъектная переменная, группы формируются из разных категорий людей (например, женщины/мужчины, интро­верты/экстраверты, либералы/консерваторы). Экспериментальный план при этом иногда называют « expostfacto », так как группы формируются после установления наличия у испытуемых определенных характеристик. Такой план также называют планом со «стихийно возникшими группами», или планом с неэквивалентными группами (я буду использовать именно этот термин). Поскольку при таком плане группы строятся из разных типов людей, исследователи нередко пытаются по воз­можности снизить неэквивалентность, уравнивая группы по различным факторам. Например, в исследовании с неэквивалентными группами, в котором сравнивают­ся женщины и мужчины, можно сделать так, чтобы члены обеих групп были одно­го возраста и принадлежали к одному социоэкономическому классу.

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

Рис. 1. Дерево решений - однофакторный план

Таблица.1

Особенности четырех однофакторных планов

Вид плана Минимальное количество значений, принимаемых независимой переменной Межсубъектная или внутри- субъектная независимая переменная Вид независимой переменной Способ создания эквивалентных групп
С независимыми группами 2 Межсубъектная Управляемая Случайное распределение
С уравненными группами 2 Межсубъектная Управляемая Уравнивание
С неэквивалент- ными группами 2 Межсубъектная Субъектная Уравнивание мо- жет снизить неэквивалентность
С повторяемыми измерениями 2 Внутри- субъектная Управляемая Отсутствует

Межсубъектные однофакторные планы

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

Пример 6. Независимые группы

Примером эксперимента, проведенного по однофакторному плану с независимы­ми группами, является хорошо известное исследование Блэкмора и Купера (Blacke-more&Cooper, 1970). Ученые заинтересовались вопросом влияния опыта на развитие зрительной системы. Двухнедельных котят случайным образом распределили по двум значениям независимой переменной, которую можно обозначить как «зрительное окружение». Котят растили в условиях с преобладанием либо верти­кальных либо горизонтальных полос. Я думаю, вы понимаете, почему исследова­ние должно было быть межсубъектным, а не внутрисубъектным - было бы бесмысленно растить котят в «вертикальном» окружении, а затем в «горизонтальном». В подобных исследованиях испытуемые, принявшие участие в эксперименте, одним значением независимой переменной, уже по сути «использованы» и полученный опыт не дает им возможности «начать сначала» с другим условием. <…>

В конце эксперимента Блэкмор и Купер исследовали поведение животных и измерили у них активность нейронов зрительной зоны коры головного мозга. В целом коты быстро оправились от депривации. «Через 10 часов пребывания в нормальных зрительных условиях они... смогли с легкостью прыгать со стула на пол» (Blackemore&Cooper, 1970, p. 477). Однако коты, выросшие в «вертикаль­ном» окружении, не очень хорошо воспринимали явления, происходящие в гори­зонтальной плоскости, а вертикальные стимулы вызывали проблемы у животных, привыкших к «горизонтальным» условиям:

Разница стала особенно заметна, когда двух котят, из которых один имел «горизонтальный», а второй - «вертикальный» опыт, одновременно исследовали с помощью длинной белой или черной рейки. Если рейку держали вертикально и трясли из сто­роны в сторону, один из котят подбегал и начинал играть с ней. Если рейку держали горизонтально, это привлекало другого котенка, а первый оставался безразличным. Blackmore&Cooper, 1970, p. 478

Очевидно, что опыт первых месяцев жизни сильно влияет на развитие мозга.

Пример 7. Уравненные группы

В старых фильмах иногда показывают, как героя держат взаперти, пытают и лиша­ют сна на 2 или 3 дня, чтобы получить от него определенные сведения. Может ли депривация сна повлиять на ответы, полученные от человека в ходе допроса? Такой эмпирический вопрос поставил перед собой Блэгров (Blagrove, 1996) при проведе­нии интересного исследования с уравненными группами. Выражаясь более точно, он хотел узнать, как подействуют на людей, лишенных сна, вводящие в заблуждение вопросы. Исследователь набрал студентов колледжа для проведения трех различных экспериментов, в каждом из которых должны были участвовать по две группы - одни участники подвергались депривации сна, а другие - нет. Лишенные сна студенты оставались в лаборатории и бодрствовали по 21 часу подряд в ходе первых двух экспериментов и 43 часа в третьем. Постоянное наблюдение «20 смен ассистен­тов» (р. 50) гарантировало, что испытуемые не спят. Студенты, которых не подвер­гали депривации, могли спать дома. Переменной уравнивания была «обычная про­должительность сна, сообщаемая испытуемыми» (р. 50). Блэгров хотел уравнять обычную продолжительность сна, чтобы иметь возможность «контролировать у групп с одинаковой продолжительностью сна различия личностных и связанных с продолжительностью сна характеристик» (р. 50). Средняя продолжительность сна составила 8,4 и 8,5 в первом исследовании, 8,3 и 8,1 во втором и 8,4 и 8,1 в третьем. Все участники исследования выполнили стандартизованный тест на внуша­емость: они прослушали рассказ, а затем ответили на наводящие вопросы (т. е. та­кие вопросы, на которые нельзя ответить прямо, используя информацию из рас­сказа). Ответив на вопросы, они получили негативную оценку выполнения зада­ния, после чего их попросили еще раз ответить на те же вопросы, чтобы увидеть, изменят ли они какие-либо из ответов. В целом, на лишенных сна испытуемых во­просы действовали сильнее и они чаще меняли свои ответы. Особенно ярко это про­явилось в третьем исследовании, в котором депривация сна продолжалась 43 часа. Процедура уравнивания помогла создать группы, сходные по продолжительности сна, что позволило объяснить различия между группами именно депривацией.

Пример 8. Неэквивалентные группы

Вероятно, под влиянием мегалонгитюдного исследования Термана по изучению ода­ренных детей (см. вставку 6.1), Кнеппер с соавторами (Knepper, Obrzut&Copeland, 1983) провели заслуживающее внимания исследование, в котором попытались про­лить свет на личностные особенности одаренных детей. Исследователи поставили перед собой вопрос, успешнее ли одаренные дети помимо познавательных, задач решают социальные и эмоциональные проблемы в сравнении с обычными детьми. Их эксперимент отлично иллюстрирует план с неэквивалентными группами. Не­зависимой субъективной переменной была степень одаренности. Сравнивались два ее значения: одаренный (операционально определенное как IQ = 130 и выше) и сред­ний (IQ между 90 и 110). Среднее арифметическое значение IQ составило 136,9 и 102,9 соответственно. Никакой особой процедуры уравнивания использовано не было, но возраст контролировался - в исследовании принимали участие только шестиклассники. Использовался тест Means - EndsProblemSolvingTest , оценива­ющий качество решений межличностных (социальных) и внутриличностных (эмо­циональных) проблем. Одаренные дети действительно показали более высокие результаты, чем обычные, - это открытие совпадает с выводом Термана о том, что одаренные дети не просто «умные», а имеют также и социальные навыки.

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