Funzioni in C++ – esempi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
Funzioni matematiche * 1 var indipendente y=f(x) Es: y=x^2 * 2 var indipendenti z=f(x, y) Es: ipotenusa=sqrt(cateto1^2+cateto2^2) FUNZIONI / PROCEDURE / SOTTO-PROGRAMMI informatici // creo un sottoprogramma void nome_sottoprogramma(){ //istruzioni eseguite dal sottoprogramma } //utilizzo il sottoprogramma nal main int main(...){ //istruzioni del main nome_sottoprogramma(); //altre istruzioni del main return 0; } /* COMMENTO AL CODICE PRECEDENTE il programma quando viene eseguito parte dal main ... il main è il sottoprogramma principale ... il main prende il controllo ... esegue le sue istruzioni, una dopo l'altra ... e quando esegue la riga 19 ... viene richiamato il sottoprogramma ... esso svolge il suo compito cioè esegue le istruzioni contenute in esso ... quando termina di svolgere il suo compito ... riprende il controllo il main il quale prosegue nei suoi compiti ... cioè esegue le istruzioni successive alla riga 19 */ Esempio 1 void menu(){ cout<<"1: gioca\n"; cout<<"2: regole\n"; cout<<"3: esci\n"; } int main(...){ int scelta; do{ menu(); cin>>scelta; if(scelta==1) gioca(); else(scelta==2) regole(); else(scelta==3) esci(); else msg_errore(); }while(scelta!=3); return 0; } Esempio 2 /* riciclo del software ... lo stesso sottoprogramma può essere utilizzato ... più volte nello stesso programma ... o in altri programmi */ void nome_funzione_1(){ //istruzioni eseguite dalla funzione } void nome_funzione_2(){ //istruzioni eseguite dalla funzione } void nome_funzione_3(int x, int y){ z=pow(x, y); //x^y cout<<"Risultato: "<<z<<endl; } int main(...){ nome_funzione_3(2, 3); //istruzioni nome_funzione_1(); //istruzioni nome_funzione_2(); //istruzioni nome_funzione_1(); return 0; } 3 TIPOLOGIE DI PROCEDURE 1. Procedure che, una volta richiamate dal MAIN ... eseguo le istruzioni in esso contenute. 2 Procedure che, ricevono dati dal main ... per poter svolgere i propri compiti. 3 Procedure come le 2. ma in più il risultato ... delle loro operazioni viene comunicato al main. Vedi figura seguente (dopo l'esempio 3): 2. Funzioni a cui passo dei parametri (variabili indipendenti) void nome_funzione(tipo nome_par, tipo nome_par, ...){ //istruzioni che lavorano sui par } Esempio 3 /* il monitor è un piano cartesiano con l'origine in alto a sinistra l'asse x orizzontale orientato verso destra l'asse y verticale orientato verso il basso un punto (pixel) del piano ha quindi coordinate P(x, y) */ void gotoXY(int row, int col){ COORD coor; HANDLE hOutput; hOutput = GetStdHandle(STD_OUTPUT_HANDLE); coor.X = col; coor.Y = row; SetConsoleCursorPosition(hOutput,coor); } int main(...){ gotoXY(3, 6); cout<<"Ciao"; //la parola Ciao viene visualizzata alle coordinate 3, 6 return 0; } 3. Funzioni che restituiscono un risultato //calcolo del fattoriale, es: 3!=1*2*3=6 int fat(int n){ //Per definizione 0!=1 e 1!=1 //In generale n!=1*2*3*...*(n-1)*n int f=1; for(int i=1; i<=n; i++){ f=f*i; } return(f); } int main(){ int x; int ris=fat(3); cout<<ris; ... cin>>x; ris=fat(x); cout<<ris; } |