Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на языке с++ ч.1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.13 Mб
Скачать

Лабораторная работа №3 Константы. Стандартные потоки ввода-вывода вещественных данных

Цель работы: изучить константы языка С++, научиться работать со стандартными потоками ввода-вывода вещественных данных языка C++.

Теоретические сведения

Константы

Константа – именованная область памяти, используемая для хранения значений, не изменяемых в ходе выполнения программы.

Сохранение в памяти значений как констант, так и других объектов неразрывно связано с типами данных (типами памяти). Тип константы определяется компилятором по значению и формату, используемому при записи константы в исходном коде.

Константы делятся на следующие группы:

  • целые (целочисленные);

  • вещественные (с плавающей точкой);

  • перечислимые;

  • символьные;

  • строковые;

  • именованные;

  • зарезервированные (встроенные);

  • нулевой указатель.

Целые константы. Они могут задаваться в десятичной, восьмеричной и шестнадцатеричной системах счисления.

Название

Определение

Примеры

Десятичная

константа

Последовательность десятичных цифр, начинающаяся не с нуля (0), если это число не 0

8;

0;

192345

Восьмеричная

константа

Последовательность восьмеричных цифр, которым предшествует нуль (0)

026;

034;

017

Шестнадцатеричная константа

Последовательность шестнадцатеричных цифр, которым предшествуют символы ”0х” или ”0Х”

0хА; 0Х00F; 0х123

Если требуется сформировать отрицательную целую константу, то используют знак «–» перед записью константы (который будет называться унарным минусом).

Например:

-0х2А; -033; -16.

Каждой целой константе присваивается тип, определяющий вид преобразований, которые должны быть выполнены, если константа используется в выражениях. Для того чтобы любую целую константу определить типом long, достаточно в конце константы поставить букву «l» или «L».

Например:

5l; 6l; 128L; 0105L; 0X2A11L.

Вещественные константы. В общем случае они состоят из:

  • цифр (десятичное целое);

  • точки десятичной;

  • цифр, соответствующих дробной части числа (десятичное дробное);

  • знаков десятичного порядка (основания 10), задаваемых символом e или Е;

  • необязательного суффикса f (либо F) или l (либо L), влияющего на точность представления приближённых чисел.

Название

Вид

Примеры

Константы с

фиксированной точкой

[+/-][цифры].[цифры]

135.7; .0001;

41

Константы с

плавающей

точкой

[+/-][цифры][.][цифры]E|e[+|-][цифры]

1.5е5;

-8.2E-6;

6.01е-5; 5Е3

Вещественные константы имеют при отсутствии каких-либо суффиксов тип double. Они будут принадлежать к типу float при указании суффикса f или F. Аналогичным образом суффикс l или L определяет тип long double.

Перечислимые константы. Это обычные целые константы, которым приписаны уникальные и удобные для использования обозначения. Данные константы вводятся с помощью ключевого слова enum.

Синтаксис:

еnum ТипПеречисления {СписокИменованныхКонстант};

где: enum – ключевое слово;

ТипПеречисления – необязательный идентификатор;

СписокИменованныхКонстант – список вида:

ИмяКонстанты1[=ВыражениеИлиЦелоеЗначение1],

ИмяКонстанты2[=ВыражениеИлиЦелоеЗначение2],

..............

ИмяКонстантыR[=ВыражениеИлиЦелоеЗначениеR];

Например:

enum {winter, spring, summer, autumn};

Здесь определены имена констант winter, spring, summer и autumn, которые имеют по умолчанию целочисленные значения соответственно 0, 1, 2 и 3.

enum Day {Sunday, Monday, Tuesday, Wednesday,

Thursday, Friday, Saturday};

В данном случае определены тип перечисления Day и набор нумераторов Sunday, Monday, Tuesday, Wednesday, Thursday, Friday и Saturday.

enum team {giants, cubs = 3, dodgers = giants + 1};

Здесь определены тип перечисления team и нумераторы giants=0, cubs=3, dodgers=1.

Символьные константы. Они оформляются в программе как один или несколько символов, заключенных в апострофы (' '). Символьные константы, состоящие из одного символа, имеют тип char и занимают в памяти один байт, символьные константы, состоящие из двух символов, имеют тип int и занимают два байта. Управляющая последовательность (см. лабораторную работу №2) рассматривается как одиночный символ и ее допустимо использовать в символьных константах.

Например:

'A'; '\t'; '\x0A'.

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

Например:

"С++ – язык программирования"

"\n Я изучаю дисциплину \"Программирование\"".

Именованные константы. Это идентификатор, которому присваивается постоянное значение (константа).

В языке С++ существуют следующие способы введения именованных констант:

1) с помощью препроцессорной директивы:

#define ИмяКонстанты Значение

Например:

#define PI 3.141596

#define Symbol 'Y'

2) с использованием квалификатора const при инициализации:

const Тип ИмяКонстанты=Значение;

Например:

const float E=2.7182;

const char NO='N';

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

Например:

INT_MAX; INT_MIN; (файл <limits.h>);

FLT_MIN; DBL_MAX (файл <float.h>).

Нулевой указатель. При использовании аппарата указателей часто применяют неарифметическую константу, именуемую нулевым указателем. Она обозначается ключевым словом NULL.

Пример 1.

// Программа вывода констант разного типа

#include <iostream.h>

#define PI 3.141596

#define Symbol 't'

const a=573; // целочисленная константа

const float b=45.812; // вещественная константа

const char c='Z'; // символьная константа

void main(){

cout << "Вывод целочисленной константы: " <<32175<<"\n";

cout << "Вывод вещественной константы: "

<<12.457634<<"\n";

cout << "Вывод символьной константы: " <<'X'<<"\n";

cout << "Вывод строковой константы: " <<"Я изучаю

дисциплину Программирование\""<<"\n\n";

cout << "Вывод целочисленной константы: " <<a<<"\n";

cout << "Вывод вещественной константы: " <<b<<"\n";

cout << "Вывод символьной константы: " <<c<<"\n\n";

cout << "Вывод вещественной константы: " <<PI<<"\n";

cout << "Вывод символьной константы: " <<Symbol<<"\n";

}

Стандартные потоки ввода-вывода вещественных данных

Для реализации стандартного ввода-вывода данных в С++ используется библиотечный файл iostream.h (i – input (ввод); o – output (вывод); stream – stream (поток)), в котором определены стандартные потоки ввода данных от клавиатуры cin и вывода данных на экран дисплея cout, а также соответствующие операции:

<< – операция записи данных в поток;

>> – операция чтения данных из потока.

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

cout.setf(ios::fixed);

// вывод с фиксированной точкой

cout.setf(ios::scientific);

// вывод с плавающей точкой

cout.precision(n);

// n - количество символов в дробной части

cout.width(n);

// n – ширина поля табуляции

Пример 2.

/*Программа стандартного ввода-вывода вещественных данных (переменных)*/

#include <iostream.h>

void main(){

double num;

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

cin >> num;

cout << "Вывод числа с фиксированной точкой: ";

cout.setf (ios:: fixed);

cout.precision(3); // три символа в дробной части

cout << num << ".\n";

}

Пример 3.

/*Программа стандартного ввода-вывода вещественных данных (констант)*/

#include <iostream.h>

void main(){

const float num=1234.56789;

cout << "Вывод числа с плавающей точкой: ";

cout.setf (ios::scientific);

cout.precision(5); // пять символов в дробной части

cout << num << ".\n";

}

Задания

  1. Наберите код программы из Примера 1. Сохраните код в файле с именем constant.cpp. Выполните компиляцию и запуск программы.

  2. Написать программу вывода значений переменных a (типа float), b (типа double) и с (типа long double) с плавающей точкой с пятью знаками в дробной части, в виде:

а = значение; b = значение; с = значение.

  1. Написать программу ввода значений переменных h и l (типа float), которые содержат высоту и длину прямоугольника. Выведите перед значением каждой переменной пояснительный текст (высота=, ширина=), а после – единицы измерения (см).

Домашние задания

  1. Наберите код программы из Примеров 2 и 3. Сохраните код в файлах с именами vesh1.cpp. и vesh2.cpp соответственно. Выполните компиляцию и запуск программы.

  2. Написать программу вывода значений переменных a (типа float), b (типа double) и с (типа long double) с фиксированной точкой с четырьмя знаками в дробной части, в виде:

а = значение; b = значение; с = значение.

  1. Задайте различными способами в программе основные математические (не менее трех) и физические (не менее четырех) числовых констант. Выведите их на экран с комментариями. Осуществите вывод согласно образцу:

Основание натурального логарифма е = 2.72.