Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Манипуляторы и форматирование ввода-вывода



В программах часто требуется осуществлять ввод и вывод данных в определенном формате. Для этого обычно используются так называемые манипуляторы, основные из которых приведены в табл. 5.1. Некоторые из них имеют аргумент (тип). Для использования последних к программе требуется подключить заголовочный файл <iomanip.h>.

С помощью манипуляторов легко управлять представлением выводимой информации. В частности манипулятор setw (int n) удобен при формировании таблиц в циклах.

Например:

..........

cout<<setprecision (2); //две цифры после запятой

for (int i=0; i<10; i++)

cout<<setw (6) <<a[i]<<endl; //ширина поля – 6 цифр

..........

Таблица 5.1

Манипуляторы

Манипуляторы Действия
endl Переход на новую строку при выводе
dec Вывод чисел в десятичной системе (действует по умолчанию)
hex Вывод чисел в шестнадцатеричной системе
oct Вывод чисел в восьмеричной системе
setw (int n) Устанавливает минимальную ширину поля в n символов
setprecision (int n) Устанавливает количество цифр после запятой при выводе вещественных чисел
setfill (int n) Устанавливает символ-заполнитель с кодом n; этим символом выводимое значение будет заполняться до необходимой ширины
setbase (int n) Устанавливает систему счисления n (2, 8, 10,16)

Пример 1. Получить вещественную матрицу А(7,7), первая строка которой задается формулой a1j=2,13j+3,7, (j=1,..,7), вторая строка задается формулой , (j=1,..,7), а каждая следующая строка есть сумма двух предыдущих. Определить в четных столбцах матрицы А число элементов, не принадлежащих интервалу (5, 10), а в седьмой строке определить произведение отрицательных элементов в нечетных столбцах матрицы А.

Программа для решения данной задачи приведена в лист. 5.1.

Листинг 5.1. mass_1. сpp

#include <iostream.h>

#include <math.h>

#include <iomanip.h> // Включение заголовочного файла, подключающего

// манипуляторы

void main()

{

double a[8][8];

//Получение матрицы a

for(int i=1;i<8;i++)

for(int j=1;j<8;j++)

{

if(i==1) a[i][j]=2.13*j+3.7;

if(i==2) a[i][j]=j-29/(2+1.3/j);

if(i>2) a[i][j]=a[i-1][j]+a[i-2][j];

}

// Определение числа элементов в четных столбцах матрицы a,

// не принадлежащих интервалу (5,10)

int k=0;

for(int i=1;i<8;i++)

for(int j=1;j<8;j++)

if ((j%2==0)&&((a[i][j]<5)||(a[i][j]>10))) k++;

//Определение произведения отрицательных

//элементов нечетных столбцов в 7 строке матрицы a

double p=1;

for(int i=7,j=1;j<8;j++)

if((a[i][j]<0)&&(j%2==1)) p*=a[i][j];

//Вывод результатов вычислений

//Вывод матрицы a

cout<<"Матрица a:"<<"\n";

cout<<setfill('.') // Введение символов '.' в поле вывода

<<setprecision(4); //Установка точности вывода

for(int i=1;i<8;i++)

for(int j=1;j<8;j++)

{cout<<" "<<setw(8)<<a[i][j]; //Фоматирование вывода

if(j==7)cout<<"\n"; // Формирование строки

}

cout<<"\ nЧисло элементов в четных столбцах матрицы a,\n";

cout<< " не принадлежащих интервалу (5,10):" <<endl;

cout<<"k="<<k<<"\n";

cout<<"\ nПроизведение отрицательных элементов в 7 строке\n ";

cout<<" нечетных столбцов матрицы a:" <<endl;

cout<<"p="<<p;

}





Дата публикования: 2014-11-02; Прочитано: 546 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...