Asp использование переменных и констант


Содержание

Область видимости переменных, константы

C# — Руководство по C# — Область видимости переменных, константы

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

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

Поле, также известное как переменная-член класса, находится в области видимости до тех пор, пока в этой области находится содержащий поле класс.

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

Локальная переменная, объявленная в операторах цикла for, while или подобных им, видима в пределах тела цикла.

Конфликты областей видимости локальных переменных

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

Рассмотрим следующий пример кода:

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

Вот другой пример:

Если вы попытаетесь скомпилировать это, то получите следующее сообщение об ошибке:

ScopeTest.cs (12,15) : error CS0136: A local variable named ‘3’ cannot be declared in this scope because it would give a different meaning to ‘j’, which is already used in a ‘parent or current’ scope to denote something else

Дело в том, что переменная j, которая определена перед началом цикла for, внутри цикла все еще находится в области видимости и не может из нее выйти до завершения метода Main(). Хотя вторая переменная j (недопустимая) объявлена в контексте цикла, этот контекст вложен в контекст метода Main(). Компилятор не может различить эти две переменных, поэтому не допустит объявления второй из них.

Конфликты областей видимости полей и локальных переменных

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

Этот код компилируется, несмотря на то, что здесь в контексте метода Main() присутствуют две переменных с именем j: переменная j, определенная на уровне класса и существующая до тех пор, пока не будет уничтожен класс (когда завершится метод Main(), а вместе с ним и программа), и переменная j, определенная внутри Main(). В данном случае новая переменная с именем j, объявленная в методе Main(), скрывает переменную уровня класса с тем же именем. Поэтому когда вы запустите этот код, на дисплее будет отображено число 30.

Константы

Как следует из названия, константа — это переменная, значение которой не меняется за время ее существования. Предваряя переменную ключевым словом const при ее объявлении и инициализации, вы объявляете ее как константу:

Ниже перечислены основные характеристики констант:

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

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

Константы всегда неявно статические. Однако вы не должны (и фактически не можете) включать модификатор static в объявление константы.

Использование констант в программах обеспечивает, по крайней мере, три преимущества:

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

Константы облегчают модификацию программ. Например, предположим, что в программе C# имеется константа SalesTax (налог с продаж), которой присвоено значение 6 процентов. Если налог с продаж когда-нибудь изменится, вы можете модифицировать все вычисления налога, просто присвоив новое значение этой константе, и не понадобится просматривать код в поисках значений и изменять каждое из них, надеясь, что оно нигде не будет пропущено.

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

Asp использование переменных и констант

Константа, переменная — это основополагающие понятия в любом языке программирования. Дадим определения этим понятиям.

Константа — это величина, которая при выполнении программы остаётся неизменной.

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

Описание и инициализация переменных

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

int k; // это переменная целого типа int

double x; // это переменная вещественного типа удвоенной точности

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

После описания переменной её можно использовать, но возникает вопрос: а какое значение имеет переменная сразу же после её описания? Ответ таков: в программе на языке C# значение переменной после описания не определено. Такая переменная может использоваться в левой части оператора присваивания, но её нельзя использовать в выражении или в правой части оператора присваивания. Например:

y=z+1; // а так нельзя! Переменная z не определена

Для последнего оператора компилятор языка C# выдаст сообщение об ошибке. Этим свойством ( нельзя использовать переменную, которая не получила ни какого значения ) язык C# выгодно отличается от своих предшественников — языков С и С++.

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

double x=3, y=4, z=5;

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

Задание и использование констант



Выше было дано определение констант. Теперь рассмотрим работу с константами более подробно.

Все константы вне зависимости от типа данных можно подразделить на две категории: именованные константы и константы, которые не имеют собственного имени. Например:

25 — константа целого типа;

3.14 — вещественная константа;

‘A’ — символьная константа.

Все три приведённые здесь константы не имеют имени, они заданы своим внешним представлением и используются в программе непосредственно, например так:

int k=25; // переменная k инициализирована константой — целым числом 25.

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

В языке C# определить именованную константу очень просто Для этого используют ключевое слово const , например:

const double PI=3.14; // здесь PI — константа

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

Имена переменных и констант в Basic (Visual Basic) должны удовлетворять следующим требованиям:

— начинаться с буквы;

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

— содержать не более 255 символов.

Обратите внимание! Имя не может содержать пробел “ “, точку “.”, запятую “,”, восклицательный знак ! или символы @, &, $, #. Не следует использовать имена, совпадающие с ключевыми (зарезервированными) словами языка.

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

Язык Basic допускает следующие типы переменных:

Byte –короткое целое без знака,

Long – длинное целое,

Single – действительные числа обычной точности,

Double – действительные числа удвоенной точности,

Boolean – логический тип, принимающий два значения True (правда или ДА) и False (ложь или нет),

String – строка переменной длины.

Переменные типов Byte, Integer, Long, Single, Double принимают числовые значения. При объявлении переменных этих типов они получают значения 0.

