Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Объявление и инициализация переменных и констант.




Типы данных, переменные и константы

Типы данных. Сначала отвечу «зачем» существуют типы данных. Смотрите, допустим нам надо написать программу, которая выводит на экран данные о возрасте, весе и росте человека. Но, чтобы программа могла обращаться к этим данным, их надо хранить где-то в оперативной памяти компьютера, а уже потом «попросить» показать их. Вот для этого нам и нужны типы данных — чтобы компилятор «понял» сколько памяти надо выделить для данных и что в этой памяти будет храниться (целое число (возраст), вещественное (вес и рост), символы и т.д.).

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

Числовые типы данных: для хранения целых чисел (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.

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

  // Задача: Есть 2 сумки. В одной 11 яблок, во второй 44 // Создать переменные, которые будут хранить количество яблок в сумках // и одну переменную, в которую надо записать общее количество яблок.   #include <iostream> using namespace std;   int main() { setlocale(LC_ALL, "rus"); //создание переменных и инициализация int amount_of_apples1 = 11; int amount_of_apples2 = 44;   int inBox = 0; // для записи общего количества   cout << "В пустой коробке - " << inBox << endl; // вывод данных на экран cout << "В первой сумке - " << amount_of_apples1 << endl; cout << "Во второй сумке - " << amount_of_apples2 << endl; cout << endl; // еще один перевод на новую строку   // подсчет общего количества яблок в коробке inBox = amount_of_apples1 + amount_of_apples2;   // показ общего количества на экран cout << "Всего в коробку добавлено " << inBox << " яблок" << endl;   return 0; }

В строке 15 переменной inBox присвоено значение 0, так как мы не знаем какое значение туда запишется. И в строке 17, мы показываем начальное значение на экран. Как видите, чтобы показать значение переменной на экран, достаточно обратиться к ней по имени: cout << inBox; Обратите внимание, как работает cout. С помощью оператора <<, мы можем чередовать показ текста и показ значения переменной. Так мы делали в строках 17, 19, 20 и 27. В строке 24 в переменную inBox записывается сумма переменных: amount_of_apples1 + amount_of_apples2. То есть, компилятор, сначала сложит значения этих переменных, а потом запишет сумму в inBox. И чтобы убедиться, что всё посчиталось и записалось — снова выводим значение inBox на экран — строка 27. Запускаем программу. Вот что мы увидим:

  В пустой коробке - 0 В первой сумке - 11 Во второй сумке - 44   Всего в коробку добавлено 55 яблок

Выделим основное, что необходимо запомнить:

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

§ имя переменной дает программист, соблюдая определённые правила (указаны выше).

§ чтобы создать (объявить) переменную надо указать её тип и дать имя. Переменную желательно сразу инициализировать (присвоить значение при создании): тип имя = значение;

§ чтобы объявить константу необходимо использовать ключевое слово const и обязательно сразу присвоить значение: constтип имя = значение;

§ переменным можно присвоить не только определённое значение, а и результат какого-то вычисления: amount_of_apples1 = amount_of_apples2 + 33;

§ объявлять переменные желательно в начале main-функции.А при необходимости еще и оставить комментарий, что они будут хранить.

§ регистр букв имени имеет значение. Имена Apple и apple обозначают разные переменные.

 

Ввод и вывод данных

Сначала поговорим о выводе данных на монитор. Как вы помните, при помощи ключевого слова cout, мы можем вывести на монитор строку, которую пишем в «кавычках», либо значение переменной, обратившись к ней по имени. Так же вы знакомы с оператором endl, который позволяет перевести вывод на следующую строку. И еще один важный момент — мы можем комбинировать вывод данных используя оператор << несколько раз после cout:

cout << «Значение переменной var_name =» << var_name << endl;

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

Вы посмотрели и задумались))) Зачем использовать обратный слэш? Рассмотрим на примере. Нам надо вывести на экран цитату из фильма. Сразу пусть прозвучит сигнал, который привлечет внимание пользователя на экран. По центру разместим заголовок и название фильма, из которого цитируем, а ниже — цитату.На экране должно выглядеть так:

Постарайтесь набрать код самостоятельно! Решение ниже:

  #include<iostream> using namespace std;   int main() { setlocale(LC_ALL, "rus");   cout << "\a\a\a\a\a\n"; cout << "\t\t\\ Цитата из фильма \"Джентльмены удачи\" \\ \n"; cout << "— Мы вам приклеиваем парик.\n"; cout << "— Так.\n"; cout << "— Рисуем татуировку.\n"; cout << "— Так.\n"; cout << "— И сажаем в тюрьму.\n"; cout << "— Так… А за что это?\n";   return 0; }

Зачем нам нужен обратный слэш? Он говорит компилятору: «Внимание, за мной стоит не простой символ, а специальный! Он скажет тебе, что нужно сделать!:)» Вот в строке 8, если бы мы не использовали с вами обратный слэш, на экран бы пошёл вывод пяти символов а. А так, мы услышим «прекрасную музыку». В строке 9 тоже интересно: две табуляции, далее надо вывести на экран один бэк слэш, а фактически надо написать два, ну и берём в кавычки название фильма. В конце каждой строки вместо манипулятора потока endl (<< endl) который позволяетперейти на новую строку (фактически аналог кнопки Enter на вашей клавиатуре) удобнее и короче, в данном случае, использовать управляющий символ \n.

Теперь поговорим о вводе данных пользователем с клавиатуры. Мы уже знаем — чтобы присвоить значение переменной, её можно инициализировать при создании либо присвоить значение ниже по ходу программы: имяПеременной = значение;А сейчас мы научимся записывать в переменную значение, которое вводит пользователь с клавиатуры. Мы можем организовать ввод данных используя операторы cin и >>. Синтаксис следующий: cin >> имяПеременной. Рассмотрим эту возможность на примере:

  #include <iostream> using namespace std;   int main() { setlocale(LC_ALL, "rus");   int amount = 33; int new_trees = 0;   cout << "Сколько деревьев вы посадили сегодня? "; cin >> new_trees;   cout << "Количество деревьев в парке: " << amount << endl; cout << "Вы посадили " << new_trees << " деревьев.\n"; cout << "Всего стало: " << amount + new_trees << endl;   return 0; }

Запустите программу и обратите внимание — программа выполнит команду 11-й строки и, дойдя до оператора cin >>, остановится и начнется ожидание действия от пользователя. Надо ввести значение и нажать Enter. Как только переменная получит значение, введенное с клавиатуры, программа продолжит выполнение.

Стоит отметить, что cin понимает и различает типы переменных. И если ввести в int символ, а не цифру, значение переменной не изменится. А если ввести несоответствующее значение в переменную, которая не инициализирована при создании, на экран будет показан какой-то остаточный «мусор» из переменной. Чтобы вводить символы — переменные надо объявлять типа char. Мы обязательно вскоре научимся с вами проверять правильность ввода данных пользователем. А так же научимся вводить с клавиатуры не одиночные символы, а целые строки.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...