Переменная (программирование). Понятие переменной

Переменная (программирование). Понятие переменной

11.05.2019

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

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

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

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

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

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

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

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

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

См. также


Wikimedia Foundation . 2010 .

  • Динамическая типизация
  • Строгая типизация

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

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

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

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

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

    ПРОГРАММИРОВАНИЕ ПАРАЛЛЕЛЬНОЕ - раздел программирования, связанный с изучением и разработкой методов и средств для: а) адекватного описания в программах естественного параллелизма моделируемых в ЭВМ и управляемых ЭВМ систем и процессов, б) распараллеливания обработки информации … Математическая энциклопедия

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

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

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

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

    SSI (программирование) - У этого термина существуют и другие значения, см. 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 расска­зывалось о том, что вывод о наличии причинно-следственной связи нельзя сделать, если используются субъектные переменные. Поэтому неверно говорить, что ода­ренность каким-либо образом вызывает увеличение способности к решению соци­альных и эмоциональных проблем. Можно лишь сказать, что у одаренных и неода­ренных детей способности к решению подобных проблем различаются.

Данные, находящиеся в переменной (то есть по данному адресу памяти), называются значением этой переменной.

Энциклопедичный YouTube

    1 / 3

    ✪ Основы программирования. Переменные. Урок 4

    ✪ 02. Переменная

    ✪ Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37

    Субтитры

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

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

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

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

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

Запись (элементы могут иметь разный тип).

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

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

Понятие «Переменная», «Поле» и «Константа»

Понятие «Переменная»

Синтаксис объявления переменных в С# выглядит следующим образом:

<тип данных> <имя идентификатора>

Например:

Объявить можно переменную любого действительного типа . Важно подчеркнуть, что возможности переменной определяются её типом. Например, переменную типа bool нельзя использовать для хранения числовых значений с плавающей точкой. Кроме того, тип переменной нельзя изменять в течение срока её существования. В частности, переменную типа int нельзя преобразовать в переменную типа char .

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

Инициализация переменной

Задать значение переменной можно, в частности, с помощью оператора присваивания . Кроме того, задать начальное значение переменной можно при её объявлении. Для этого после имени переменной указывается знак равенства «=» и присваиваемое значение. Если две или более переменные одного и того же типа объявляются списком, разделяемым запятыми, то этим переменным можно задать, например, начальное значение. Ниже приведена общая форма инициализации переменной:

int i = 10; // Задаём целочисленной переменной i значение 10

char symbol = "Z"; // Инициализируем переменную symbol буквенным значением Z

float f = 15.7F; // Переменная f инициализируется числовым значением 15.7

int x = 5, y = 10, z = 12; // Инициализируем несколько переменных одного типа

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

В С# используются два метода для обеспечения инициализации переменных перед пользованием:

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

Например, в С# поступить следующим образом нельзя:

public static int Main()

Console.WriteLine(d); // Так нельзя!

// Необходимо инициализировать d перед использованием

Динамическая инициализация

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

int i1 = 3, i2 = 4;

// Инициализируем динамически переменную result

double result = Math.Sqrt(i1*i1 + i2*i2);

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

Неявно типизированные переменные

Как пояснялось выше, все переменные в С# должны быть объявлены. Как правило, при объявлении переменной сначала указывается тип, например int или bool , а затем имя переменной. Но начиная с версии С# 3.0, компилятору предоставляется возможность самому определить тип локальной переменной, исходя из значения, которым она инициализируется. Такая переменная называется неявно типизированной .

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

var i = 12; // Переменная i инициализируется целочисленным литералом

var d = 12.3; // Переменная d инициализируется литералом с плавающей точкой,

// имеющему тип double

var f = 0.34F; // Переменная f теперь имеет тип float

Единственное отличие неявно типизированной переменной от обычной, явно типизированной переменной, - в способе определения её типа. Как только этот тип будет определён, он закрепляется за переменной до конца ее существования.

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

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

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace LC_Console

static void Main(string args)

var name = "John A.";

var isProgrammer = true;

// Определяем тип переменных

Type nameType = name.GetType();

Type ageType = age.GetType();

Type isProgrammerType = isProgrammer.GetType();

// Выводим в консоль результаты

Console.WriteLine("Тип name: {0}", nameType);

Console.WriteLine("Тип age: {0}", ageType);

Console.WriteLine("Тип isProgrammer: {0}", isProgrammerType);

Console.WriteLine("Для продолжения нажмите любую клавишу. . . ");

Console.ReadKey();

