Тип констант в языке ПАСКАЛЬ определяется по их виду: константы целого типа — это целые числа, не содержащие десятичной точки, константы действительного типа — действительные числа, логические константы — логические значения TRUE и FALSE, символьные константы — либо строки длиной в один символ, либо конструкции вида #K или ^K.
Язык ПАСКАЛЬ допускает использовать синонимы для обозначения констант, в этом случае текст программы содержит раздел описания констант, например: <>
7. ПЕРЕМЕННЫЕ.
ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ
Тип переменных определяется пользователем в разделе описания пере- менных:<>
В настоящее время в профессиональном программировании принято записывать имена переменных с использованием так называемой венгерской нотации.
Венгерская нотация — это соглашение о наименованиях переменных и функций. Соглашение широко используется при программировании на языках PASCAL, C и в среде WINDOWS.
Венгерская нотация основывается на следующих принципах:
Язык Си для начинающих / #2 — Переменные и типы данных
- -имена переменных и функций должны содержать префикс, описывающий их тип;
- -имена переменных и функций записываются полными словами или словосочетаниями или их сокращениями, но так, чтобы по имени можно было понять назначение переменной или действие, выполняемое функцией.
Префиксы записываются малыми буквами, первая буква каждого слова — заглавная, префиксы и слова записываются либо слитно, либо через символ _ (подчеркивание).
Для языка PASCAL могут быть рекомендованы следующие префиксы для скалярных переменных и функций:
Префикс Типкоординаты символа или точки на экране
by | Byte |
sh | Shortint |
i | Integer |
w | Word |
l | Longint |
r | Real |
si | Single |
d | Double |
e | Extended |
c | Comp |
ch | Char |
b | Boolean |
p | Pointer |
x,у |
Для величин структурированного типа могут быть использованы следующие префиксы:
a | Array |
s | String |
sz | Stringz |
se | Set |
re | Record |
f | File |
t | Text |
rV, arVector[1..20], sName, iCount
В откомпилированной программе для всех переменных отведено место в памяти, и всем переменным присвоены нулевые значения.
Для задания начальных значений переменным (инициализации переменных) TURBO PASCAL позволяет присваивать начальные значения переменным одновременно с их описанием. Для этого используется конструкция
имя переменной: тип = значение;
которая должна быть размещена в разделе описания констант, например:
#2 Структура программы, переменные, константы, оператор присваивания | Java для начинающих
const rWeight: Real = 0.4;
8. ВЫРАЖЕНИЯ
Выражение состоит из констант, переменных, указателей функций, знаков операций и скобок. Выражение задает правило вычисления некоторого значения.
Порядок вычисления определяется старшинством (приоритетом) содержащихся в нем операций. В языке ПАСКАЛЬ принят следующий приоритет операций:
Выражения входят в состав многих операторов языка ПАСКАЛЬ, а также могут быть аргументами встроенных функций.
9. ОПЕРАТОР ПРИСВАИВАНИЯ
Тип переменной и тип выражения должны совпадать кроме случая, когда выражение относится к целому типу, а переменная — к действительному. При этом происходит преобразование значения выражения к действительному типу.
10. ОПЕРАТОРЫ ВВОДА И ВЫВОДА
Рассмотрим организацию ввода и вывода данных с терминального устройства. Терминальное устройство — это устройство, с которым работает пользователь, обычно это экран (дисплей) и клавиатура.
Для ввода и вывода данных используются стандартные процедуры ввода и вывода Read и Write, оперирующие стандартными последовательными файлами INPUT и OUTPUT.
Эти файлы разбиваются на строки переменной длины, отделяемые друг от друга признаком конца строки. Конец строки задается нажатием клавиши ENTER.
Для ввода исходных данных используются операторы процедур ввода:
Read(A1,A2. AK); ReadLn(A1,A2. AK); ReadLn;
Первый из них реализует чтение К значений исходных данных и присваивание этих значений переменным А1, А2, . АК. Второй оператор реализует чтение К значений исходных данных, пропуск остальных значений до начала следующей строки, присваивание считанных значений переменным А1, А2, . АК.
Третий оператор реализует пропуск строки исходных данных.
При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке ПАСКАЛЬ недопустимо.
Операторы ввода при чтении значений переменных целого и действительного типа пропускает пробелы, предшествующие числу. В то же время эти операторы не пропускают пробелов, предшествующих значениям символьных переменных, так как пробелы являются равноправными символами строк. Пример записи операторов ввода:
var rV, rS: Real; iW, iJ: Integer; chC, chD: Char; . Read(rV, rS, iW, iJ); Read(chC, chD);
Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.
Для вывода результатов работы программы на экран используются операторы:
Write(A1,A2. AK); WriteLn(A1,A2. AK); WriteLn;
Первый из этих операторов реализует вывод значений переменных А1, А2. АК в строку экрана. Второй оператор реализует вывод значений переменных А1, А2, . АК и переход к началу следующей строки.
Третий оператор реализует пропуск строки и переход к началу следующей строки.
Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или булевскому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки.
Вывод каждого значения в строку экрана происходит в соответствии с шириной поля вывода, определяемой конкретной реализацией языка.
Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа — как действительные десятичные числа с десятичным порядком, символьного типа и строки — в виде символов, логического типа — в виде логических констант TRUE и FALSE.
Оператор вывода позволяет задать ширину поля вывода для каждого элемента списка вывода. В этом случае элемент списка вывода имеет вид А:К, где А — выражение или строка, К — выражение либо константа целого типа. Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы.
Если выводимое значение не помещается в ширину поля К, то для этого значения будет отведено необходимое количество позиций. Для величин действительного типа элемент списка вывода может иметь вид А:К:М, где А — переменная или выражение действительного типа, К — ширина поля вывода, М — число цифр дробной части выводимого значения. К и М — выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.
Пример записи операторов вывода:
. . . . . . . . . . . . var rA, rB: Real; iP,iQ:Integer; bR, bS: Boolean; chT, chV, chU, chW: Char; . . . . . . . . . . . . WriteLn(rA, rB:10:2); WriteLn(iP, iQ:8); WriteLn(bR, bS:8); WriteLn(chT, chV, chU, chW);
Источник: www.znannya.org
Типы данных, переменные и константы в С++
Следующая тема, которая входит в основы программирования – это типы данных, переменные и константы. Почти всегда первые темы в изучении любого курса – это в большинстве теория и скукотища. Так уж складывается, что чтобы начать писать более-менее интересные программы, надо освоить некие азы и получить базовые знания. Я, конечно, постараюсь покороче и поинтересней раскрыть тему этой статьи, но наберитесь терпения. В этой статье мы разберёмся с тем, что же такое типы данных и зачем они нам понадобятся в программировании, а также узнаем о переменных и константах.
Типы данных. Сначала отвечу “зачем” существуют типы данных . Смотрите, допустим нам надо написать программу, которая выводит на экран данные о возрасте, весе и росте человека. Но, чтобы программа могла обращаться к этим данным, их надо хранить где-то в оперативной памяти компьютера, а уже потом “попросить” показать их. Вот для этого нам и нужны типы данных – чтобы компилятор “понял” сколько памяти надо выделить для данных и что в этой памяти будет храниться (целое число (возраст), вещественное (вес и рост), символы и .т.д.).
Типы данных можно разбить на три группы: числовые, символьные и логические. Для обозначения типов данных используются специальные зарезервированные (ключевые) слова. Ниже мы их рассмотрим и укажем сколько памяти для них выделяется и какие данные они могут хранить.
Числовые типы данных: для хранения целых чисел (0, 33, -27 и т.д.)
int (4 байта) – хранит числа в диапазоне от -2 147 483 648 до 2 147 483 647
short (2 байта) – хранит числа в диапазоне от -32 768 до 32 767
long (4 байта) – хранит числа в диапазоне от -2 147 483 648 до 2 147 483 647
Числовые типы данных: д ля хранения вещественных чисел (с плавающей точкой: –435.332, 54.77, 3.0)
float (4 байта) – хранит дробные числа с точностью до 7 знаков после запятой
double (8 байт) – хранит дробные числа с точностью до 15 знаков после запятой
Символьный тип: д ля хранения одного символа
char (1 байт) – хранит один символ. Например: ‘f’, ‘+’ или ‘4’ (как символ). Одинарные кавычки обязательны.
Типа данных для хранения строк в С++ нет. Позже мы с вами познакомимся с тем, каким образом можно хранить строки в памяти.
bool (1 байт) – м ожет принимать только два значения true (истина) и false (ложь)
Сразу стоит обратить внимание, что все зарезервированные слова под типы данных пишутся не заглавными, а строчными (маленькими) буквами. Если вы объявите тип bool , как Bool – компилятор выдаст сообщение об ошибке. В редакторе, при написании кода, все зарезервированные слова С++ подсвечиваются синим цветом (это касается всех зарезервированных слов). Так что если вы вписали тип, а слово не стало синим – проверьте правильность написания.
Переменные и константы. Их названия говорят сами за себя. И переменная и константа – это определённые области в оперативной памяти, которые имеют имя (имя задаёт программист). Только переменная может менять своё значение в ходе выполнения программы, константа же определяется один раз и изменяться уже не может.
Время, к примеру, это переменная величина. Сейчас, допустим, 3 часа дня, а через 2 часа уже будет 5 часов вечера. А вот количество часов в сутках – это уже константа.
И переменным и константам при объявлении обязательно надо присвоить имя. Существуют строгие правила, согласно которым даются имена:
- имя переменной может содержать маленькие и большие буквы английского алфавита, цифры, и ‘ _’ (нижнее подчеркивание). С нижним подчеркиванием имена читаются намного легче. Сравните amountofapples и amount_of_apples.
- имя не может начинаться с цифры! amount_of_apples1 – можно, 1amount_of_apples – не можно ))
- именем не может быть зарезервированное слово ( int, bool …). Если вы придумали имя переменной, ввели, а его подсветило синим цветом, значит такое слово в С++ является зарезервированным. Придумайте новое имя.
- имя переменной должно быть осмысленным (логичным тому, что будет хранить данная переменная). Т.е. вряд ли кто-то догадается, что в переменной x хранится значение количества яблок. Логичнее назвать такую переменную amount_of_apples.
Объявление и инициализация переменных и констант.
Как же можно создать переменную и указать какое значение она будет хранить? Для этого нам необходимо сначала указать тип_данных, затем дать имя переменной (придерживаясь правил рассмотренных выше), поставить знак = (означает присвоить) и указать значение. К примеру создадим переменную, которая будет хранить значение количества яблок: int amount_of_apples = 7; .
Присваивание значения переменной при её создании называется инициализацией . Желательно всегда инициализировать переменные при создании, даже если вы не знаете какое значение переменная примет в ходе работы программы. В этом случае инициализируйте её нулём: int amount_of_apples = 0; . Дело в том, что оперативная память свободной не бывает. И если вы просто создали переменную int amount_of_apples; и не присвоили ей никакого значения, она всё равно будет хранить какие-то остаточные данные от предыдущих программ. Поэтому, хотя и не является ошибкой сначала объявить переменную, а ниже присвоить ей значение, желательно присвоить значение этой переменно сразу , тем самым очистив её от “мусора”. Кстати, в MVS 2013, если вы попытаетесь вывести на экран значение не инициализированной переменной, компилятор выдаст ошибку.
Что касается констант, то значение им должно быть присвоено сразу при создании. Например, определим константу, которая будет хранить количество дней в неделе: const int daysInWeek = 7; Чтобы дать понять компилятору, что это константа, а не обычная переменная, перед типом данных обязательно использовать ключевое слово const .
Так, пожалуй, приступим к рассмотрению нескольких примеров, чтобы понять и запомнить то, о чём мы тут говорили. Не забывайте, набирать код – практикуйтесь.
Источник: purecodecpp.com
Переменные и константы в C#
Важнейшим свойством алгоритма (а значит и программы), как известно, является массовость (обработка различных данных). Поэтому в программировании появились переменные, предназначенные для размещения данных.
Любая переменная должна быть объявлена (присвоено имя — идентификатор) и инциализирована (задано какое-либо значение, принадлежащее к определенному типу). Допускается динамическая инициализация переменных (в процессе выполнения кода программы). Возможно использование неявно типизированных переменных. Поясняется целесообразность объявления констант.
Рассмотрим эти понятия на примерах.
Идентификатор — это имя сущности в коде. Существует стандарт именования идентификаторов, который следует использовать в коде.
Идентификатор может :
— начинаться с символа «_»;
— содержать заглавные и строчные буквы в формате Unicode;
— регистр имеет значение.
Идентификатор не может :
— начинаться с цифры;
— начинаться с символа, если это ключевое слово;
— содержать более 511 символов.
По соглашению (не обязательно, но желательно):
1. Параметры, локальные переменные и частные (private) свойства и методы пишутся в camel case (слова пишутся слитно, без пробелов и нижних подчеркиваний, каждое новое слово кроме первого с заглавной буквы, например, myVariable).
2. Все остальные идентификаторы — в стиле Pascal case (тоже самое, что и camel case, только первое слово с заглавной буквы, например, MyClass).
Мое примечание к подсказке. Вы можете использовать кроме латинских (английских) букв и буквы русского алфавита (как, впрочем и других национальных алфавитов), однако не увлекайтесь этим. Более привычно, когда в идентификаторе используются буквы английского алфавита, цифры и символ подчеркивания (прежний стандарт).
Объявления переменных
Шаблон объявления переменной в C# выглядит следующим образом:
ТипДанных Идентификатор;
Например:
int k1;
System.Int32 _counter;
Int32 счетчик;
Все три переменных: k1, _counter, счетчик являются переменными одного типа, занимают в памяти 4 байта.
Заметим, что использование символов Юникода в написании идентификаторов разрешает использование букв национальных алфавитов, включая русский.
Объявить можно переменную любого типа. Важно подчеркнуть, что возможности переменной определяются ее типом. Например, переменную типа bool нельзя использовать для хранения числовых значений с плавающей точкой.
Кроме того, тип переменной нельзя изменять в течение срока ее существования. В частности, переменную типа int нельзя преобразовать в переменную типа char.
Все переменные в C# должны быть объявлены до их применения .
Это нужно для того, чтобы уведомить компилятор о типе данных, хранящихся в переменной, прежде чем он попытается правильно скомпилировать любой оператор, в котором используется переменная. Это позволяет также осуществлять строгий контроль типов в C#.
Инициализация переменной
Задать значение переменной можно, в частности, с помощью оператора присваивания. Кроме того, задать начальное значение переменной можно при ее объявлении. Для этого после имени переменной указывается знак равенства (=) и присваиваемое значение. Если две или более переменные одного и того же типа объявляются списком, разделяемым запятыми, то этим переменным можно задать, например, начальное значение.
Ниже приведена общая форма инициализации переменной:
int k1 = 10;
char символ = ‘Z’;
float f = 15.7F;
int x = 5, y = 10, z = 12;
// — инициализируем несколько переменных одного типа.
Инициализация переменных демонстрирует пример обеспечения безопасности C#. Коротко говоря, компилятор C# требует, чтобы любая переменная была инициализирована некоторым начальным значением, прежде чем можно было обратиться к ней в какой-то операции.
В большинстве современных компиляторов нарушение этого правила определяется и выдается соответствующее предупреждение, но «всевидящий» компилятор C# трактует такие нарушения как ошибки. Это предохраняет от нечаянного получения значений «мусора» из памяти, оставшегося там от других программ.
В C# используются два метода для обеспечения инициализации переменных перед использованием:
1. Переменные, являющиеся полями класса или структуры, если не инициализированы явно, по умолчанию обнуляются в момент создания.
2. Переменные, локальные по отношению к методу, должны быть явно инициализированы в коде до появления любого оператора, в котором используются их значения. В данном случае при объявлении переменной ее инициализация не происходит автоматически, но компилятор проверит все возможные пути потока управления в методе и сообщит об ошибке, если обнаружит любую возможность использования значения этой локальной переменной до ее инициализации.
Например, в C# поступить следующим образом нельзя:
public static int принт()
int d;
Console.WriteLine(d); return 0;
>
Получим при компиляции сообщение об ошибке: Использование локальной переменной “d”, которой не присвоено значение.
Динамическая инициализация
В приведенных выше примерах в качестве инициализаторов переменных использовались только константы, но в C# допускается также динамическая инициализация переменных с помощью любого выражения, действительного на момент объявления переменной:
int a = 3, b = 4;
// Инициализируем динамически переменную c:
double c = Math.Sqrt(a * a + b * b);
Console.WriteLine(«», c);
В данном примере объявляются три локальные переменные a,b,c, первые две из которых инициализируются константами, а переменная c инициализируется динамически с использованием метода Math.Sqrt(), возвращающего квадратный корень выражения.
Следует подчеркнуть, что в выражении для инициализации можно использовать любой элемент, действительный на момент самой инициализации переменной, в том числе вызовы методов, другие переменные или литералы.
Неявно типизированные переменные
Теперь некоторое отступление от строгих правил, привыкайте и к исключениям (по англ. — Exception). Как пояснялось выше, все переменные в C# должны быть объявлены. Как правило, при объявлении переменной сначала указывается тип, например int или bool, а затем имя переменной. Но начиная с версии C# 3.0, компилятору предоставляется возможность самому определить тип локальной переменной, исходя из значения, которым она инициализируется.
Такая переменная называется неявно типизированной. Неявно типизированная переменная объявляется с помощью ключевого слова var и должна быть непременно инициализирована.
Для определения типа этой переменной компилятору служит тип ее инициализатора, то есть значения, которым она инициализируется:
var n = 12; // переменная n инициализируется целочисленным литералом
var d = 12.3; // переменная d инициализируется литералом
// с плавающей точкой, имеющему тип double
var f = 0.34F; // переменная f теперь имеет тип float
Единственное отличие неявно типизированной переменной от обычной, явно типизированной переменной, — в способе определения ее типа. Как только этот тип будет определен, он закрепляется за переменной до конца ее существования.
Неявно типизированные переменные внедрены в C# не для того, чтобы заменить собой обычные объявления переменных. Напротив, неявно типизированные переменные предназначены для особых случаев, и самый примечательный из них имеет отношение к языку интегрированных запросов (LINQ).
Таким образом, большинство объявлений переменных должно и впредь оставаться явно типизированными, поскольку они облегчают чтение и понимание исходного текста программы.
Инициализация объектов, массивов и строк будет рассмотрена позднее.
Константы
Как следует из названия, константа — это переменная, значение которой не меняется за время ее существования. Предваряя переменную ключевым словом const при ее объявлении и инициализации, вы объявляете ее как константу:
const int N_max =100;
Идентификатор константы записывается по общим правилам написания идентификаторов (см. подсказку выше).
Ниже перечислены основные характеристики констант:
1. Они должны инициализироваться при объявлении, и однажды присвоенные им значения никогда не могут быть изменены.
2. Константа не может быть объявлена непосредственно в пространстве имен, но может быть объявлена либо в классе, либо в функции.
3. Значение константы должно быть вычислено во время компиляции.
Таким образом, инициализировать константу значением, взятым из другой переменной, нельзя. Если все-таки нужно это сделать, используйте поля только для чтения.
Константы всегда неявно статические. Нет необходимости включать модификатор static в объявление константы.
Использование констант в программах обеспечивает, по крайней мере, три преимущества:
1. Константы облегчают чтение программ, заменяя «магические» числа и строки читаемыми именами, назначение которых легко понять. Например, через константу N_max может задать максимальное количество элементов в массиве объектов, при необходимости это число может быть изменено всего лишь в одном операторе объявления константы.
2. Константы облегчают модификацию программ. Например, предположим, что в программе C# имеется константа IncomeTax (подоходный налог), которой присвоено значение 13 процентов. Если налог когда-нибудь изменится, вы можете модифицировать все вычисления налога, просто присвоив новое значение этой константе, и не понадобится просматривать код в поисках значений и изменять каждое из них, надеясь, что оно нигде не будет пропущено.
3. Константы позволяют избежать ошибок в программах. Если попытаться присвоить новое значение константе где-то в другом месте программы, а не там, где она объявлена, компилятор выдаст сообщение об ошибке.
В наших примерах константы используются достаточно часто.
Следующая небольшая тема раздела: Область видимости переменных
NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
Источник: c-sharp.pro