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.  Як визначити стан потоку?


 

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

81463. Анаэробный распад глюкозы (анаэробный гликолиз). Гликолитическая оксиредукция, пируват как акцептор водорода. Субстратное фосфорилирование. Распространение и физиологическое значение этого пути распада глюкозы 121.38 KB
  Реакции анаэробного гликолиза При анаэробном гликолизе в цитозоле протекают все 10 реакций идентичных аэробному гликолизу. Восстановление пирувата в лактат катализирует лактатдегидрогеназа реакция обратимая и фермент назван по обратной реакции. С помощью этой реакции обеспечивается регенерация ND из NDH без участия митохондриальной дыхательной цепи в ситуациях связанных с недостаточным снабжением клеток кислородом. Таким образом значение реакции восстановления пирувата заключается не в образовании лактата а в том что данная...
81464. Биосинтез глюкозы (глюконеогенез) из аминокислот, глицерина и молочной кислоты. Взаимосвязь гликолиза в мышцах и глюконеогенеза в печени (цикл Кори) 215.46 KB
  Глюконеогенез процесс синтеза глюкозы из веществ неуглеводной природы. Его основной функцией является поддержание уровня глюкозы в крови в период длительного голодания и интенсивных физических нагрузок. Эти ткани могут обеспечивать синтез 80100 г глюкозы в сутки.
81465. Представление о пентозофосфатном пути превращений глюкозы. Окислительные реакции (до стадии рибулозо-5-фосфата). Распространение и суммарные результаты этого пути (образование пентоз, НАДФН и энергетика) 135.5 KB
  Окислительные реакции до стадии рибулозо5фосфата. Распространение и суммарные результаты этого пути образование пентоз НАДФН и энергетика Пентозофосфатный путь называемый также гексомонофосфатным шунтом служит альтернативным путём окисления глюкозо6фосфата. Пентозофосфатный путь состоит из 2 фаз частей окислительной и неокислительной.
81466. Свойства и распространение гликогена как резервного полисахарида. Биосинтез гликогена. Мобилизация гликогена 173.81 KB
  Биосинтез гликогена. Мобилизация гликогена. Таким образом в молекуле гликогена имеется только одна свободная аномерная ОНгруппа и следовательно только один восстанавливающий редуцирующий конец.
81467. Особенности обмена глюкозы в разных органах и клетках: эритроциты, мозг, мышцы, жировая ткань, печень 110.65 KB
  Метаболизм глюкозы в эритроцитах. В эритроцитах катаболизм глюкозы обеспечивает сохранение структуры и функции гемоглобина целостность мембран и образование энергии для работы ионных насосов. Около 90 поступающей глюкозы используется в анаэробном гликолизе а остальные 10 в пентозофосфатном пути.
81468. Представление о строении и функциях углеводной части гликолипидов и гликопротеинов. Сиаловые кислоты 110.57 KB
  Сиаловые кислоты Гликопротеины – сложные белки содержащие помимо простого белка или пептида группу гетероолигосахаридов. К полипептидуприсоединяются гетероолигосахаридные цепи содержащие от 2 до 10 реже 15 мономерных остатков гексоз галактоза и манноза режеглюкоза пентоз ксилоза арабиноза и конечный углевод чаще всего представленный Nацетилгалактозамином Lфукозой или сиаловой кислотой; в отличие от протеогликанов гликопротеины не содержат уроновых кислот и серной кислоты. Сиа́ловые кисло́ты ациальные производные...
81469. Наследственные нарушения обмена моносахаридов и дисахаридов: галактоземия, непереносимость фруктозы и дисахаридов. Гликогенозы и агликогенозы 139.56 KB
  Гликогенозы и агликогенозы Нарушения метаболизма фруктозы Неактивный фермент Блокируемая реакция Локализация фермента Клинические проявления и лабораторные данные Фруктокиназа Фруктоза АТФ → Фруктозе1фосфат АДФ Печень Почки Энтероциты Фруктоземия фруктозурия Фруктозе1фосфатальдолаза Фруктозе1фосфат → Дигидроксиацетон3 фосфат Глицеральдегид Печень Рвота боли в животе диарея гипогликемия Гипофосфатемия фруктоземия гиперурикемия хроническая недостаточность функций печени почек. Наследственная непереносимость...
81470. Важнейшие липиды тканей человека. Резервные липиды (жиры) и липиды мембран (сложные липиды). Жирные кислоты липидов тканей человека 113.78 KB
  Жирные кислоты липидов тканей человека. Жирные кислоты структурные компоненты различных липидов. В составе триацилглицеролов жирные кислоты выполняют функцию депонирования энергии так как их радикалы содержат богатые энергией СН2группы. В составе фосфолипидов и сфинголипидов жирные кислоты образуют внутренний гидрофобный слой мембран определяя его свойства.
81471. Незаменимые факторы питания липидной природы. Эссенциальные жирные кислоты: ω-3- и ω-6-кислоты как предшественники синтеза эйкозаноидов 125.89 KB
  Эссенциальные жирные кислоты: ω3 и ω6кислоты как предшественники синтеза эйкозаноидов. В эту группу входит комплекс полиненасыщенных жирных кислот которые принимают значительное участие в биологических процессах: линолевая кислота омега6 линоленовая кислота омега3 арахидоновая кислота омега6 эйкозапентаеновая кислота омега3 докозагексаеновая кислота омега3 Полиненасыщенные жирные кислоты препятствуют развитию атеросклероза и снижают уровень триглицеридов липопротеидов низкой плотности в крови холестерина и его...