Copy Link
Add to Bookmark
Report

C++ Lezione 4: funzioni

papero's profile picture
Published in 
LezioniC
 · 3 years ago

Ora che avete imparato tutto sulle variabili, loops e comandi if, è ora di imparare la prossima cosa della programmazione: le Funzioni. Ovviamente dovete avere una idea chiara di cosa sia una funzione, dal momento che ne avete usata una come cout prima. Comunque, questa lezione sarà più specificatamente non solo sulle funzioni che sono già pronte, ma anche su come costruirsene di proprie, o forse lo spiegherò più avanti...

Un buon modo per descrivere una funzione è di mostrare il suo prototipo. Questo significa che cosa deve restituire e cosa deve prendere come suoi argomenti. Per esempio il prototipo di getch() è... int getch(void); int significa che restituisce un integer, void significa che non riceve nessun argomento. Adesso, potreste sapere che getch restituisce un carattere! Comunque, ciò non significa che deve restituire un carattere. Il fatto che il tipo restituito sia un integer non fa differenza, perché al set di caratteri ASCII non importa quale tipo di numero sia, così come se sia un numero... non preoccupatevi se non avete capito, non è poi così importante in questo momento.

Quello che è importante è che voi capiate i prototipi. un altro prototipo è... int kbhit(void); restituisce un integer e non riceve valori. Ora che spero abbiate capito ciò, sarete capaci di utilizzare i files di help molto più facilmente e io posso descrivere più dettagliatamente le funzioni. Primo, quali funzioni sono utili.

Ci sono molte funzioni utili e spesso sono difficili da trovare. Per il Turbo C++ Lite alcune funzioni utili includono, ma non si limitano a queste:

 cout<<			iostream.h	output 
cin>> iostream.h input
int getch(void) conio.h get characters
void clrscr(void) conio.h clear screen

Okay, potrete pensare che questo è niente! Quattro misere funzioni, e sei a posto! Se esistono solo poche funzioni allora il C/C++ non può essere utile. Comunque, un sacco di programmatori non hanno bisogno di tutte queste funzioni. Ovviamente, suggerisco di conoscere tutte le funzioni che potete, o almeno il nome. A questo scopo, posterò un intero elenco di tutte le funzioni che trovo su tutti i libri che ho letto. Comunque, per adesso, queste sono le funzioni più utili. Dopo tutto, se potete cancellare lo schermo, ricevere input e output e ricevere lo stato dei tasti della tastiera, che sono utili per fermare il programma e tornare all'IDE, potete fare quasi tutto! Credetemi, ci sono poche funzioni specializzate, ma veremente utili, il fatto è che non avete veramente bisogno di utilizzarle tutte le volte! Se avete un problema con la funzione che vi serve, e io non ho ancora messo in linea l'elenco, allora mandatemi una email a lallain@concentric.net, e vi troverò quello di cui avete bisogno!

Ad ogni modo, dopo di ciò non servono molte altre chiacchiere sulle funzioni, vi mostrerò come fare le vostre funzioni! Wow, posso farle? Certamente, altrimenti il C/C++ sarebbe inutile! Quindi, preparatevi ad imparare come fare le funzioni.

Per prima cosa lasciatemi dare un programma intero come esempio. Quindi potremo guardarlo ed impareremo a realizzare i nostri programmi propri.

 #include <iostream.h> 
#include <conio.h>

int mult(int x, int y);

void main()
{
int x, y;
cout<<"Inserire un numero, ed il numero per il quale moltiplicarlo";
cin>>x>>y;
cout<<endl<<mult(x, y);
getch();
}

int mult(int x, int y)
{
return x*y;
}

Come è utile... bene, in questo programma la funzione è totalmente inutile, e può solo moltiplicare interi! Ma è solo per mostrarvi come fare funzioni, dopo che avrete compreso le basi spero che sarete capaci di fare qualsiasi cosa da soli.

Che cosa fa il mio esempio: #includes...inclusioni di base Cos'è int mult(int x, int y);? E' un prototipo della funzione, senza di esso non potreste utilizzare mult! Cos'è void main()? Dovreste saperlo. Cos'è cout<<endl<<mult(x,y);? Bene, sostanzialmente ci sposta una linea più in basso e quindi stampa a scherma il risultato di mult. Altre notizie su questo più avanti. Cos'è

 int mult(int x, int y) 
{
return x*y;
}

Bene, questa è la funzione! Essa dice che il tipo restituito è un integer. Quando viene usato il comando return, si è detto che la funzione mult ha un valore qualunque siano x*y... così si è detto return x*y. I due int che prende sono x e y.
Quindi li moltiplica e restituisce il valore ottenuto. Perciò emette mult(x, y); è assolutamente legale. Forse potrebbe esservi d'aiuto pensare come se la funzione mult ha un valore per qualsiasi x*y. Questo non è propriamente vero, restituisce semplicemente questo valore e potete farci tutto quello che volete, ma spero che vi sia d'aiuto.

Che cosa potete fare? Potete fare funzioni void che non fanno niente...

 #include <iostream.h> 

void function(void);

void main()
{
function();
}

void function(void)
{
cout<<"Questa è una funzione completamente inutile e dispendiosa";
}

Quello che fa è dichiarare che ci sarà una funzione, fornendone il prototipo, quindi la funzione è definita in basso e fa solo una cosa... restituisce "Questa è una funzione completamente inutile e dispendiosa" Comunque, se volevamo fare qualcosa che prendeva 3 linee 400 volte in posti differenti?

 #include <iostream.h> 

void function(void);

void main()
{
ENORME CODICE CHE HA BISOGNO DI RESTITUIRE Line 1Line 2Line 3
}

void function(void)
{
cout<<"Line 1";
cout<<"Line 2";
cout<<"Line 3";
}

Questo, oltre al fatto di essere un pessimo esempio, è dove bisogna usarlo quando avete bisogno di chiamare qualcosa un sacco di volte, ma non volete effettuare copia e incolla. Le funzioni sono veramente utili, e spero di averle spiegate abbastanza bene da farvele comprendere.

---
Nota: La mia homepage è http://www.cprogramming.com. La mia email è webmaster@cprogramming.com. Vi prego di mandarmi una email con commenti e/o suggerimenti. Se volete usare questo tutorial nel vostro sito, vi prego di mandarmi una email e dia aggiungere un link a http://www.cprogramming.com.
Grazie :)

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT