ТОП 10:

Повертаємі значення і прототипи функцій



C++ потребує прототипу для кожної написаної функції.

Прототипи гарантують відповідність типів даних переданих параметрів і повертаємих значень функції.

Якщо необхідно повернути значення у функцію, що викликає, поміщайте повертаємі значення після оператораreturn.

Попередження: не повертайте глобальних змінних, вони відомі всій програмі.

Функція може одержувати більше одного параметра, а повертати у функцію, що викликає, тільки одне значення.

Приклад: знаходження min і max із 2-х значень.

 

#include <iostream.h>

 

Int maximum(int num1, int num2)

{

int max;

max = (num1 > num2) ? (num1) : (num2);

return (max);

}

 

Int minimum(int num1, int num2)

{

int min;

min = (num1 < num2) ? (num1) : (num2);

return (min);

}

 

Void main()

{

int num1, num2;

int min, max;

cin >> num1 >> num2;

max = maximum(num1,num2);

min = minimum(num1,num2);

cout << min<<”\n” << max;

}

Прототипи функцій

Слово прототип визначають як “модель”. У C++ прототип функції є моделлю дійсної функції. Ви повинні описати прототипи усіх функцій ваших програм.

Розроблювачі C++ думали, що усі функції повинні мати прототип. Не треба описувати прототипи бібліотечних функцій, тому що розроблювачі помістили такі прототипи в заголовні (header) файли на вашому диску.

Ви включали прототип cout і cin у кожну програму за допомогою оператора:

 

#include <iostream. h>

 

Файл iostream. h містить прототипи багатьох функцій введення-виведення C++. Використовуючи опис прототипів C++ гарантує, що зможете передати коректні значення в потрібні функції.

У попередніх прикладах ми розглядали функції перед основною функцією main(). Це поганий стиль, проте не потрібен прототип. Ознакою гарної програми є опис прототипів, тоді функції можна поміщати після основної функції main().

Приклад: Повернення символу по ASCII - коду.

 

#include <iostream.h>

 

char ascii(int num);

 

Void main()

{

int num;

char asc_char;

cin >> num;

asc_char = ascii(num);

cout << asc_char;

}

 

Char ascii(int num)

{

char asc_char;

asc_char = (char) num;

return (asc_char);

}

 

 

ТЕМА 6: ЗОВНІШНІ ПРИСТРОЇ І СИМВОЛЬНЕ ВВЕДЕННЯ/ВИВЕДЕННЯ

ПЛАН

1. Загальна концепція.

2. Функції символьного введення-виведення.

3. Символьні функції.

4. Рядкові функції.

5. Числові функції.

6. Функції роботи з датою та часом.

 

Загальна концепція

На відміну від інших мов програмування, С++ не має команд введення-виведення. Мова C++ характеризується високою переносимістю: це означає, що програма, яка компілюється і виконується на одному виді комп’ютера, може компілюватися і виконуватися на інших із мінімальними модифікаціями. Розроблювачі компілятора також пишуть функції введення/виведення для кожного типу машини. Тому, коли ваша програма на C++ виводить на екран символ, то вона буде працювати незалежно від того, із яким терміналом вона має справу: DOS або UNIX.

Використання потоків введення-виведення дозволяє використовувати ті ж самі функції для введення, як із клавіатури, так і з модему. Ви можете використовувати ті ж функції для запису у файл на диску, виведення на принтер або на екран (табл. 6.).

 

 

Таблиця 6

Стандартні пристрої в C++

Опис Ім’я C++
Екран stdout
Клавіатура stdin
Принтер stdprn
Послідовний порт stdaux
Повідомлення про помилки stderr

 

Форматоване введення-виведення на принтер.

Виведення на принтер результатів виконання програми легко здійснити за допомогою об’єктів ofstream і його членів-функцій ofstream device (device_name)

Увага!!! ofstream використовує fstream. h

Приклад:Програма запитує в користувача ім’я і прізвище, а потім друкує прізвище та ім’я на принтер.

 

#include <fstream.h>

 

Void main()

{

ofstream prn("LPT1");

ifstream ek("CON");

char first[20];

char last[20];

cout << " Ввести прізвище ";

cin >>first;

cout << " Ввести ім’я ";

ek >> last;

prn << first << last << " \n " <<" \n ";

}

 

//Виведення на принтер

ofstream pru("PRN");

pru << last << " " << first << "\n";

 







Последнее изменение этой страницы: 2017-02-10; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.186.117 (0.007 с.)