Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Пример 2_1_1. Программа нахождения максимума из трех чисел




 

Вариант 1

#include <iostream>

using std::endl;

using std::cout;

using std::cin;

//функция находит максимум из двух целых чисел

int max2(int a, int b) // заголовок функции

{ //тело функции

     if (a > b)

return a;// returnоператор возврата значения в вызывающую программу

     else

                   return b;

}

int main()              // mainэто тоже функция

{     //использование функции max для нахождения большего из a, b, c

       int a, b, c, d;

       cout << "Введите а, b, с:";

cin >> a >> b >> c;

d = max 2(a, b); //вызов функции max с параметрами a, b

 // d = результат функции maxбольшее из a, b

d = max 2(d, c); //вызов функции max с параметрами d, c

 // d = результат функции maxбольшее из d, cбольшее из a, b, c

cout << "Максимальное число - " << d << endl;

       system("pause");

       return 0;

}

Вариант 2

#include <iostream>

using std::endl;

using std::cout;

using std:: cin;

int max 2(int, int); //прототип функции: имена параметров можно не указывать

Int main()

{     //использование функции max для нахождения большего из a,b,c

       int a, b, c, d;             //локальные переменные функции ma in

       cout << "Введите а, b, с:";

    cin >> a >> b >> c;

    d = max 2(max 2(a, b), c); //вызов функции max как параметр функции

//порядок вызовов max как в варианте 1 примера 2_1

   cout << "Максимальное число - " << d<<endl;

       system("pause");

       return 0;

}

//функция находит максимум из двух целых чисел

int max2(int a, int b) // заголовок функции

{ //тело функции

int d;            //локальная переменная, доступна только в функции max

       a>b? d=a: d=b;

Return d;

}

 

Глобальные данные и параметры

 

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

Рисунок 2.2 – Глобальные и локальные данные

Глобальные данные это данные (константы, переменные, массивы и другие), объявленные в начале программы и доступные в функциях и «главной программе» (функции main).

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

 

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

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

Рисунок 2.3 – Передача параметра значением

Значение фактического параметра при изменении соответствующего ему формального параметра не изменяется.

В примере на рисунке 2.3 после завершения работы функции f значение фактического параметра x остается равным 0, не смотря на оператор a ++ в теле функции f.

В операторе вызова фактическим параметром (при передаче параметра значением) может быть константа, переменная, выражение или функция.

 

 

Параметры по умолчанию

 

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

 





Поделиться с друзьями:


Дата добавления: 2018-10-14; Мы поможем в написании ваших работ!; просмотров: 408 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Вы никогда не пересечете океан, если не наберетесь мужества потерять берег из виду. © Христофор Колумб
==> читать все изречения...

2335 - | 2142 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.