Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Обращение к функции и передача результата

Читайте также:
  1. C. Торговля результатами научно-технической деятельности
  2. Cинаптическая передача
  3. Cудeбныe функции князя и вeчe
  4. I. Правосознание: понятие, структура, функции и виды.
  5. I. Сущность, формы, функции исторического знания.
  6. II. Правовая культура: понятие, функции и виды.
  7. II. Функции Аппарата Правительства
  8. II. Функции школьной одежды
  9. II.2.2. Функции
  10. III. Требования к результатам освоения дисциплины

Для обращения к функции достаточно написать ее имя и в скобках записать значения либо перечень фактических аргументов. Фактические аргументы должны быть записаны в той же последовательности, что и формальные и иметь соответствующий тип (кроме аргументов по умолчанию и перегруженных функций).

Если формальными аргументами функции являются параметры значения и в ней не используются глобальные переменные, то функция может передать в вызывающую программу лишь одно значение, которое записывается в операторе return. Это значение передается в точку вызова функции. Фрагмент программы, подтверждающий вышеизложенное может иметь вид:

Double sgr (double);

Main()

{

cout << "Квадрат числа=" << sgr (10) << endl;

}

Double sqr (double p)

// Возврат по значению

{

return p*p;

}

В результате будет выведено:

Квадрат числа = 100.

Используя оператор return можно также организовать досрочный выход из функции.

Если из функции надо передать не одно, а несколько значений, то можно либо использовать глобальные переменные, либо массивы.

Имя функции ¾ это константа - указатель на функцию, который указывает на адрес точки входа (адрес первой машинной команды) функции. Следует отметить, что возможно также описание и указателей переменных на функции. Для этого используется операция разыменования "*", функции описанные таким образом должны возвращать указатель на тип, т.е. его адрес.

В С++ определено несколько способов передачи и возвращения результата вычислений, наиболее широко используемыми являются рассмотренные ранее:

¾ вызов функции с передачей параметров с помощью формальных аргументов - значений;

¾ вызов функции с передачей адресов с помощью параметров - указателей;

¾ вызов функций с использованием ссылок, когда доступ к передаваемым параметрам обеспечивается с помощью альтернативного имени (синонима);

¾ вызов функций с передачей данных посредством глобальных переменных, например:

#include < iostream.h >

Int a, b, c;

Sum ()

Main ()

{

cin >> a >> b;

Sum ();

cout << c << endl;

}

Sum()

{ c = a + b; }

¾ вызов функций с использованием параметров, заданных по умолча-нию, при этом можно использовать либо все аргументы, либо их часть.

При вызове функции, у которой аргументы заданы "по умолчанию", соблюдается такое правило: если какой - либо аргумент используется по умолчанию, то и все последующие аргументы должны быть использованы со значениями по умолчанию.

Пример Составить функцию, которая в качестве аргумента получает натуральное число, проверяет его на простоту. Составить главную программу, вызывающую эту функцию.

#include<iostream.h>

#include<conio.h>

#include<math.h>

bool k;

double ost;

bool f(int n){

for(int i=2;i<n;i++)

{

ost=fmod(n,i);

if(ost==0)

return false;

}

return true;

}

void main(void){

int n;

cout<<"vvod n: ";

cin>>n;

if (f(n)==false)

cout<<"not simple";

else cout<<"simple";

getch();

}

//---------------------------------------------------------------------------

 




Дата добавления: 2014-12-18; просмотров: 26 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав