12. Подпрограми в С++ Подпрограмите дават възможност за декомпозиране на задачата на отделни, относително самостоятелни програмни единици. Подпрограмата може да се разглежда като “черна кутия”, за която трябва да се знае само за какво е предназначена и кои са съответно входните и изходните параметри. Например функцията sin(x) от библиотеката math.h, изисква въвеждане на входна данна x, представляваща ъгъл в радиани, и връща след изпълнение синус от този ъгъл. Начинът на изчисляване на резултата остава скрит. Подпрограмите в езика C/С++ могат да се оформят като функции и процедури. Функциите изчисляват и връщат след изпълнението си един резултат. Процедурите връщат няколко резултата или нито един резултат. Програмистът трябва точно и ясно да определи какво се изисква от подпрограмата, за да я оформи като процедура или като функция. 12.1. Подпрограми функции • Дефиниране на функция Дефиницията на функцията се състои от заглавие и блок. В заглавието се задават типът на резултата, изчисляван от функцията, името на функцията и списъкът на формалните параметри. Блокът съдържа инструкциите, които трябва да се изпълнят. Дефиницията на функцията има следния общ вид: тип_на_резултата аа име_на_функцията (формални параметри) { инструкция1; инструкция2; ... return израз; } Типът на резултата на функцията може да бъде всеки тип, без тип масив. Ако типът е изпуснат се подразбира тип int. Името на функцията се задава с идентификатор. Формалните параметрите се задават с тип и идентификатор. Отделят се помежду си със запетайка. Списъкът на формалните параметри се загражда в кръгли скоби. Скобите се записват и когато списъкът на формалните параметри е празен. Формалните параметри описват входните данни, необходими за изчисляването на функцията. Инструкциите в блока реализират алгоритъма за пресмятане стойността на функцията. Инструкцията return израз; задължително присъства в блока на функцията. Тя предизвиква прекъсване на изпълнението на функцията и връщане на резултата в подпрограмата, от която е извикана. Резултатът от изпълнението на функцията е стойността на израза, записан след return. Изразът трябва да бъде от типа на резултата на функцията. • Извикване на функция за изпълнение Фукцията се извиква за изпълнение в израз, където е необходимо да се използва стойността на изчисления резултат. Извикването на функцията става с името на функцията и списък от фактически параметри: име_на_функцията( фактически параметри) Фактическите параметри са действителните параметри, с които трябва да се изпълни функцията. Фактическите параметри се задават с идентификатори. Фактическите параметри могат да се зададат и с изрази. Отделят се помежду си със запетая. Между формалните и фактическите параметри трябва да има пълно съответствие по брой , по място и по тип. |