Лекция основы Си++ 9




НазваниеЛекция основы Си++ 9
страница8/37
Дата публикации11.06.2014
Размер1.85 Mb.
ТипЛекция
literature-edu.ru > Курсовая работа > Лекция
1   ...   4   5   6   7   8   9   10   11   ...   37

3. Вывод вещественных чисел на экран


При выводе на экран численных значений типа "float", "double" или "long double" возможно указание точности представления данных на экране и задание некоторых дополнительных параметров отображения, например, отображение значений в формате с фиксированной или плавающей точкой.

В программе 3.1 вещественное число отображается в формате с фиксированной точкой и двумя десятичными знаками после запятой. Идентификатор "sqrt" является именем библиотечной функции извлечения квадратного корня. Описание библиотеки математических функций содержится в заголовочном файле "math.h".
#include

#include

int main()

{

  float number;

  cout << "Введите вещественное число.\n";

  cin >> number;
  cout << "Корень из ";
  cout.setf(ios::fixed); // СТРОКА 12

  cout.precision(2);

  cout << number;
  cout << " примерно равен " << sqrt( number ) << ".\n";

  return 0;

}

Программа 3.1.

Программа 3.1 напечатает на экране:

Введите вещественное число.

200

Корень из 200.00 примерно равен 14.14.

Если СТРОКУ 12 заменить на "cout.setf(ios::scientific);", то вид результата изменится:

Введите вещественное число.

200

Корень из 2.00e+02 примерно равен 1.41e+01.

В выходные данные можно включить параметры табуляции. Для этого предназначена функция ширины поля, например, "cout.width(20)". Она задает ширину следующего выводимого на экран значения равной, как минимум, 20 символам (при меньшей ширине автоматически будут добавлены пробелы). Эта возможность особенно полезна для печати таблиц.

В компиляторе Visual C++ при указании ширины поля по умолчанию предполагается, что значения выравниваются по правой границе. Чтобы задать выравнивание по левой границе поля, потребуется использовать еще несколько манипуляторов ввода-вывода. Это специальные функции и операторы, содержащиеся в библиотеке ввода/вывода Си++. Они описаны в заголовочном файле iomanip.h. Для задания выравнивания по левой границе надо установить специальный флажок (переключатель) с помощью функции setiosflags:
#include

#include

#include
int main()

{

  int number;
  cout << setiosflags( ios::left );

  cout.width(20);

  cout << "Число" << "Квадратный корень\n\n";
  cout.setf( ios::fixed );

  cout.precision(2);

  for ( number = 1 ; number <= 10 ; number = number + 1 )

    {

    cout.width(20);

    cout << number << sqrt(number) << "\n";

    }
  return 0;

}

Программа 3.2.

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

Число Квадратный корень

1 1.00

2 1.41

3 1.73

4 2.00

5 2.24

6 2.45

7 2.65

8 2.83

9 3.00

10 3.16

(ПРИМЕЧАНИЕ: во всех примерах идентификатор "cout" является именем переменной-объекта класса "stream" (поток). Функции "setf(...)", "precision(...)" и "width(...)" являются функциями-членами класса "stream". Понятия "объект", "класс", "функция-член" и др. будут подробно рассматриваться в курсе объектно-ориентированного программирования.)

4. Описания, константы и перечисления


Как вы уже знаете, в программах на Си++ переменные обязательно должны быть описаны до первого использования, например, так:

float number;

После оператора описания до момента выполнения первого оператора присваивания значение переменной "number" будет неопределенным, т.е. эта переменная может иметь случайное значение. В Си++ можно (и желательно) инициализировать переменные конкретными значениями непосредственно при описании переменных. Например, возможен следующий оператор описания с инициализацией:

float PI = 3.1416;

Если значение переменной в программе никогда не изменяется, то ее целесообразно защитить от случайного изменения с помощью служебного слова "const" – т.е., превратить в константу.

4.1 Тип "Перечисление"


Для описания набора связанных по смыслу констант типа "int" в Си++ есть оператор перечисления. Например, описание вида

enum { MON, TUES, WED, THURS, FRI, SAT, SUN };

эквивалентно описанию 7 констант-кодов дней недели:

const int MON = 0;

const int TUES = 1;

const int WED = 2;

const int THURS = 3;

const int FRI = 4;

const int SAT = 5;

const int SUN = 6;

По умолчанию членам перечисления "enum" присваиваются значения 0, 1, 2, и т.д.. При необходимости члены перечисления можно инициализировать другими значениями. Неинициализированным явно членам будут присвоены значения по порядку, начиная от предыдущего проинициализированного члена:

