Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Ч1(программирование).doc
Скачиваний:
52
Добавлен:
01.03.2016
Размер:
1.83 Mб
Скачать
      1. Використання об’єкту cin для введення даних

У мові С++ введення даних з консолі розглядається як потік символів з клавіатури у програму. Об’єкт cin і представляє цей потік у програмі.

Операція >> бере інформацію з цього потоку і перетворює її відповідно до типу змінної, що отримує цю інформацію.

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

сin >> x;

cin>>a>>b

>>c;

У першому випадку об’єкт забезпечує введення даних у змінну х.

У другому – до змінних a,b,c.

Об’єкт починає працювати після того, як користувач введе дані з клавіатури і натисне клавішу “Enter”.Вхідні дані розділяють пробілами, табуляцією або переходом до нового рядка.

Форматування арифметичних даних під час виведення

Точність представлення чисел дійсного типу дуже висока. Результат обчислень може мати велику кількість значущих цифр. Припустимо, що в результаті обробки результатів експерименту на лабораторній роботі з фізики, ми отримали значення деякої величини рівне 9.85432, хоча вихідні дані для розрахунку мали точність значно меншу. Такий результат краще форматувати перед виведенням, округливши до необхідної кількості цифр після крапки

Об’єкт cout можна налаштовувати для форматування за допомогою його методів setf (), precision (),.width(), fill () та інші.

Докладнішу інформацію про форматування арифметичних даних під час виведення за допомогою cout можна знайти у [2],стр.911- 927, а також на сайті:

http://www.c-cpp.ru/books/formatirovanie-s-pomoshchyu-funkciy-chlenov-ios

Тут ми наведемо як приклад тільки фрагмент програми, який ви можете додати до функції main() і подивитися результат.

cout << "Науковий формат i знак + :\n";

cout.setf (ios::showpos);

cout.setf (ios::scientific);

cout <<123 << " " << 123.23<<" " << 123 <<"\n";

cout<<"10 значущих цифр пiсля коми:\n";

cout.precision (10);

cout<<1/3.0<<" " <<0.1<<"\n";

cout<<"Ширина поля 10 знакiв:\n";

cout.width(10);

cout << 123 <<" "<< 123.23<<" "<<123 << "\n";

cout<<"Використання символiв заповнювачiв:\n";

cout.fill ('#');

cout.width(10);

cout <<123<< " " << 123.3<< " "<<123<< "\n";

      1. Зміна кольорів консолі та керування курсором

Ці питання виходять за межі нашої програми, але якщо у когось є бажання цим займатися, то можна у проект додати нижченаведений фрагмент програми, або створити заголовний файл з таким змістом і підключати його директивою #includeдо будь якого проекту.

#define WIDTH 80 //ширина консолі у символах

#define HEIGHT 25 //висота консолі у символах

//перелік кольорів консолі

enum consoleColors{

BLACK, BLUE, GREN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY,

DARKGRAY, LIGHTBLUE, LIGHTGREN, LIGHTCYAN, LIGHTRED,

LIGHTMAGENTA,YELLOW, WHITE

};

/* Пояснення: HANDLE (дескриптор, опис чогось) - число, що задає номер якого ресурсу (тут ресурс - це стандартний пристрій виведення на консоль). Оскільки користувач працює з дескриптором, а не з номером, то номер може змінюватись, але це не позначиться на роботі з пристроєм. */

// Отримуємо номер консолі

HANDLE hdlConsole = GetStdHandle(STD_OUTPUT_HANDLE);

//функція зміни кольору

void setColors(int textColor, int backColor)

{

backColor <<= 4; //backColor має перейти у старший напівбайт

WORD color = backColor | textColor; //Об'єднуємо кольори

SetConsoleTextAttribute(hdlConsole, color); //Передаємо кольори консолі

}

//функція визначення положення курсору

void getCursorPos(int &x, int &y){

CONSOLE_SCREEN_BUFFER_INFO bi;

GetConsoleScreenBufferInfo(hdlConsole, &bi);

x=bi.dwCursorPosition.X;

y=bi.dwCursorPosition.Y;

}

//функція зміни положення курсору

void gotoXY(int X, int Y)

{

COORD coord = { X, Y };

SetConsoleCursorPosition(hdlConsole, coord);

}

Якщо додати цей код до програми, то після цього можна змінювати кольори і керувати положенням курсору.

Ось приклад:

#include <windows.h>

#include <iostream>

using namespace std;

//ТУТ СЛІД ДОДАТИ ВИЩЕНАВЕДЕНИЙ ТЕКСТ, АБО #INCLUDE

int main(int argc, char *argv[])

{

QCoreApplication a(argc, argv);

setColors(YELLOW, BLUE);

system("cls"); // очищаємо екран кольором BLUE

//Заголовок вiкна консолi

SetConsoleTitleA("Змiна кольорiв консолi та керування курсором на екранi");

string s="Тут центр екрану консолi";

int x = (WIDTH - s.length())/2;

int y = HEIGHT/2-1;

gotoXY(x,y);

cout<<s<<"\n";

return a.exec();

}