12. Подпрограми в С++

12.1. Подпрограми функции
• Дефиниране на функция
• Извикване на функция за изпълнение. Примери и задачи с функции

12.2. Подпрограми процедури
• Дефиниране на процедура
• Извикване на процедурата за изпълнение. Пример

12.3. Предаване на параметри между подпрограмите
• Предаване на параметри по стойност. Пример
• Предаване на параметри чрез адрес. Примери
• Едномерните масиви като формални параметри на подпрограмите. Пример
• Многомерните масиви като формални параметри на подпрограми. Пример

12.4. Понятие за прототип / декларация на подпрограма/. Пример

преди план следва
 
 

12.4. Понятие за прототип / декларация на подпрограма/. Пример


Всяка подпрограма трябва да бъде дефинирана самостоятелно. Не се допуска в блока на една подпрограма да бъде дефинирана друга подпрограма. Една подпрограма може да извиква друга подпрограма, а в нея може да се извиква трета подпрограма и т.н. Всяка подпрограма трябва да бъде дефинирана преди главната функция main() или преди подпрограмата, в коята се извиква. Така, функцията main трябва да бъде дефинирана след останалите функции. Ако това правило не е спазено е необходимо в началото на модула да се декларират всички подпрограми, като се запишат техните прототипи.

Прототипът има вида:

тип аа име_на_подпрограмата(формaлни параметри );

Типът може да бъде и void.

Примери за прототипи на подпрограми:
int Cub(int I);
void printRows(int N);
int funA(int x , int y );

Възможно е имената на формалните параметри да не се пишат, но техните типове се пишат и се отделят със запетая задължително:
int Cub(int );
int funA(int , int );

Прототипът се използва и в случай на разделно компилиране на файлове, когато една подпрограма е дефинирана във файл1, а се извиква във файл2. Прототипите /декларациите/ се записват в началото на програмния файл, преди функцията main(). Дефинициите на подпрограмите могат да бъдат по-надолу, след дефиницията на main().

• Пример. Процедурата readMas въвежда елементите на едномерен масив, които се извеждат в main.
#include  < iostream.h >
void readMas(int, int[]);       // прототип /декларация/ на readMas
int main()
{ 
  int a[10];
  readMas(10,a); 
  for(int i=0;i < m;i++)
      cout<<"a["<< i <<"] = "<< a[i]<< endl;
 return 0;
}
// дефиниция на readMas
void readMas(int m, int arr[])
{
  for(int i=0;I < m;i++)
  {  cout<<" Въведете arr["<< i<<"] = ";
     cin>> arr[i];
  }
}
Подпрограмата readMas е дефинирана след главната функция main(), в която се извиква. Затова, в началото на файла е зададен нейния прототип.
 
 
 
 
преди план следва