enum { MON = 1, TUES, WED, THURS, FRI, SAT = -1, SUN };

В приведенном примере "FRI" имеет значение 5, а "SUN" – значение 0.

4.2 Расположение описаний констант и переменных в исходном тексте


В исходном тексте описания констант чаще всего размещаются в заголовке программы перед функцией "main". После них, уже в теле функции "main", размещаются описания переменных. Для иллюстрации этого порядка ниже приведен фрагмент программы, которая рисует на экране окружность заданного радиуса и вычисляет ее длину (набирать этот пример не надо, поскольку он приведен не полностью.)
#include
const float PI = 3.1416;

const float SCREEN_WIDTH = 317.24;
int drawCircle(float diameter); /* Это "прототип функции" */
int main()

{

  float radius = 0;
  cout << "Введите радиус окружности.\n";

  cin >> radius;
  drawCircle(radius*2);
  cout.setf(ios::fixed);

  cout.precision(2);

  cout << "Длина окружности радиуса " << radius;

  cout << " примерно равна " << 2*PI*radius << ".\n";

  return 0;

}
int drawCircle(float diameter)

{

  float radius = 0;
  if (diameter > SCREEN_WIDTH)

    radius = SCREEN_WIDTH/2.0;

  else

    radius = diameter/2.0;

  ...

  ...

}
После определения функции "main()" в этой программе содержится определение функции рисования окружности "drawCircle(...)". Детали реализации этой функции сейчас не существенны (будем считать, что функция drawCircle(...)" реализована корректно и ею можно пользоваться так же, как, например, функцией "sqrt(...)"). Обратите внимание, что, хотя переменная "radius" используется в обеих функциях "main()" и "drawCircle(...)", это не одна и та же переменная, а две разных.

Если бы переменная "radius" была описана до функции "main", то в таком случае она была бы глобальной переменной (общедоступной). Тогда, предполагая, что внутри функции "drawCircle(...)" описания переменной уже нет, если "drawCircle(...)" присвоит глобальной переменной значение "SCREEN_WIDTH/2.0", то это значение чуть позже функция "main()" использует для вычисления длины окружности и получится неверный результат.

В приведенной программе глобальной переменной нет, а есть две локальных переменных "radius". Например, первая переменная "radius" является локальной переменной функции "main()", или, говорят, что функция "main()" является областью видимости этой переменной.

Константы общего назначения, такие, как "PI" и "SCREEN_WIDTH", принято описывать глобально, чтобы они были доступны внутри любой функции.

Для контроля действий программы в приведенном фрагменте предусмотрено повторное отображение данных, введенных пользователем. Другими словами, заданное пользователем значение "radius" еще раз печатается на экране перед отображением длины окружности.

1   ...   4   5   6   7   8   9   10   11   ...   37

Похожие:

Лекция основы Си++ 9 iconЛекция основы си++ 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. Коломна: кгпи,...

Лекция основы Си++ 9 iconЛекция I и проблема языка и сознания лекция II 31 слово и его семантическое...
Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного...

Лекция основы Си++ 9 iconЛекция психосексуальное развитие. Возрастная динамика взаимоотношения полов 15
Основы семейной психопедагогики (курс лекций) / В. И. Короткий. — Архангельск: М'арт, 2003. — 178 с

Лекция основы Си++ 9 iconЛекция Архитектура 32-разрядных ос windows 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна:...

Лекция основы Си++ 9 iconЛекция Основные понятия ооп 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна:...

Лекция основы Си++ 9 iconЛекция №1. Введение. Элементы дифференциальной геометрии. 2
Лекция №5. Множества Жюлиа, множество Мандельброта и их компьютерное представление. 18

Лекция основы Си++ 9 iconЛекция на тему: «Современные подходы к содержанию дополнительного образования детей»
...

Лекция основы Си++ 9 iconЛекция в Дорнахе 22 мая 1920 года
Канта и протестантизма. Эта лекция вызвала негодование среди членов Лиги, культивировавших и признававших под названием монизма вообще...

Лекция основы Си++ 9 iconКурс лекций Лекция Введение в философскую суицидологию. Лекция Общая...
Открыть, в чём состоит суть суицида, наука не в состоянии (по собственной ограниченной природе) и потому должна обращаться за объяснениями...

Лекция основы Си++ 9 iconЛекция для слушателей курса «Основы религий»
Я не могу всего этого понять, потому что некоторые пытливые учителя, помню, меня просто одолевали вопросами, где найти, например,...

Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции