C++: Лекция 08
Введення-виведення
У мові|язиці| C++ засоби введення-виводу|висновку| реалізовано у вигляді заздалегідь визначених функцій і|та| заздалегідь оголошених класів, що входять до складу стандартних бібліотек введення-виводу|висновку|. Тому для їх використання необхідна додаткова інформація, що розташована у файлі iostream.h., який знаходиться у каталозі компілятора INCLUDE
Часто послідовність байтів називають потоком байтів або просто потоком.
Якщо програму розглядати|розглядувати| як систему з|із| входами і|та| виходами, то потоки - це те, що зв'язує програму із|із| зовнішнім світом. Розрізняють вхідні і|та| вихідні потоки.
cin
(вхідний
потік)
Таким чином, деяку кількість байтів можна направити|скеровувати| від пристрою|устрою| (здійснити введення) до програми, або з пам'яті до пристрою|устрою| (здійснити виведення|висновок|).
Всі операції виконуються через буферні ділянки пам'яті - ділянки, де розміщуються використовувані програмою дані перед тим, як вони будуть прочитані програмою або передані зовнішньому пристрою|устрою|. Робота по обслуговуванню буферів виконується ОС. У потоці нічого не відомо про тип|типа| даних, які утворюють цей потік. Інтерпретація інформації, що передається в потоці, є завданням|задачею| програміста.
Введення даних - об’єкт cin.
Задача. Ввести|запроваджувати| два числа: ціле -31 і|та| дробове - 12.78.
Варіант 1.
#include <iostream.h>
void main()
{
int a;
double b;
cin>>a;
cin<<b;
}
Тут використовується об’єкт cin. У файлі iostream.h знаходяться|перебувають| оголошення і|та| визначення класу для об'єкту cin |.
Після запуску програми введення повинне закінчуватися клавішею <Enter>.
Способи вводу чисел :
31<enter>
12.78<enter>
31<npo6eл>12.78<enter>
31rl2.78<enter>
Число 31 потрапить в змінну a, а дробове число - ні. Якщо неприпустимий символ буде перед першим числом, то введення взагалі не відбудеться.
Таким чином, роздільником чисел в послідовності символів є пропуск|прогалина|, а також новий рядок (клавіша <Enter> ), табуляція.
Якщо, замість будь-якого пропуску|прогалини|, ви хочете використовувати свій символ, необхідно задати його наступним чином:
...
int a;
double b;
char symb;
cin>>a>>symb>>b;
...
Ввести числа можна наступним образом:
31г12.78 або 31;12.78
Ми можемо вводити|запроваджувати| досить|достатньо| довгу послідовність символів-цифр, що розділяються пропусками|прогалинами|, але|та| в програму потрапить|попаде| рівно стільки чисел, скільки змінних написано в операторах введення.
Це пояснюється|тлумачить| тим, що потоки буферизуються. Символи, що натискаються|натискують| користувачем на клавіатурі, спочатку потрапляють в проміжну пам'ять (буфер введення), і|та| тільки|лише| потім виконується перенесення|перенос| в змінні нашої програми. Аналогічно працює і вивід|висновок| - після перетворення символи заносяться в буфер, а вже з|із| буфера виводяться на пристрій|устрій|.
Виведення - об’єкт cout .
Задача: Вивести на єкран
Это 5: 5
Это большое число big: 70000
Это сумма чисел первого и второго числа : 8
Это дробь: 0.625
Это тоже дробь (5/8) : 0.625
Это очень большое число: 4.9е+7
Это очень маленькое число 1.7е-107
#include <iostream.h>
#include <windows.h>
Void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
//
int ibig, first,second;
float drob;
double dbig,dsmall;
// ------------------------------------------Вывод данных
cout<<'\n'; //переход на новую строку
cout<<endl; //переход на новую строку
cout<<"Это 5:"<<5<<endl;
cout<<"это больщое целое число: "<<ibig<<endl;
cout<<"это сумма чисел: "<<first<<"и "<<second<<": "<<first+second<<endl;
cout<<"это дробное число: "<<drob<<endl;
cout<<"это тоже дробное число: "<<45/125<<endl;
cout<<"это больщое дробное число: "<<dbig<<endl;
cout<<"это маленькое дробное число: "<<dsmall<<endl;
}
Символи і числа
Mіж значенням 5 і символом "5" є різниця. Символу "5" відповідає значення 53, так само як букві "а" відповідає число 97.
Спеціальні управляючі символи
char| tabCharacter| = '\t|'; // вставка символу табуляції
\n перехід на новий рядок
\t Табуляція
\b Повернення на одну позицію
\" Подвійна лапка
\' Одиночна лапка
\? Знак питання
\\ Зворотний слеш
Лінійні програми
Якщо в програмі усі оператори виконуються послідовно, один за іншим, така програма називається лінійною.
Приклад 1|зразок|: Вичислити ціну товару з урахуванням|з врахуванням| торговельної|торгової| надбавки, виражену|виказувати| у відсотках|процентах| .
Вхідні дані: ціна товару і|та| надбавка.
Вихідні дані: загальна|спільна| ціна товару
Алгоритм розв’язання :
Ввести|запроваджувати| з клавіатури ціну надбавки;
Задати величину надбавки;
Вичислити загальну|спільну| ціну товару;
Вивести результат на екран;
#include <iostream.h>
#include <windows.h>
Void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
float Price, tax=6.75; // tax – цена надбавки
cout<<"Введите цену: "; // вывод на экран
cin>>Price; // ввод с клавиатуры
Price=Price+(Price*tax/100);
cout<<"\nPrice="<<Price;
}
При Price=10, ціна з урахуванням|з врахуванням| надбавки буде = 10.675. В даному випадку, після коми вистачить двох цифр.
Приклад 2|зразок|: Написати програму, яка переводить|перекладає| температуру в градусах за Фаренгейтом в градуси Цельсія .
Вхідні дані ввести з клавіатури. Результат обчислення вивести на екран.
Рекомендований вид|вигляд| екрану під час виконання програми (дані, які вводить користувач, виділені напівжирним шрифтом).
-
Перевід|перекладає| температури в градусах за Фаренгейтом в градуси Цельсія
Введіть|запроваджуйте| початкові|вихідні| дані:
Температура за Фаренгейтом (град) -> 0.5
Температура за Фаренгейтом: ____; в градусах Цельсія _____ .
Примітка:
C = 5/9(F - 32)
де С|із| - температура за Цельсієм, a F - температура за Фаренгейтом.
Розробка функції.
Вхідні дані : температура за Фаренгейтом F - дійсне число;
Вихідні дані: температура за Цельсієм C - дійсне число.
Алгоритм розв’язання задачі в словесній формі:
Вивести на екран заголовка програми і запрошення введення;
Ввести з клавіатури вхідні дані;
вичислити значення температури за Фаренгейтом;
Вивести температуру за Цельсієм на екран монітора.
Блок-схема алгоритму:
Текст програми :
#include <iostream.h>
#include <windows.h>