
- •Г.В. Ваныкина, т.О. Сундукова
- •Часть 1. Введение в программирование Тула - 2009
- •Содержание
- •Предисловие
- •Лабораторная работа №1
- •Лабораторная работа №2 Типы данных. Стандартные потоки ввода-вывода данных
- •Лабораторная работа №3 Константы. Стандартные потоки ввода-вывода вещественных данных
- •Лабораторная работа №4 Форматированный ввод-вывод данных
- •Лабораторная работа №5 Присваивание. Арифметические операции
- •Лабораторная работа №6 Логические и поразрядные операции. Операции сравнения и определения размера
- •Лабораторная работа №7 Математические функции. Выражения
- •Математические функции – файл math.H
- •Лабораторная работа №8 Линейные программы. Преобразование типов
- •Лабораторная работа №9 Операторы выбора: оператор условия if
- •Лабораторная работа №10 Решение задач с использование оператора условия if
- •Лабораторная работа №11 Операторы перехода. Операторы выбора: оператор-переключатель switch
- •Лабораторная работа №12 Решение задач с использованием оператора-переключателя switch
- •Лабораторная работа №13 Операторы цикла: оператор цикла с параметром for
- •Лабораторная работа №14 Операторы цикла: оператор цикла с предусловие while
- •Лабораторная работа №15 Операторы цикла: оператор цикла с постусловием do … while
- •Лабораторная работа №16 Решение задач с использованием операторов цикла
- •Лабораторная работа №17 Функции пользователя
- •Лабораторная работа №18 Решение задач методом процедурной абстракции
- •Лабораторная работа №19 Рекурсивные функции
- •Индивидуальные задания Требования к оформлению индивидуальных заданий
- •Задание 1. Линейные программы
- •Задание 2. Задачи на составление логических выражений
- •Задание 3. Условный оператор
- •Задание 4. Цикл с параметром
- •Задание 5. Циклы с условиями
- •Задание 6. Числовые функции
- •Задание 7. Функции
- •Задание 8. Рекурсия
- •Литература
- •Часть 1. Введение в программирования
Лабораторная работа №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. Сохраните код в файле с именем constant.cpp. Выполните компиляцию и запуск программы.
Написать программу вывода значений переменных a (типа float), b (типа double) и с (типа long double) с плавающей точкой с пятью знаками в дробной части, в виде:
а = значение; b = значение; с = значение.
Написать программу ввода значений переменных h и l (типа float), которые содержат высоту и длину прямоугольника. Выведите перед значением каждой переменной пояснительный текст (высота=, ширина=), а после – единицы измерения (см).
Домашние задания
Наберите код программы из Примеров 2 и 3. Сохраните код в файлах с именами vesh1.cpp. и vesh2.cpp соответственно. Выполните компиляцию и запуск программы.
Написать программу вывода значений переменных a (типа float), b (типа double) и с (типа long double) с фиксированной точкой с четырьмя знаками в дробной части, в виде:
а = значение; b = значение; с = значение.
Задайте различными способами в программе основные математические (не менее трех) и физические (не менее четырех) числовых констант. Выведите их на экран с комментариями. Осуществите вывод согласно образцу:
Основание натурального логарифма е = 2.72.