При объявлении переменной типа Boolean она получает значение False.

При объявлении переменной типа String она получает значение пустой строки » «.

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

В практике программирования отсутствие объявления переменных является источником ошибок и этого следует избегать. Для этого в Basic и Visual Basic необходимо переменные определять явно. Это можно выполнить, поместив в первой строке программного кода инструкцию OptionExplicit. Эта инструкция заставляет транслятор языка следить за объявлениями всех переменных. Если программа содержит инструкцию Option Explicit, то при попытке использования неописанного или неверно введенного имени переменной возникает ошибка во время трансляции.

Размеры, занимаемые ячейками памяти и диапазон значений переменных в этих ячейках для разных типов данных представлены в таблице 4.

Тип данных Размер ячейки в байтах Диапазон значений
Byte (байт) От 0 до 255
Integer (целый) От -32 768 до 32 767
Long (длинный целый) От -2 147 483 648 до 2 147 483 647
Single (с плавающей точкой обычной точности) Абсолютное значение находится примерно в диапазоне от 1,4*10 -45 до 3,4*10 38 Точность 6 десятичных разрядов
Double(с плавающей точкой двойной точности) Абсолютное значение находится примерно в диапазоне от 4,9*10 -324 до 1,8*10 308 Точность 14 десятичных разрядов
String (строка переменной длины) 10 байт + длина строки Длина строки от 0 до приблизительно 2 миллиардов символов (для DOS длина 65535)
Boolean (логический) True или False
Variant (универсальный тип) 16 байт+ длина строки Дата/время; числовые значения с тем же диапазоном, что и для Double; строки с тем же диапазоном, что и для String

Универсальный тип данных Variant — это хамелеон. Он устанавливает тип данных в зависимости от содержимого. Если в такой переменной содержится число, то переменная типа Variant принимает соответствующий тип данных:

Если ее содержимое — число 5, то она принимает тип Integer;

Если содержимое 1.2 — то тип Double;

Если текст (например: “Знаменатель равен нулю”), то тип String.

Переменная типа Variant изменяет свой тип во время выполнения программы.

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

Тип переменной устанавливается либо в результате явного объявления, либо транслятор языка устанавливает тип Variant при первом использовании этой переменной.

Синтаксис объявления переменной:

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

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

В подобных определениях синтаксиса прямоугольные скобки […] означают, что конструкция, находящаяся внутри этих скобок, не обязательна. Символ (/) означает, что должно быть выбрано одно из слов, между которыми он поставлен. Сами же символы ([), (]), (/) в текст объявления не включаются.

Зарезервированное слово Dim (размерность) при объявлении переменных применяется чаще всего, например:


Dim YMAX As Single, KA As Integer

Dim Stroka As String

Здесь явно объявлены три переменные: YMAX типа Single, KA типа Integer и Stroka типа String. Имена переменных на кириллице можно определять только в Visual Basic.

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

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

Синтаксис объявления константы

[Public/Private] Const ИмяКонстанты [As Тип] = Значение

Приведенное определение синтаксиса означает, что объявление константы содержит обязательное слово Const (константа). Перед Const может стоять Private (локальная) или Public (общая), то есть одно из слов, задающих область действия константы. Затем должно следовать имя константы. После имени может стоять слово As и наименование типа. Затем должен следовать знак равенства и значение константы.

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

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

Public Const Age As Integer = 54

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

В следующем примере описываются локальные константы Pi и G как Single.

Const Pi As Single = 3.14159, G As Single = 9.81

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

Илон Маск рекомендует:  Работа с seo-сервисом - RDS

vCircle = Pi * vRadius ^ 2

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

Элементарные функции

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

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

Назначение функции Обращение к функции
Абсолютное значение х Abs(x)
arctg x Atn(x)
cos x Cos(x)
e x Exp(x)
Целая часть x Int(x)
Целая часть x (округление) Fix(x)
ln x Log(x)
Случайное число Rnd
Знак числа x Sgn(x)
sin x Sin(x)
Квадратный корень от х Sqr(x)
tg x Tan(x)

Выражение

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

Существует несколько видов выражений. Мы рассмотрим арифметические и логические выражения.

Арифметическое выражение при записи использует символы арифметических операций. Результат вычисления – целое или действительное число.

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

Извлечение корня любой степени, кроме квадратного, заменяется возведением в дробную степень. Например: выражение на Basic будет записано X^(1./3.).

Пример.

Математическая запись Запись на Basic
Y=0.5(x-1) 2 + Y=0.5*(X-1)^2+X^(1./3.)
Z=X 5 +e 0,1X Z=X^5+EXP(0.1*X)
Z=cos 2 (x-1)+0,1sin(y+0,5) 2 Z=COS(X-1)^2+0.1*SIN((Y+0.5)^2)

Логическое выражение может принимать одно из двух значений — TRUE (истина) или FALSE (ложь). Простейшим логическим выражением является выражение, состоящее из двух арифметических, разделённых символом операций отношения.

Операция сравнения Basic
Больше >
Больше или равно >=
Меньше

Логические операции

Для формирования сложных логических выражений (для использования в операторе IF) помимо операций отношения можно использовать логические функции. Их всего три. Это логическое умножение AND (операция И), логическое сложение OR (операция ИЛИ) и логическое отрицание NOT . Аргументами этих функций являются логические выражения.

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

А AND В

А OR В

NOT А

Результаты операций приведены в таблице, расположенной ниже.

Логические операции Значения операндов Значения логической операции
A B
Умножение А AND В TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE
Сложение А OR В TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE FALSE
Отрицание NOT А TRUE FALSE FALSE TRUE

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

Пример: Использование операций отношений

Математическая запись Запись на Basic
X = Y X = Y
B 2 -4AC >= 0 B^2-4*A*C >= 0
3(A-B) 2 +1 3*(A-B) = Y AND Y

Не нашли то, что искали? Воспользуйтесь поиском:


Лучшие изречения: Для студента самое главное не сдать экзамен, а вовремя вспомнить про него. 10034 — | 7499 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Константы и переменные в языке Си

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

Константы бывают числовые, символьные и строковые. Числовые константы делятся на целочисленные и вещественные.

Целочисленные константы

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

Десятичные Последовательность цифр ( 0 — 9 ), которая начинаются с цифры, отличной от нуля.
Пример: 1, -29, 385. Исключение — число 0.
Восьмеричные Последовательность цифр ( 0 — 7 ), которая всегда начинается с 0 .
Пример: 00, 071, -052, -03.
Шестнадцатеричные Последовательность шестнадцатеричных цифр ( 0 — 9 и A — F ), которой предшествует присутствует 0x или 0X .
Пример: 0x0, 0x1, -0x2AF, 0x17.

Двоичная система представления данных непосредственно в языке Си не поддерживается. Однако можно воспользоваться файлом binary.h, в котором определены двоичные константы в пределах байта.

Пример использования двоичной системы счисления в языке Си:

В зависимости от значения целой константы компилятор присваивает ей тот или иной тип ( char , int , long int ).

С помощью суффикса U (или u ) можно представить целую константу в виде беззнакового целого.

Например, Константе 200U выделяется 1 байт, и старший бит используется для представления одного из разрядов кода числа и диапазон значений становится от 0 до 255 . Суффикс L (или l ) позволяет выделить целой константе 8 байт ( long int ).

Совместное использование в любом порядке суффиксов U (или u ) и L (или l ) позволяет приписать целой константе тип unsigned long int , и она займет в памяти 64 разряда, причем знаковый разряд будет использоваться для представления разряда кода (а не знака).

Вещественные константы

Константа с плавающей точкой (вещественная константа) всегда представляется числом с плавающей точкой двойной точности, т. е. как имеющая тип double , и состоит из следующих частей:

  • целой части — последовательности цифр;
  • точки — разделителя целой и дробной части;
  • дробной части — последовательности цифр;
  • символа экспоненты е или E ;
  • экспоненты в виде целой константы (может быть со знаком).

Любая часть (но не обе сразу) из нижеследующих пар может быть опущена:

  • целая или дробная часть;
  • точка или символ е ( Е ) и экспонента в виде целой константы.

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

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

  • F (или f ) — float для простых вещественных констант,
  • L (или l ) — long double для вещественных констант двойной расширенной точности.
  • 3.14159F — константа типа float , занимающая 4 байта;
  • 3.14L — константа типа long double , занимающая 10 байт.

Символьные константы

Символьная константа — это один символ, например: ‘z’ . В качестве символьных констант также могут использоваться управляющие коды, не имеющие графического представления. При этом код управляющего символа начинается с символа ‘\’ (обратный слеш).

Код Обозначение Описание
0x00 ‘\0’ Нуль-символ, NULL
0x07 ‘\a’ Звуковой сигнал.
0x08 ‘\b’ Возврат на 1 шаг (Backspace)
0x09 ‘\t’ Горизонтальная табуляция (Tab)
0x0A ‘\n’ Перевод строки (Enter)
0x0B ‘\v’ Вертикальная табуляция (в консоли аналогична переводу строки)
0x0C ‘\f’ Смена страницы
0x0D ‘\r’ Возврат каретки

Как правило, нажатие клавиши Enter генерирует сразу два управляющих символа — перевод строки ( 0x0A ) и возврат каретки ( 0x0D ).

Все символьные константы имеют тип char и занимают в памяти 1 байт. Значением символьной константы является числовое значение её внутреннего кода.

Строковые константы

Строковая константа — это последовательность символов, заключенная в кавычки, например:

«Это строковая константа»

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

В конце каждой строковой константы компилятор помещает ‘\0’ (нуль-символ), чтобы программе было возможно определить конец строки. Такое представление означает, что размер строковой константы не ограничен каким-либо пределом, но для определения длины строковой константы её нужно полностью просмотреть.

