11719

Організація введення/виведення данних мови програмування С++. Вивчення стандартних типів даних

Лабораторная работа

Информатика, кибернетика и программирование

Організація введення/виведення інформації. Вивчення стандартних типів даних. Мета роботи: Дослідження функцій введення виведення даних мови програмування С. Послідовність виконання роботи Завантажити та налаштувати сис

Украинкский

2015-01-27

77.5 KB

9 чел.

Лабораторна робота   №5

Тема: Організація введення/виведення інформації.

Вивчення стандартних типів даних.

Мета роботи: Дослідження функцій введення - виведення даних мови програмування С++.

Послідовність виконання роботи

Завантажити та налаштувати систему Borland C++ 5.02.

Застосування функції потокового виводу даних.

У C++ виведення даних на екран виконується за допомогою об'єкту стандартного потоку  виведення  cout,  а  введення  з  клавіатури  здійснюється  за допомогою  об'єкту стандартного потоку введення cin. Для використання цих об'єктів необхідно підключити головний файл <iostream.h>. Для обробки форматного введення-виводу за допомогою так званих маніпуляторів потоку необхідно підключити головний файл <iomanip.h>.

Розглянемо приклад використання функції cout :

 

#include <iomanip.h>  // підключення бібліотеки засобів

                          //  маніпулювання потоками мови С++

#include <iostream.h> // підключення бібліотеки стандартних

                           // об'єктів і операцій з потоками

                          // введення-висновку засобами мови С++

 main()

{

int age=22;          // вік Максима 

float income=534.72; // прибуток Максима 

cout<<'\n'

<<"Вік Максима : "<<age<<'.'

<<" Його прибуток: $"<<setprecision(2)

<<income<<'.'<<endl;

return 0;

}

 

Результат роботи програми :

 

Вік Максима : 22. Його прибуток: $534.72.

 

Вміщення в потік виконується за допомогою операції помістити в потік <<. В даному прикладі об'єкту cout за допомогою операції << передаються значення, які необхідно вивести на екран. Операція << є "більше інтелектуальною" в порівнянні з функцією printf, оскільки визначає тип даних, що виводяться. Для виведення декількох об'єктів операція << використовується в зчепленій формі.

Маніпулятор потоку endl викликає перехід на новий рядок і очищає буфер виводу, тобто примушує буфер негайно вивести дані, навіть якщо він повністю не заповнений. Очищення (скидання) буфера виводу може бути також виконане маніпулятором flush.

При виведенні значення змінної income використовується маніпулятор потоку  setprecision.  Використання  setprecision(2) - це  вказівка формату для виводу тільки двох цифр після десяткової точки. Оскільки маніпулятор setprecision приймає параметр, він називається параметризированным маніпулятором потоку.

Для встановлення ширини поля виводу може бути використаний маніпулятор потоку setw, що приймає як параметр число символьних позицій, в які буде виведено значення.

3. Застосування функції форматного введення даних.

Введення потоку здійснюється за допомогою операції узяти з потоку >>. Ця операція застосовується до об'єкту стандартного потоку введення cin. Розглянемо приклад використання об'єкту cin :

 

#include <iostream.h>

 main()

{

int weight, // вага

height;     // зріст

cout<<"Введіть Вашу вагу :"<<endl;

cin>>weight;

cout<<"Введіть Ваш зріст: "<<endl;

cin>>height;

cout<<"\nBaша вага = "<<weight<<';'<<endl

   <<"Ваш зріст = "<<height<<'.'<<endl;

 return 0;

}

 

Тут  зчитувані  значення  розміщуються  в  змінних  weight  і height. В процесі введення послідовність символів, набрана на клавіатурі, перетвориться в необхідне внутрішнє представлення (у даному прикладі цілочисельне).

4. Приклад виконання роботи

Організувати введення і виведення цих заданих типів, забезпечивши роздруки відповідними заголовками.

Початкові дані: i=-71, j=021, k=0x2F, X=-41.21, Y=21.345, z=18.04.

/****************************************************/

