Увод в програмирането
alpha
|
Ако извиканата функция е разположена след извикваната, то трябва да бъде подходящо декларирана в извикващата функция. Това предварително обявяване се нарича прототип на функцията и информира компилатора за типа на на връщаната стойност и за броя и типа на формалните параметри. Използвайки прототипи компилаторът извършва контрол за съответствие по тип и брой между формални и фактически параметри,
Пример:
#include<conio.h> // контролиране на вход и изход #include<iostream> // Прототипи на функции: void div(int a, int b); int mnum(int, int); // Имената на формалните параметри не го интересуват, // но ако са написани не ги разглежда; int main() { int x, n1, n2; clrscr(); // Изчиства екрана // функция част от conio.h cout<<"Въведете първото число: "; cin>>n1; cout<<"Въведете второто число: "; cin>>n2; div( n1,n2) ; // това е операция x = mnum(n1,n2); cout<<"max= "<<x<<endl; // Ако се обърнем към mnum() като към операнд, // няма да има грешка, // ама нищо не се извежда return 0; } void div(int a, int b) { int t; while ( b!=0) { t = a%b; a = b; b = t; } cout<<"НОД: "<<a<<endl; } int mnum( int c, int d ) { return ( c > d ) ? c : d; }
Задача:
Да се напише програма, която транспонира матрица.
Решение:
#define DIM 3; // Дефинира константа #include <iostream.h> void trans ( float[][DIM], float[][DIM] ); int main() { float u[DIM][DIM], v[DIM][DIM]; int i, j; for( i = 0; i<DIM; i++) { for(j=0; j<DIM; j++) { cout<<"Въведете u["<<i<<"]["<<j<<"]= "; cin>>u[i][j]; } } return 0; } void trans(float a[][DIM], float b[][DIM]) { int i,j; for(i=0; i<DIM; i++) { for(j=0; j<DIM; j++) b[j][i] = a[i][j]; } }