Поскольку строковая константа состоит из символов, то она имеет тип char . Количество ячеек памяти, необходимое для хранения строковой константы на 1 больше количества символов в ней (1 байт используется для хранения нуль-символа).

Символьная константа ‘x’ и строка из одного символа «x» — не одно и то же. Символьная константа — это символ, используемый для числового представления буквы x, а строковая константа «x» содержит символ ‘x’ и нуль-символ ‘\0’ и занимает в памяти 2 байта. Если в программе строковые константы записаны одна за другой через разделители, то при выполнении программы они будут размещаться в последовательных ячейках памяти.

Переменные

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

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


Объявление переменных в Си осуществляется в форме

ТипПеременной ИмяПеременной;

Каждую переменную можно снабдить комментарием, поясняющим ее смысл. Например,

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

При объявлении переменной ей может быть присвоено начальное значение в форме
ТипПеременной ИмяПеременной=значение;

Определение переменных. Переменные и константы

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

Константа — это величина, которая при выполнении программы остаётся неизменной.

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

Описание и инициализация переменных

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

Int k; // это переменная целого типа int

Double x; // это переменная вещественного типа удвоенной точности

double a, b, c;

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

double a=3, b=4, c=5;

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

Задание и использование констант

Все константы вне зависимости от типа данных можно подразделить на две категории: именованные константы и константы, которые не имеют собственного имени. Например:

25— константа целого типа;

3.14— вещественная константа;

‘A’— символьная константа.

int k=25; // переменная k инициализирована константой — целым числом 25.

В языке C++ появился ещё один способ — использование константных переменных, то есть переменных, которые нельзя изменять после инициализации. Рассмотрим на том же примере:

const double PI=3.14; // здесь PI — константная переменная

double t;

t=PI * 2;

Логические переменные и примеры их использования в программах.

В С++ существует три логические операции:

2.Логическая операция ИЛИ ||;

3.Логическая операция НЕ ! или логическое отрицание.

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

Таблица 1 — Логические операции С++

Операции Обозначение Условие Краткое описание
И && a == 3 && b > 4 Составное условие истинно, если истинны оба простых условия
ИЛИ || a == 3 || b > 4 Составное условие истинно, если истинно, хотя бы одно из простых условий
НЕ ! !( a == 3) Условие истинно, если a не равно 3

Сейчас следует понять разницу между логической операцией И и логической операцией ИЛИ, чтобы в дальнейшем не путаться. Пришло время познакомиться с типом данных bool –логический тип данных. Данный тип данных может принимать два значения: true (истина) и false (ложь). Проверяемое условие в операторах выбора имеет тип данных bool.

22.Операции присваивания. Особенности выполнения. Условная операция ?:

Для сокращённой записи выражений в языке программирования С++ есть специальные операции, которые называются операциями присваивания. Рассмотрим фрагмент кода, с использованием операции присваивания.

В С++ существует пять операций присваивания, не считая основную операцию присваивания:=.

1.+= операция присваивания-сложения;

2.-= операция присваивания-вычитания;

3.*= операция присваивания-умножения;

4./= операция присваивания-деления;

5.%= операция присваивания-остатка от деления;


Договоримся называть операции присваивания через дефис, чтобы было понятно о какой именно операции идёт речь. В таблице 1 наглядно показаны примеры использования операторов присваивания в языке программирования С++.

Терна́рная усло́вная опера́ция (от лат. ternarius — «тройной») (обычно записывается как ?:) — во многих языках программированияоперация, возвращающая свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом.

Безотносительно к определённому языку программирования тернарную операцию можно определить так:

логическое выражение ? выражение 1 : выражение 2

Алгоритм работы операции следующий:

1.Вычисляется логическое выражение.

2.Если логическое выражение истинно, то вычисляется значение выражения выражение 1, в противном случае — значение выражения выражение 2.

3.Вычисленное значение возвращается.

23.Управляющие конструкции С/С++. Условный оператор if.

Оператор if служит для того, чтобы выполнить какую-либо операцию в том случае, когда условие является верным.Условная конструкция в С++ всегда записывается в круглых скобках после оператора if.

Формат оператора: if оператор-1; [elseоператор-2;] или if оператор-1;

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

Урок №37. const, constexpr и символьные константы

Обновл. 7 Апр 2020 |

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

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

Константы

Возьмём к примеру величину силы тяжести на Земле: 9.8м/с^2. Она вряд ли поменяется в ближайшее время. Использовать константу в этом случае будет наилучшим вариантом, так как мы предотвратим, таким образом, любое (даже случайное) изменение этого значения.

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

Несмотря на то, что C++ позволяет размещать const как перед типом данных, так и после него, хорошей практикой считается размещать const перед типом данных.

Константы должны быть инициализированы при объявлении. Изменить их значения с помощью операции присваивания нельзя:

Объявление константы без её инициализации также вызовет ошибку компиляции:

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

const является наиболее полезным (и наиболее часто используемым) с параметрами функций:

