Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В языках Си/Си++ допускается рекурсивное определение функций. Проиллюстрируем определение рекурсивной функции на примере вычисления факториала целого положительного числа.
long Factor (int n)
{ if (n<0) return 0;
if (n==0) return 1;
return n*Factor (n-1);
}
В случае если при вызове функции будет задан отрицательный аргумент, она вернет нулевое значение - признак неверного обращения.
Передача значений через глобальные переменные. Областью действия описания программного объекта называется часть программы, в пределах которой действует (учитывается) это описание. Если переменная описана внутри некоторого блока, то она локализована в этом блоке и из других блоков, внешних по отношению к данному, «не видна». Если описание переменной находится вне блока и предшествует ему в тексте программы, то это описание действует внутри блока и называется глобальным. Глобальная переменная «видна» из блока. Например:
double х;
int func1 ()
{ int y;... }
void main ()
{ float: у;...}
Переменная х является глобальной по отношению к функциям func1, main и, следовательно, может в них использоваться. В функциях func1 и main имеются локальные переменные с одинаковым именем у. Однако это разные величины, никак не связанные друг с другом. Поскольку переменная х является общей для обеих функций, то они могут взаимодействовать через х друг с другом.
При обращении к функции передача значений возможна как через параметры, так и через глобальные переменные. Используя этот механизм, в программах на Си можно реализовывать функции, работающие подобно процедурам в Паскале. В следующей программе решается уже рассматриваемая нами задача получения наибольшего из трех значений.
Дата публикования: 2014-11-02; Прочитано: 277 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!