Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
76
Добавлен:
27.04.2015
Размер:
290.5 Кб
Скачать

Void main(void)

{

   int age;

   float salary;

   long distance_to_the_moon;

   age = 32;

   salary = 25000.75;

   distance_to_the_moon = 238857;

}

При объявлении переменной также можно присваивать ей начальное значение. Чтобы упростить такую процедуру, C++ позволяет присваивать значение во время объявления переменной, как показано ниже:

int age = 32;

float salary = 25000.75;

long distance_to_the_moon = 238857;

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

lesson = 4; илиintlesson = 4;

После присвоения значения переменной программы могут использовать это значение, просто обращаясь к ее имени. Следующая программа SHOWVARS.CPP присваивает значения трем переменным и затем выводит значение каждой переменной, используя cout:

#include <iostream.h>

Void main (void)

{

int age = 32;  float salary = 25000.75;

    long distance_to_the_moon = 238857;

   

cout << "Служащему " << age << " года (лет)" << endl;

    cout << "Оклад служащего составляет $" << salary <<endl;

cout << "Отземлидолуны " << distance_to_the_moon << " миль" << endl;

}

Обратите внимание, что последний оператор cout не помещается на одной строке. В этом случае программа просто переносит слова на следующую строку. Такой перенос правомерен, поскольку C++ использует точку с запятой для указания конца оператора. Если необходимо перенести строку, постарайтесь не делать этого в середине символьной строки (внутри двойных кавычек), используйте дополнительный отступ для перенесенной части строки, как показано выше.

После выполнения программы, на экране появится следующий вывод:

Служащему 32 года (лет)

Оклад служащего составляет $25000.75

От земли до луны 238857 миль

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

программа OVERFLOW.CPP иллюстрирует, как превышение диапазона значений переменной приводит к ошибке.

#include <iostream.h>

Void main(void)

{

   int positive = 40000;

   long big_positive = 4000000000;

   char little_positive = 210;

   cout << "сейчас positive содержит " << positive << endl;

   cout << "сейчас big_positive содержит " << big_positive

<< endl;

   cout << "сейчас little_poaitive содержит " <<

little_positive<<endl;

}

После выполнения программы, на экране появится следующий вывод:

сейчас positive содержит -25536

сейчас big_positive содержит -294967296

сейчас little_positive содержит Т

Видно, что программа присваивает переменным типа int, long и char значения, которые находятся вне диапазона хранения каждого типа, поэтому возникает ошибка переполнения. При работе с переменными вам необходимо помнить диапазон значений, которые может хранить переменная каждого типа. Ошибки переполнения плохо уловимы, и поэтому их трудно определить и исправить. Обратите внимание на значение, которое программа выводит для переменной little_positive. Поскольку это переменная типа char, выходной поток cout пытается вывести ее значение в символьном виде. В этом случае выведенное значение соответствует второй половине таблицы ASCII со значением 210.

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

Следующая программа PRECISE. CPP присваивает значение чуть меньше 0.5 переменным типа floatи double.

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

#include <iostream.h>

Соседние файлы в папке 2 Уровень повыше. Теоретика