Таким образом, при вызове функции, константа-параметр сообщает и гарантирует нам то, что функция не изменит значение переменной myValue.

Время компиляции и время выполнения

Когда вы находитесь в процессе компиляции программы, то это время компиляции (англ. «compile time»). Компилятор проверяет вашу программу на синтаксические ошибки и, если их нет, конвертирует код в объектные файлы.

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

Спецификатор constexpr

В C++ есть два вида констант:

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

Константы времени компиляции. Их значения определяются во время компиляции программы. Например, переменная со значением силы тяжести на Земле является константой времени компиляции, так как мы её определяем во время написания программы (до начала её выполнения).

В большинстве случаев, не важно какой тип константы вы используете: времени выполнения или времени компиляции. Однако, всё же есть несколько ситуаций, когда C++ может требовать константу времени компиляции вместо времени выполнения (например, при определении длины массива фиксированного размера — мы рассмотрим это несколько позже). Так как есть 2 типа констант, то компилятору нужно постоянно отслеживать, к какому из них относится определённая переменная. Чтобы упростить это задание, в C++11 добавили спецификатор constexpr, который сообщает компилятору, что текущая переменная является константой времени компиляции:

Константы (Руководство по программированию на C#) Constants (C# Programming Guide)

Константы — это постоянные значения, которые известны во время компиляции и не изменяются во время выполнения программы. Constants are immutable values which are known at compile time and do not change for the life of the program. Константы должны объявляться с модификатором const. Constants are declared with the const modifier. Только встроенные типы C# (за исключением System.Object) можно объявлять как const . Only the C# built-in types (excluding System.Object) may be declared as const . Список встроенных типов см. в таблице встроенных типов. For a list of the built-in types, see Built-In Types Table. Пользовательские типы, включая классы, структуры и массивы, не могут объявляться как const . User-defined types, including classes, structs, and arrays, cannot be const . Модификатор readonly позволяет создать класс, структуру или массив, которые инициализируются один раз (например, в конструкторе), и впоследствии изменить их нельзя. Use the readonly modifier to create a class, struct, or array that is initialized one time at runtime (for example in a constructor) and thereafter cannot be changed.

C# не поддерживает методы, свойства или события const . C# does not support const methods, properties, or events.

Тип перечисления позволяет определять именованные константы для целочисленных встроенных типов (например int , uint , long и т. д.). The enum type enables you to define named constants for integral built-in types (for example int , uint , long , and so on). Дополнительные сведения см. в разделе Перечисление. For more information, see enum.

Константы должны инициализироваться сразу после объявления. Constants must be initialized as they are declared. Например: For example:

В этом примере константа months всегда имеет значение 12, и его не может изменить даже сам класс. In this example, the constant months is always 12, and it cannot be changed even by the class itself. На самом деле в случае, если компилятор встречает идентификатор константы в исходном коде C# (например, months ), он подставляет значение литерала непосредственно в создаваемый им промежуточный язык (IL). In fact, when the compiler encounters a constant identifier in C# source code (for example, months ), it substitutes the literal value directly into the intermediate language (IL) code that it produces. Поскольку с константой в среде выполнения не связан адрес ни одной переменной, поля const не могут передаваться по ссылке и отображаться в выражении как левостороннее значение. Because there is no variable address associated with a constant at run time, const fields cannot be passed by reference and cannot appear as an l-value in an expression.

Будьте внимательны, ссылаясь на постоянные значения, определенные в другом коде, например, в DLL. Use caution when you refer to constant values defined in other code such as DLLs. Если в новой версии DLL для константы определяется новое значение, старое значение литерала хранится в вашей программе вплоть до повторной компиляции для новой версии. If a new version of the DLL defines a new value for the constant, your program will still hold the old literal value until it is recompiled against the new version.

Несколько констант одного типа можно объявить одновременно, например: Multiple constants of the same type can be declared at the same time, for example:

Выражение, которое используется для инициализации константы, может ссылаться на другую константу, если не создает циклическую ссылку. The expression that is used to initialize a constant can refer to another constant if it does not create a circular reference. Например: For example:

Константы могут иметь пометку public, private, protected, internal, protected internal или private protected. Constants can be marked as public, private, protected, internal, protected internal or private protected. Эти модификаторы доступа определяют, каким образом пользователи класса смогут получать доступ к константе. These access modifiers define how users of the class can access the constant. Дополнительные сведения см. в разделе Модификаторы доступа. For more information, see Access Modifiers.


Доступ к константам осуществляется так, как если бы они были статическими полями, поскольку значение константы одинаково для всех экземпляров типа. Constants are accessed as if they were static fields because the value of the constant is the same for all instances of the type. Для их объявления используйте ключевое слово static . You do not use the static keyword to declare them. Выражения, которые не относятся к классу, определяющему константу, должны включать имя класса, период и имя константы для доступа к этой константе. Expressions that are not in the class that defines the constant must use the class name, a period, and the name of the constant to access the constant. Например: For example:

Спецификация языка C# C# Language Specification

Дополнительные сведения см. в спецификации языка C#. For more information, see the C# Language Specification. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#. The language specification is the definitive source for C# syntax and usage.

BestProg

Понятие переменной. Объявление переменной. Локальные и глобальные переменные. Выделение памяти для переменных. Константы

Содержание

  • 1. Что называется переменной?
  • 2. Какой общий вид описания переменной в C/C++?
  • 3. В каких местах программы можно объявлять переменные? Как классифицируются переменные в зависимости от места объявления в программе?
  • 4. Что такое локальные переменные? В каких местах программы объявляются локальные переменные?
  • 5. Что означает термин «разрушение переменной»?
  • 6. Что означает термин «формальный параметр»?
  • 7. Что такое глобальные переменные? Какое отличие между глобальными и локальными переменными?
  • 8. Примеры объявления переменных разных типов
  • 9. Как выделяется память для переменных целочисленных типов?
  • 10. Как выделяется память для переменных типов с плавающей запятой?
  • 11. Как выделяется память для переменных символьных (char) типов?
  • 12. Что такое константы в языке программирования C++? Как объявить константу?
  • Связанные темы
1. Что называется переменной?

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

При разработке программы, программист по собственному усмотрению дает имена переменным. Имя переменной есть именем идентификатора. Это имя должно соответствовать синтаксису языка C/C++. Более подробно об именах переменных описывается в теме:

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

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

В языке C/C++ каждая переменная должна иметь собственный тип. Более подробно о типах данных C/C++ описывается в статье:

2. Какой общий вид описания переменной в C/C++?

Общий вид описания переменной:

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

Переменная может иметь до 1024 символов любого имени.

Пример объявления переменных разных типов.

3. В каких местах программы можно объявлять переменные? Как классифицируются переменные в зависимости от места объявления в программе?

Переменные могут быть объявлены:

  • внутри функций;
  • в определении параметров функций;
  • за пределами всех функций.

В зависимости от места объявления в программе, переменные классифицируются следующим образом:

  • локальные переменные (объявляются внутри функций);
  • формальные параметры (есть параметрами функций);
  • глобальные переменные (объявляются за пределами функций).
4. Что такое локальные переменные? В каких местах программы объявляются локальные переменные?

Локальные переменные – это переменные, которые объявлены (описаны) внутри функций. Доступ к таким переменным имеют только операторы, которые используются в теле функции.

Локальные переменные создаются в момент вызова функции. Как только выполнение функции завершается, локальные переменные уничтожаются.


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

5. Что означает термин «разрушение переменной»?

Локальные переменные создаются в момент вызова функции. Как только выполнение функции завершается, локальные переменные разрушаются. Термин «разрушение переменной» означает: разрушение переменной в оперативной памяти после завершения функции, в которой эта переменная была объявлена.

6. Что означает термин «формальный параметр»?

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

Формальные параметры объявляются после имени функции внутри круглых скобок ( ) .

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

В данном примере, в функции GetMax3() есть 3 формальных параметра с именами a , b , c . При вызове функции из другого программного кода ей передаются 3 числа (аргумента), которые копируются в формальные параметры. Число 8 копируется в формальный параметр a . Число 5 копируется в формальный параметр b . Число 11 копируется в формальный параметр c .

7. Что такое глобальные переменные? Какое отличие между глобальными и локальными переменными?

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

Глобальная переменная объявляется за пределами всех функций.

Пример. В данном примере объявлена глобальная переменная max и две функции GetMax2() и GetMax3() .

8. Примеры объявления переменных разных типов
9. Как выделяется память для переменных целочисленных типов?

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

Для переменных целых типов выделяется память соответственно нижеследующим таблицам.

Для 16-разрядной среды.

(аналогичен типу int)

(аналогичен типу int)

(аналогичен типу unsigned int)

(аналогичен типу int)

-2 147 483 648 … 2 147 483 647

(аналогичен типу long int)

Для 32-разрядной среды.

Тип Размер в битах Диапазон значений
int 16 -32768 … 32767
unsigned int 16 0 … 65535
signed int 16
short int 16
unsigned short int 16
signed short int 16
long int 32 -2 147 483 648 … 2 147 483 647
unsigned long int 32 0 … 4 294 967 295
signed long int 32

-2 147 483 648 … 2 147 483 647

(аналогичен типу int)

-2 147 483 648 … 2 147 483 647

(аналогичен типу int)

(аналогичен типу unsigned int)

-2 147 483 648 … 2 147 483 647

(аналогичен типу signed int)

10. Как выделяется память для переменных типов с плавающей запятой?

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

Тип Размер в битах Диапазон значений
int 32 -2 147 483 648 … 2 147 483 647
unsigned int 32 0 … 4 294 967 295
signed int 32
short int 16 -32768 … 32767
unsigned short int 16 0 … 65535
signed short int 16 -32768 … 32767
long int 32
unsigned long int 32
signed long int 32
Тип Размер в битах Диапазон значений
float 32 3.4E-38 … 3.4E+38
double 64 1.7E-308 … 1.7E+308
long double 80 3.4E-4932 … 3.4E+4932


11. Как выделяется память для переменных символьных ( char ) типов?

Для переменных символьного типа независимо от среды (16 или 32 разряда) выделяется память на основе следующей таблицы.

Тип Размер в битах Диапазон значений
char 8 -128 … 127
unsigned char 8 0 … 255
signed char 8 -128 … 127
12. Что такое константы в языке программирования C++? Как объявить константу?

Константа – это есть переменная, которая не может изменять своего значения на протяжении всего времени выполнения программы. Значение константе присваивается при ее объявлении. Для объявления константы используется ключевое слово const.

Общий вид объявления константы

  • тип – тип который получает константа;
  • имя_константы – имя, по которому будет осуществляться использование константного значения.

Примеры объявления констант.

Мир микроконтроллеров

Популярное

  • Устройство и программирование микроконтроллеров AVR для начинающих — 143
  • Трехканальный термостат, терморегулятор, таймер на ATmega8 — 70
  • Двухканальный термостат, терморегулятор на ATmega8 — 66

Переменные и константы в языке С (Си) для микроконтроллеров AVR

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

Переменные

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

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

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

  • можно использовать строчные и прописные буквы, цифры и символ подчёркивания (в С имеет статус буквы);
  • первым символом в имени переменной обязательно должна быть буква;
  • не допускается использование пробелов в имени переменной;
  • длина имени переменной не ограничена;
  • имя переменной не должно совпадать с зарезервированными ключевыми словами языка Си;
  • заглавные и строчные буквы в именах переменных различаются, к примеру, переменные a и A – это разные переменные.

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

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

При объявлении переменной вы обязательно должны указать ее тип. В зависимости от типа переменной компилятор резервирует ей место в памяти. Наиболее часто используемыми типами данных в языке Си для микроконтроллеров AVR являются char (символьный тип) и int (целочисленный тип).

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

Тип char

Символьный тип (char) является самым экономным типом данных в языке С поскольку использует всего один байт (8 бит) в памяти (микроконтроллера). Может быть знаковым (обозначается как «signed char«) и беззнаковым («unsigned char«). Соответственно, в переменной char знакового типа можно хранить значения в диапазоне от -128 до +127, а в переменной беззнакового типа — от 0 до 255.

Фактически, ключевые слова (модификаторы) signed и unsigned в начале объявления типа char интерпретируется как нулевой бит объявляемой переменной. Если unsigned, то все 8 бит интерпретируются как число, поэтому максимальное значение переменной в этом случае составляет 2^8-1=255. Если тип signed, то в этом случае нулевой бит отводится под хранение знака числа (+ (не отображается) или -), соответственно под хранение значения переменной остается всего 7 бит, что соответствует максимальному хранимому значению 127 (128).

Тип int

Переменная целого типа int может быть short (короткой) или long (длинной). При этом модификаторы short и long ставятся после ключевых слов signed или unsigned, поэтому получаем такие типы данных как signed short int, unsigned short int, signed long int, unsigned long int.

Если используется модификатор short, то под хранение переменной целого типа с таким модификатором отводится 2 байта (16 бит). Соответственно, для unsigned short int получаем диапазон хранимых значений от 0 до 65535, а для signed short int — от -32768 до +32767.

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

Переменная типа long int (знаковая (signed) или беззнаковая (unsigned) занимает уже 4 байта (32 бита) в памяти, поэтому диапазоны значений переменных для этих типов будут составлять, соответственно, от -2147483648 до 2147483647 и от 0 до 4294967295.

В языке С существуют еще переменные типа long long int, для хранения которых выделяется 8 байт памяти (64 бита), но вряд ли когда-нибудь в программах для микроконтроллеров у вас возникнет необходимость в использовании столь больших чисел.

Таблица со всеми возможными целыми типами языка С и их параметрами приведена на следующем рисунке.

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

Переменные в языке С объявляют в операторе описания. Оператор описания состоит из спецификации типа и списка имён переменных, разделённых запятой. В конце обязательно ставится точка с запятой.

Объявление переменной имеет следующий формат:

[модификаторы] спецификатор_типа идентификатор [, идентификатор] …

Модификаторы — ключевые слова signed, unsigned, short, long.
Спецификатор типа — ключевое слово char или int, определяющее тип объявляемой переменной.
Идентификатор — имя переменной.


Примеры объявления переменных:
char s;
int x, y, z;
unsigned long long t;

Инициализация значения переменной при объявлении

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

С помощью данной записи мы объявляем переменную a целого типа и сразу же в нее записываем число 100.

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

Константы

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

const long int z = 25;
const x = -50; // подразумевается const int x=-50
const y = 100000; // подразумевается const long int y=100000

Присваивание

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

Примеры:
y = 6 + 8; // сложить значения 6 и 8,
// результат присвоить переменной y (записать в переменную y)

c = b + 5; // прибавить 5 к значению, хранящемуся в переменной b,
// полученный результат присвоить переменной c (записать в переменную b)

d = d + 2; // прибавить 2 к значению, хранящемуся в переменной d,
// полученный результат присвоить переменной d (записать в переменную d)

В правой части значение переменной может быть использовано несколько раз, например:

Арифметические операции

Арифметические операции языка Си представлены в таблице на следующем рисунке.

Примеры:
z = y + 7; // к значению, хранящемуся в переменной y, будет прибавлено число 7,
// полученный результат будет записан в переменную z

k = m * n; // значения переменных m и n будут перемножены,
// результат будет записан в переменную k

t = t — 1; // от значения, хранящегося в переменной t, будет отнято 1
// результат будет записан в переменную t

Дополнительные способы присваивания

Кроме простого оператора присваивания «=», в языке программирования С существует еще несколько комбинированных операторов присваивания: «+=», «-=», «*= m += n; // то же, что и m = m + n; — сложить m и n
// и поместить результат в переменную m

m -= n; // то же, что и m = m — n; — отнять от m значение n
// и поместить результат в переменную m

m *= n; // то же, что и m = m * n; — умножить m на n
// и поместить результат в переменную m

m /= n; // то же, что и m = m / n; — разделить m на n
// и поместить результат в переменную m

m %= n; // то же, что и m = m % n;
// вычислить целочисленный остаток от деления m на n
// и поместить результат в переменную m

Инкремент и декремент

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

Инкремент – операция увеличения значения переменной на 1.

Пример использования:
z++; // значение переменной z будет увеличено на 1

Декремент — операция уменьшения значения переменной на 1.

Пример использования:
z- -; // значение переменной z будет уменьшено на 1

Есть две формы записи этих операций: постфиксная (x++) и префиксная (++x). Если эти операции выполняются совместно с операцией присваивания «=», то первой выполняется префиксная запись.

Допустим, что значение переменной n было равно 7. Тогда в m будет записано значение 7, после чего значение переменной n будет увеличено на 1. Таким образом, в m будет 7, а в n — 8.

Если значение n было равно 3, то сначала будет выполнено уменьшение n до 2, а затем это значение будет присвоено переменной m. Таким образом, n и m будет присвоено значение 2.

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

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

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

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

Для чего нужны переменные? Конечно, можно записывать информацию непосредственно в память компьютера. Можно также читать информацию непосредственно из памяти. Когда-то так все и было. Но представьте, что требуется обработать несколько сотен чисел. Каждое из них нужно записать в какую-то ячейку памяти, а потом ещё не забыть, куда вы записали число 5, а куда – 25. Такая программа была бы очень сложной для понимания, и ошибок в ней было бы допущено немало. Поэтому в языках высокого уровня придумали такую вещь, как переменные.

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

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

В этом примере мы объявили две переменные типа ByteX и Y, две переменные типа Integera и b, и одну переменную типа Char. Если объявляются переменные одного типа, то их можно записывать через запятую в одной строке.

Имена переменных и прочих данных называются идентификаторами. К идентификаторам предъявляются определённые требования. Основные требования к идентификаторам в Паскале:

  1. Идентификатор может содержать латинские буквы и цифры, но должен обязательно начинаться с буквы. В Паскале к буквам также приравнивается символ подчёркивания (_).
  2. Идентификатор не должен совпадать с ключевыми (зарезервированными) словами (список ключевых слов см. в справочном материале среды разработки).
  3. Идентификатор не должен содержать специальные символы. Специальные символы: + — * / = [ ] . , ( ) : ; < >^ @ $ # & %.
  4. Идентификатор не должен содержать пробелов.

Регистр букв в Паскале роли не играет. Например, TYPE, type, Type и tYpe – это одно и то же имя с точки зрения компилятора Паскаля. То есть, объявив переменные X и Y, мы можем затем использовать их в программе как x и y – для компилятора это не имеет значения. Стоит отметить, что в некоторых языках (например, С++) это не так (Y и у в С++ – это не одно и то же).

Переменным можно присваивать значения. Для этого чаще всего используется оператор (операторы мы будем изучать в следующих разделах)

двоеточие, за которым следует знак равно. Например, записать в переменную а число 1 можно так:

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

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

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

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

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

Допустим, что в нашем случае для переменной Х компилятор выделил один байт по адресу 100 (на самом деле адрес будет другим, но в данном случае это не важно). Тогда, если мы напишем:

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

В этой программе мы впервые использовали функцию ReadLn для ввода данных, то есть для получения информации от пользователя. Когда программа доходит до этой функции, то она останавливается и ждёт, пока пользователь введёт данные и нажмёт клавишу ENTER. Функция

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

так как константа Х1 = 100, а константа Х2 = 50.

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

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

Создать свою программу — простой калькулятор. Пользователь вводит два числа, программа их складывает и выдаёт результат.

Илон Маск рекомендует:  Новые варианты повторения фоновой картинки в CSS3
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL