Также в предыдущем номере последний
пример программы был нерабочий - всё дело в преобразовании HTML
кода в HomeSite произошла вставка
новых тегов для совместимости. Исправленная версия лежит на сайте
http://www.sunday.ru/hitecos
в разделе архив.
В предыдущих программах мы использовали
только константы, которые один раз записывались и больше не изменялись.
Например, во время работы программы считающей выражение 5+5
- уже нельзя изменить какое-либо число, т.е. записали 5+5
так оно, и будет всегда.
Для начала этого хватало, но
программы росли и расширялись, и теперь потребовалась способность
изменять данные в процессе выполнения программы.
На помощь пришли переменные,
которые способны в себе как в "ящике" хранить какое-либо число
или букву и ее в любой момент использовать (записать, стереть).
Числа бывают целого (1,2,3,…)
и вещественного типа (1.5, 3.14, 0.019,…
), а в С++ есть еще и типы данных, которые могут быть со знаком
(например, минус "-") так и без него - их называют знаковые и
беззнаковые.
Чтобы в программе можно было
использовать переменную, ее надо объявить, а потом только использовать.
Переменные объявляются так: тип_переменной имя_переменной; имя
для переменной Вы можете придумать любое, только чтобы оно не
совпадало с именами служебных команд языка С(например void
).
Любое имя переменной должно
начинаться с буквы (например "per"),
но не с цифры, в крайнем случае можно использовать знак подчеркивания
(например _ento_peremennay ). В С++
переменные, которые могут содержать только целые числа объявляются
как int (целый
тип ).
Напишем программу, которая
создаёт переменную типа int и
выводит ее значение.
#include <iostream.h>
void main(void)
{
int
i; // объявление
переменой, где int - тип, i - имя
cout
<< i;//вывод
переменной i
}
|
Объявление
переменных - это резервирование кусочка памяти, куда будут
заноситься определенные данные. Но в памяти могут находиться данные
от старых программ, и возможно именно в том кусочке, который был
зарезервирован под переменную могут находятся остаточные данные,
и тогда при вызове переменной программа будет использовать эти
данные, находящиеся в памяти. Чтобы этого не произошло, надо присвоить
переменной 0 или другое число, которое вам пригодиться.
!!! С/С++ различает заглавные и прописные буквы! Будте внимательны.
Программа, которая при объявлении
инициализирует две переменные - одну в 0, другую в -100 и выводит
их результат:
#include <iostream.h>
void main(void)
{
int
a= 0;// присвоение
значения при объявлении переменной
int
b=-100;
cout
<< a << " и " << b;//
вывод обоих переменных
}
|
Чтобы присвоить значение переменной
- Вы просто указываете имя переменной, оператор присваивания (=)
и значение (константу или переменную) которое хотите присвоить:
a= 10 b= a;
Программа, которая создаёт
две переменные и с их помощью манипулирует данными:
#include <iostream.h>
void main(void)
{
int
a,b;// создание
переменных целого типа с именем a и b
a=
10;// заносим
в переменную a значение 10
b=
0;// очищаем
переменную b
cout
<< "Значение переменной a=" << a << endl;
cout
<< "Значение переменной b=" << b << endl;
b=a;
cout
<< "после операции b=a, переменная b присвоила значение
а" << endl;
cout
<< "Значение переменной a=" << a << endl;
cout
<< "Значение переменной b=" << b << endl;
}
|
Как Вы видите, объявлять переменные
одного типа можно через запятую(int a,b,
... )
Ещё раз об именах переменных.
Имена переменных можно строить
из одной, двух или нескольких букв, можно даже применять целые
слова, чтобы было понятно, что именно храниться в переменной.
Например:
int year;
int day;
int time;
int more_time;
...
Переменные, которые могут
хранить десятичные (вещественные)
значения(3.14, 0.05 ).
Переменные вещественного типа
отличаются от целого - тем, что в них можно хранить значения с
плавающей запятой (у нас запятая, а у американцев разделителем
является точка). Если Вы присвоите переменной целого (int
) типа десятичное значение, то все числа после запятой (точки)
будут потеряны.
Например:
int a=3.14;
cout
<< a;
результат будет равен 3, т.е.
записалась только целая часть, а дробная откинулась.
Специально для хранения в
переменных вещественных значений, в С++ существует такой тип,
как float. Напишем программу по вычислению площади круга, которая
работает с типом float(5.2,
0.001,... ):
#include <iostream.h>
void main(void)
{
float
pi= 3.14;// значение
числа Пи
<
/FONT> int R=17;// радиус круга возьмем=17
float S;// сюда
запишем вычисленную площадь круга
S=pi*R*R;
cout
<< endl << S << endl;
}
|
Программа по взятию корня=3,
с использованием типа float
#include <iostream.h>
#include <math.h>
void main(void)
{
float
a;
a=
sqrt(3);// использование
функции взятия корня sqrt
cout
<< a;
}
|
Задание:
1. Вычислите объем конуса по
формуле V=(1/3)*Pi*R*R*H, где Pi - число Пи=3.1415926, R - радиус
конуса=19, H - высота=99.19;
2. Вычислить диагональ прямоугольника,
если сторона a=10.01, b=11.2. Здесь можно применить функцию извлечения
квадратного корня(sqrt()) заголовочного
файла math.h.
3. "Точность - вежливость королей"
или понятия о размерах и точности переменных |
Все бы хорошо, но вот размер
переменных разный, да и точность некоторых оставляет желать лучшего.
Для эксперимента присвойте переменной типа float
значение равное=3.123456789, а потом выведите его -
Вы увидите, что вывелось значение равное=3.1234567, а остальное
было потеряно. Поэтому в расчетах тип float
лучше использовать там, где
нужна точность не более 7 знаков после запятой.
На начальных примерах в переменные
закладывались значение не очень большого значения - этого вполне
хватало, а вот если в переменную типа int
присвоить число равное 40000 или больше? Программа
работать будет, да вот только в этой переменной будет храниться
не 40000, а -25536! А произошло это из-за выхода значения за допустимый
размер, который может хранить переменная. Тип int
может содержать значения в диапазоне от -32768 до 32768.
Конечно, можно сделать тип int беззнаковым
- добавив к нему служебное слово unsigned:
unsigned int имя_переменной
; теперь переменная может хранить только положительные целые числа
в диапазоне от 0 до 65535. Если Вам и этого будет мало, что очень
вероятно, то в С++ существуют другие типы данных, большего объема
и точности.
целые:
char
от -128 до 127;
unsigned
char от 0 до 255;
int от
-32768 до 32768;
long
от -2 147 483 648 до 2 147 483 647;
действительные:
float
от -3.4Е-38 до 3.4Е38; точность 7 десятичных цифр
double
от -1.7Е-308 до 1.7Е308; точность 15 десятичных цифр
long
double от -3.4Е-4932 до 3.4Е4932; точность 19 десятичных цифр
Хранение символов в переменных
.
Иногда в программе нужно вывести
какой-нибудь символ - это может быть цифра или элемент псевдографики,
который "зашит" в 886 кодовую страницу. Как Вы наверно помните,
что каждому символу дан свой код, который может варьировать от
0 до 255. Тип char был указан
как целочисленный тип, но обычно
его используют для хранения букв алфавита. Принцип действия такой:
при присвоении переменной типа char буквы(char
a='A';), в переменную записывается код этой буквы, а при выводе
на экран - выводиться буква под тем кодом. Но код буквы - тоже
цифра, поэтому этот тип данных также можно использовать при вычислениях.
Программа, которая присваивает
одной переменной букву, второй код другой буквы, и все это выводит:
#include <iostream.h>
void main(void)
{
char
a,b;
int
b1;
a=
'X';//присвоение
буквы "Х" переменной a
b=121;
cout <<
a << ", " << b << endl;
b1= b;//
пересылка кода буквы "Х" в переменную целого типа
cout <<
b1;//вывод код
буквы "Х"
}
|
Задание:
Напишите программу, которая создает
три переменных разного типа, записывает в одну число 25000, в другую
17001.125, в третью букву "Ю" с последующим выводом на экран всех
переменных. |