- •Міністерство освіти і науки україни
- •Лабораторна робота № 1. Знайомство з інтегрованим середовищем розробки (іср) “qt-creator”
- •Короткі відомості про іср “qt-creator”
- •Головне меню середовища
- •Панель режимів робіт
- •Панель доступу до результатів опрацювання проекту
- •Створення проекту
- •Панель редагування програм
- •Автоматичне вирівнювання тексту програми
- •Коментарі дотексту програми
- •Повернення у режим редагування
- •Функція main()
- •Ще один приклад простої програми
- •Збереження проекту
- •Етапи виконання програми
- •Типи даних
- •Арифметичні типи даних
- •Основні арифметичні типи
- •Модифіковані арифметичні типи
- •Граничні значення даних цілочислових типів даних
- •Переліки
- •Цілочислові константи
- •Символьні константи
- •Константи дійсних типів
- •Описи змінних
- •Макроконстанти
- •Операція розміру sizeof
- •Арифметичні операції
- •Операції присвоєння Проста операція присвоєння
- •Комбіновані присвоєння
- •Унарні присвоєння
- •Узгодження типів
- •Арифметичні перетворення
- •Перетворення типів в операціях присвоєння
- •Явне перетворення типів
- •Бібліотека математичних функцій cmath
- •Використання об’єкту cin для введення даних
- •Форматування арифметичних даних під час виведення
- •Зміна кольорів консолі та керування курсором
- •Завдання на лабораторну роботу
- •Правила написання функцій
- •Виклик функції
- •Прототип функції
- •Прототипи бібліотечних функцій
- •Способи передачі параметрів у функції
- •Передача параметрів за значенням
- •Передача параметрів через посилання
- •Області оголошення та доступу до імен
- •Глобальні та локальні змінні
- •Глобальна чи локальна змінна?
- •Специфікатор statsc
- •Макроси з параметрами
- •Реализація проекту «function»
- •Підключення допоміжних файлів
- •Створення макросу з параметрами
- •Створення прототипів функцій
- •Функція main() програмного файлу
- •Функція f1(), що повертає значення
- •Операції над даними логічного типу
- •Логічні вирази
- •Алгоритми з розгалуженнями
- •Програмування розгалужень Оператор розгалуження if…else
- •Умовна операція
- •Оператор виборуswith
- •Оператор переходу goto
- •Функція main() програмного файлу
- •Рекомендована література
- •Лабораторна робота № 5. Побудова циклів з операторми „while” і „do...While”
- •Короткі теоретичні відомості
- •Циклічні алгоритми
- •Оператор while
- •Оператор do…while
- •Переривання циклу
- •Ітераційні алгоритми
- •Приклад ітераційного алгоритму для обчислення кубічного кореня
- •Алгоритми обчислення сум нескінченних рядів
- •Створення проекту «while_do»
- •Початковий інтерфейс проекту
- •Допоміжні файли
- •Прототипи функцій
- •Функція main() програмного файлу
- •Функція обробки номеру варіанта
- •Функції для обчислення кубічного кореня
- •Функції для обчислення синуса
- •Особливості використання циклу for
- •Випадкові числа
- •Табулювання функцій
- •Завдання на лабораторну роботу
- •Приклад Створенняпроекту«циклfor»
- •Розробка функції для вирішення головної задачі
- •Обробка послідовності випадкових чисел
- •Вимоги до звіту
- •Контрольні питання
- •Рекомендована література
Використання об’єкту 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";
Зміна кольорів консолі та керування курсором
Ці питання виходять за межі нашої програми, але якщо у когось є бажання цим займатися, то можна у проект додати нижченаведений фрагмент програми, або створити заголовний файл з таким змістом і підключати його директивою #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();
}