/*              Лабораторна робота №5                   */

/*         Функції потокового виводу даних       */

/*         Приклад виконання. Варіант №30        */

/****************************************************/              

#include <iostream.h>

#include <iomanip.h>

main()

{

 int i, j, k;

 float x, y, z;

 //   // робота з цілими числами

 cout<<"Введіть ціле десяткове число \n";

 cin>>i;

 cout<<"Введіть ціле вісімкове число"<<endl;

 cin>>oct>>j;

 cout<<"Введіть ціле шістнадцятиричне число \n";

 cin>>hex>>k;

////робота в десятковому форматі

 cout<<"Десяткові цілі= \n";

// //виведення цілого десяткового зі знаком

 cout.setf(ios::showpos);//встановлення виведення даних зі знаком

 cout<<i;

 cout.unsetf(ios::showpos); //відміна виведення знаку

////виведення цілого 8-ного в десятковому виді з шириною поля 6

////і вирівнюванням по правому краю

 cout.width(6);

 cout.dec;

 cout<<j<<' ';

////виведення цілого 16-ного в десятковому виді з шириною поля 8

// // і вирівнювання по лівому краю

 cout.setf(ios::left);

 cout<<setw(8)<<dec<<k;

 cout.setf(ios::right); //установка вирівнювання по правому краю

////робота в 8-ному форматі

 cout<<"\nВосьмеричні цілі= \n";

// //виведення i без вказівки ширини і j з шириною 6

 cout.oct;

 cout<<i<<setw(6)<<oct<<j;

////виведення k з шириною поля 7 і заповненням нулями

 cout.fill('0');

 cout<<setw(7)<<oct<<k;

 cout.fill(' ');//встановлення символу заповнення - пропуск

 cout<<"\nШістнадцятиричні цілі= \n";

// //виведення чисел в 16-ній СО з буквами у верхньому регістрі

// //і з префіксом основи системи обчислення

 cout.setf(ios::uppercase);

 cout.setf(ios::showbase);

 cout<<hex<<i<<setw(6)<<hex<<j<<hex<<setw(6)<<k;

 cout<<"\nПриведення типів:\n";

// //виведення числа з плаваючою крапкою без відкидання

// //дробової частини, рівній нулю

 cout.setf(ios::showpoint);

 cout<<float(i)<<endl;

 cout.unsetf(ios::showpoint);

// //виведення числа з плаваючою крапкою з відкиданням(за умовч.)

// //дробової частини, рівній нулю

   cout<<float(i)<<endl;

//  // робота з плаваючими числами

 cout<<"\nУведіть три дійсні числа \n";

 cin>>x>>y>>z;

 cout<<"Дійсні числа=\n";

 cout.width(8);

 cout.fill('0');

 cout<<x<<endl;

// //виведення чисел з шириною поля 9, кількістю значущих цифр 5

 // //і символом заповнення - пропуском

 cout.width(9);

cout.setf(ios::fixed);

 cout.precision(5);

 cout<<setfill(' ')<<y<<endl<<z;

 cout<<"\nЭкспоненціальний запис ";

////виведення чисел з шириною поля 8, величиною дробової частини 5

////і в експоненціальній формі

 cout.width(8);

 cout.setf(ios::scientific);

 cout<<setprecision(5)<<x;

 cout.unsetf(ios::scientific);

}

               Результат роботи програми

Виконати:

  1.  Введіть в системі ВС наведений приклад програми.
  2.  Перевірте текст програми на помилки та завантажте програму на виконання.
  3.  Проаналізуйте результати виконання програми.

5. Контрольне завдання

Організувати введення і виведення  заданих типів, забезпечивши виведення даних відповідними заголовками. Початкові дані беруться з таблиці. 1 (лабораторної роботи №4).

                                                                  

Виконати:

  1.  Сформувати математичну модель вирішення задачі.
  2.  Виявити змінні і дати їм характеристику.
  3.  Скласти алгоритм рішення задачі.
  4.  Скласти програму (описати алгоритм за правилами мови програмування ВС++).
  5.  Записати файл програми на диск.
  6.  Продемонструвати викладачеві результати виконання роботи.