/* Выведет:

* Тип name: System.String

* Тип age: System.Int32

* Тип isProgrammer: System.Boolean

* Для продолжения нажмите любую клавишу. . .

Понятие «Поле»

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

Класс или структура могут иметь поля экземпляра или статические поля , либо поля обоих типов. Поля экземпляра определяются экземпляром типа. Если имеется класс T и поле экземпляра F , можно создать два объекта типа T и изменить значение поля F в каждом объекте, не изменяя значение в другом объекте. В противоположность этому, статическое поле относится к самому классу, и является общим для всех экземпляров этого класса. Изменения, выполненные из экземпляра А , будут немедленно видны экземплярам В и С , если они обращаются к полю.

Как правило, используются поля только для переменных, имеющих модификаторы доступа : private или protected . Данные, которые класс представляют клиентскому коду, должны обеспечиваться методами , свойствами и индексаторами . Используя эти конструкции для косвенного доступа к внутренним полям, можно защититься от недопустимых входных значений. Закрытое поле, которое хранит данные, представленные открытым свойством, называется резервным хранилищем или резервным полем .

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

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

public class CalendarEntry

// private поле

private DateTime date;

public string day;

// public свойство, безопасно предоставляет переменную даты

public DateTime Date

if (value.Year > 1900 && value.Year <= DateTime.Today.Year)

// public метод, также безопасно предоставляет переменную даты

// Вызов: birthday.SetDate("2012, 12, 21");

public void SetDate(string dateString)

// Устанавливаем некоторые разумные границы вероятной даты рождения

if (dt.Year > 1900 && dt.Year <= DateTime.Today.Year)

throw new ArgumentOutOfRangeException();

public TimeSpan GetTimeSpan(string dateString)

DateTime dt = Convert.ToDateTime(dateString);

if (dt != null && dt.Ticks < date.Ticks)

return date - dt;

throw new ArgumentOutOfRangeException();

Для доступа к члену объекта нужно добавить точку после имени объекта и указать имя поля: objectname.fieldname . Пример:

CalendarEntry birthday = new CalendarEntry();

birthday.day = "Пятница";

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

public class CalendarDateWithInitialization

public string day = "Понедельник";

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

Поля могут быть отмечены модификаторами public , private , protected , internal или protected internal . Эти модификаторы доступа определяют порядок доступа к полю для пользователей класса.

static . При этом поле становится доступным для вызова в любое время, даже экземпляр класса отсутствует.

Также при необходимости поле может быть объявлено с модификатором readonly . Полю с этим модификатором (то есть полю, доступному только для чтения) значения могут быть присвоены только при инициализации или в конструкторе. Поле с модификаторами staticreadonly (статическое, доступное только для чтения) очень похоже на константу , за исключением того, что компилятор C# не имеет доступа к значению такого поля при компиляции: доступ возможен только во время выполнения.

Понятие «Константа»

Константы представляют собой неизменные значения, известные во время компиляции и неизменяемые на протяжении времени существования программы. Константы объявляются с модификатором const . Только встроенные типы C# (за исключением System.Object ) могут быть объявлены как const . Определяемые пользователем типы, включая классы, структуры и массивы, не могут быть const . Для создания класса, структуры или массива, которые инициализируются один раз во время выполнения (например, в конструкторе) и после этого не могут быть изменены, используется модификатор readonly .

Язык C# не поддерживает методы, свойства и события с ключевым словом const .

Тип перечисления позволяет определять именованные константы для целочисленных встроенных типов (например, int , uint , long и т. д.).

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

public const int months = 12;

В этом примере константа months всегда имеет значение 12, и её значение не может быть изменено даже самим классом. Когда компилятор встречает идентификатор константы в исходном коде C# (например, months ), он подставляет литеральное значение непосредственно в его создающий код IL (Intermediate Language ). Поскольку адрес переменной, связанный с константой во время выполнения, отсутствует, поля const не могут быть переданы по ссылке и отображены как значение в выражении.

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

Несколько констант одного типа можно объявить одновременно, например:

const int months = 12, weeks = 52, days = 365;

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

const int months = 12;

const int weeks = 52;

const int days = 365;

const double daysPerWeek = (double)days / (double)weeks;

const double daysPerMonth = (double)days / (double)months;

Константы могут быть отмечены модификаторами public , private , protected , internal или protected internal . Эти модификаторы доступа определяют порядок доступа к константе для пользователей класса.

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

int birthstones = Calendar.months;

Цели урока:

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

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

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

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

ХОД УРОКА

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

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

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

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

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

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

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

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

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

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

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

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

Например:

Задание 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:

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

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

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



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows