- •Информатика и программирование
- •Лабораторная работа № 04
- •Лабораторная работа № 04
- •1. Краткие теоретические сведения
- •1.1. Операции
- •1.2. Порядок (старшинство) выполнения операций
- •1.4. Разделители
- •1.5. Переменные
- •1.5.1. Объявление переменных
- •1.5.2. Смысловые имена переменных
- •1.5.3. Таблица идентификаторов
- •1.5.4. Слова, которые нельзя использовать для имен переменных
- •1.5.5. Присваивание значения переменной
- •1.5.6. Присваивание значения при объявлении
- •1.5.7. Использование значения переменной
- •1.5.8. Превышение диапазона значений переменной
- •1.5.9. Представление о точности
- •1.5.10. Следите за ошибками переполнения при арифметических операциях
- •1.6. Константы
- •1.7. Перечисления
- •1.8. Выражения
- •1.9. Правила записи выражений
- •1.10. Преобразования типов
- •1.11. Операции (операторы) инкремента и декремента
- •1.11.1. Увеличение значения переменной на 1
- •1.11.2. Представление о префиксной (до) и постфиксной (после) операциях увеличения
- •2. Задание
- •2.11. Задания
- •Варианты задания приведены в табл. 4.14. Вариант соответствует номеру в журнале группы.
- •Варианты задания приведены в табл. 4.15. Вариант соответствует номеру в журнале группы.
- •2.11.3. Задание 3. (Домашнее).
- •2.11.3.1. Содержание работы
- •2.11.3.2. Теоретические сведения
- •2.11.3.3. Варианты задания 3
- •Варианты задания приведены в табл. 4.15. Вариант соответствует номеру в журнале группы.
- •2.11.3.4. Пример программы
- •2.11.3.5. Программа
- •2.11.3.6. Результаты работы программы.
- •2.11.3.7. Типичные ошибки при выполнении работы
- •3. Выводы
- •4. Требование к отчету
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
1.5. Переменные
Для того, чтобы программа могла на протяжении своего выполнения сохранять определенные данные, используются переменные и константы.
Переменная - объект программы, занимающий в общем случае несколько ячеек памяти, призванный хранить данные. Переменная обладает именем, размером и рядом других атрибутов (таких, как видимость, время существования и т.д.).
Переменная в C++ – именованная область памяти, в которой хранятся данные определенного типа. У переменной есть имя и значение. Имя служит для обращения к области памяти, в которой хранится значение.
1.5.1. Объявление переменных
Чтобы переменную можно было использовать в программе, она должна быть предварительно объявлена.
Перед использованием любая переменная должна быть описана (объявлена), например:
int a; float x;
При объявлении переменной для нее резервируется некоторая область памяти, размер которой зависит от конкретного типа переменной. Здесь следует также указать, что размер одного и того же типа данных может отличаться на компьютерах разных платформ, а также может зависеть от используемой операционной системы. Поэтому при объявлении той или иной переменной нужно четко представлять, сколько байт она будет занимать в памяти ЭВМ, чтобы избежать проблем, связанных с переполнением и неправильной интерпретацией данных.
Ваши программы используют переменные для хранения информации. В зависимости от типа хранимого значения, например, целое число, буква алфавита или число с плавающей точкой, тип вашей переменной будет разным.
Тип переменной указывает тип значения, хранимого в переменной, а также набор операций (таких как сложение, умножение и другие), которые программа может выполнять над значением переменной. Большинство программ на C++ будут использовать типы переменных, перечисленные в табл. 4.5.
Ниже приведен перечень базовых типов переменных и их размер в байтах. Следует учесть, что размер, указанный в табл. 4.5 для каждого типа, должен быть проверен для конкретного ПК.
Таблица 4.5
Базовые типы типы переменных C++
Тип |
Размер, байт |
Хранимые значения |
bool |
1 |
true или false |
unsigned short int |
2 |
от 0 до 65 535 |
short int |
2 |
От -32 768 до 32 767 |
unsigned long int |
4 |
от 0 до 4 294 967 295 |
long int |
4 |
От -2 147 483 648 до 2 147 483 647 |
int (16 разрядов) |
2 |
От -32 768 до 32 767 |
int (32 разряда) |
4 |
От -2 147 483 648 до 2 147 483 647 |
unsigned int (16 разрядов) |
2 |
от 0 до 65 535 |
unsigned int (32 разряда) |
4 |
от 0 до 4 294 967 295 |
char |
1 |
от 0 до 256 |
float |
4 |
от 1.2е-38 до 3.4е38 |
double |
8 |
От 2.2е-308 до 1.8е308 |
void |
2 или 4 |
|
Прежде чем вы сможете использовать переменную, ваша программа должна ее объявить. Другими словами, вам следует представить переменную компилятору C++. Чтобы объявить переменную в программе, вам следует указать тип переменной и ее имя, по которому программа будет обращаться к данной переменной. Указывайте тип и имя переменной после открывающей фигурной скобки главной программы, как показано ниже:
тип_переменной имя_переменной;
Объявление переменной начинается с ключевого слова, определяющего его тип, за которым следует собственно имя переменной и (необязательно) инициализация - присвоение начального значения.
Одно ключевое слово позволяет объявить несколько переменных. При этом они следуют друг за другом через запятую (,). Заканчивается объявление символом точка с запятой (;).
Имя переменной (идентификатор) не должно превышать 256 символов (разные компиляторы накладывают свои ограничения на количество распознаваемых символов в идентификаторе). При этом важно учитывать регистр букв (Abc и аbс - не одно и то же)! Конечно, имя должно быть достаточно информативным, однако не следует использовать слишком длинные имена, так как это приводит к опискам.
Хотя начальная инициализация и не является обязательной при объявлении переменной, все же рекомендуется инициализировать переменные начальным значением. Если этого не сделать, переменная изначально может принять непредсказуемое значение.
Установка начального значения переменной осуществляется с помощью оператора присваивания (=).
Как правило, тип переменной будет одним из типов, перечисленных в табл. 4.5. Выбираемое вами имя переменной должно нести смысловую нагрузку, которая описывает (для всех, кто читает вашу программу) использование переменной. Например, ваша программа могла бы использовать переменные, такие как employee_name, employee_age и т. д. Обратите внимание на точку с запятой, которая следует за именем переменной. В C++ объявление переменной считается оператором. Поэтому вы должны поставить после объявления точку с запятой.
Пример 4.8
Фрагмент следующей программы объявляет три переменные, используя типы int, float и long:
#include <iostream.h>
void main(void)
{ int test_score; float salary; long distance_to_mars; }
Важно обратить внимание, что данная программа ничего не выполняет, а только объявляет переменные. Как видите, объявление каждой переменной заканчивается точкой с запятой. Если вы объявляете несколько переменных одного и того же типа, можно разделять их имена запятой. Следующий оператор, например, объявляет три переменных с плавающей точкой:
float salary, income_tax, retirement_fund;
Помните: переменная представляет собой имя ячейки в памяти компьютера. Во время выполнения ваши программы хранят информацию в переменных. При создании программ вы должны объявлять переменные, сообщая компилятору C++ имя и тип переменной.
Рассмотрим подробно основные типы переменных.
Переменная типа bool занимает всего 1 байт и используется, прежде всего, в логических операциях, так как может принимать значение 0 (false, ложь) или отличное от нуля (true, истина). В старых текстах программ вы можете встретить тип данных BOOL и переменные этого типа, принимающие значения TRUE и FALSE. Этот тип данных и указанные значения не являлись частью языка, а объявлялись в заголовочных файлах как unsigned short, 1 и 0, соответственно. В новой редакции С++ bool -самостоятельный, полноправный тип.
Часто бывает необходимо указать в программе, что переменная должна принимать только целые значения. Целочисленные переменные (типа int, long, short), как следует из названия, призваны хранить целые значения, и могут быть знаковыми и беззнаковыми. Знаковые переменные могут представлять как положительные, так и отрицательные числа. Для этого в их представлении один бит (самый старший) отводится под знак. В отличие от них, беззнаковые переменные принимают только положительные значения. Чтобы указать, что переменная будет беззнаковой, используется ключевое слово unsigned. По умолчанию целочисленные переменные считаются знаковыми (signed, чаще всего опускается; используется при преобразовании типов данных).
Из таблицы 4.5 видно, что переменная типа int в разных случаях может занимать в памяти различное число байт.
Символьный тип данных char применяется, когда переменная должна нести информацию о коде ASCII. Этот тип данных часто используется для построения более сложных конструкций, таких, как строки, символьные массивы и т.д. Данные типа char также могут быть знаковыми и беззнаковыми.
Для представления чисел с плавающей запятой применяют тип данных float. Этот тип, как правило, используется для хранения не очень больших дробных чисел и занимает в памяти 4 байта: 1 бит - знак, 8 бит - экспонента, 23 бита - мантисса.
Если вещественное число может принимать очень большие значения, используют переменные двойной точности, тип double.
Переменная типа void не имеет значения и служит для согласования синтаксиса. Например, синтаксис требует, чтобы функция возвращала значение. Если не требуется использовать возвращенное значение, перед именем функции ставится тип void.
Приведем несколько примеров объявления переменных.
Пример 4.9
int а = 0, А = 1;
float aGe = 17.5;
double PointX;
bool bTheLightlsOn = false;
char LETTER = 'Z';
void MyFunction(); // возвращаемое функцией
// Значение игнорируется