Питання для контролю

  1.  Що таке потік?
  2.  Які стандартні потоки ви знаєте?
  3.  Як здійснюється потокове введення даних? Приклади.
  4.  Як здійснюється потокове виведення даних? Приклади.
  5.  Що таке прапори форматування, перерахуйте їх?
  6.  Що таке маніпулятори?           
  7.  Як визначити стан потоку?


 

А также другие работы, которые могут Вас заинтересовать

74065. Аналитические группы катионов 15.03 KB
  К I аналитической группе относятся катионы щелочных металлов калия K натрия N лития Li и катион аммония NH4. Вследствие этого катионы данной группы не имеют группового реагента и открывают их только с помощью частных реакций. Перед проведением частных реакций на катионы I аналитической группы ионы других групп удаляют методом осаждения например в виде карбонатов в нейтральной или щелочной среде. Ко II аналитической группе относятся катионы дающие малорастворимые соединения при взаимодействии с соляной кислотой и ее солями.
74066. Государственно-правовое развитие Англии в Новейшее время 121 KB
  Эволюция государства и права в новейшее время. Основные тенденции развития государства и права в ХХ веке. Новейший период в истории государства и права связан с серьезными изменениями в политической системе многих стран обусловленными глубокими социально-экономическими причинами. Основное назначение современного права состоит в том чтобы сохраняя основные устои общества трансформировать его приспособить к новым общественным потребностям.
74067. Соединенные Штаты Америки в Новейшее время 137.5 KB
  Государственное развитие США в Новейшее время. Право США в Новейшее время. Право США в Новейшее время. Особенности государственного развития США в Новейшее время.
74068. Франция в Новейшее время 99 KB
  Развитие государственного устройства Франции в Новейшее время. Право Франции в Новейшее время. Развитие государственного строя в период между двумя мировыми войнами Государственный строй Франции после Первой мировой определялся Конституцией 1875 г. В 30е годы в условиях острого социального и экономического кризиса во Франции активизируется деятельность профашистских организаций...
74069. Государственное развитие Германии в ХХ веке 140.5 KB
  Государственное развитие Германии в ХХ веке. Право Германии в Новейшее время. Революция 1918 года в Германии. Поражение Германии в Первой мировой войне внутренние противоречия влияние событий в России привели к революционному взрыву в ноябре 1918 г.
74070. Государство и право Китая и Японии в Новое и Новейшее время 168 KB
  Парламент Китая под нажимом Юань Шикая совершившего государственный переворот вносит во Временную конституцию изменения целью которых было расширить права президента и ограничить права парламента. еще больше расширили права президента. Провозглашалось равенство граждан перед законом и национальное равноправие гарантировались...
74071. Предмет, методы и основные источники «Истории права зарубежных стран» 48.5 KB
  Предмет методы и основные источники Истории права зарубежных стран. Истоки права. История ПЗС иногда ее называют Всеобщая история государства и права – изучает возникновение оформление и функционирование правовых обычаев и законов а также их последующие изменения у разных народов мира в отдельные периоды от древности до современной эпохи...
74072. Право Древнего Востока 88.5 KB
  Право Древнего Востока. Право Древнего Египта. Право Древнего Вавилона. Это в свою очередь сказалось на застойном характере восточных социальных структур на отсутствии на Востоке условий для развития тех политических и правовых институтов которые были призваны обслуживать нужды нарождавшегося гражданского общества: общественное самоуправление с правами и обязанностями каждого полноправного гражданина правовые гарантии его интересов прав и свобод.
74073. Право Юго-Восточной Азии в античное время 89.5 KB
  Особое место в истории Индии занимает Магадско-Маурийский период (IV-II вв. до н.э.), отмеченный созданием (впервые в истории Индии) объединенного государства - Магатха. Наивысшего могущество оно достигло при правлении династии Маурьев, и особенно, при Чандрагупте I (основателе династии) и Ашоке.