Sottoprogrammi
Un programma può diventare molto lungo... per migliorare la leggibilità si può ricorrere a delle linee vuote oppure separare i blocchi di codice che si ripetono dal flusso principale del codice...
Se a questi blocchi di codice si da un nome e si separano dal programma principale (prima o dopo dipende dal linguaggio) diventano dei sottoprogrammi
Si può immaginare un sottoprogramma come uno strumento del quale si conoscono il nome e la funzionalità ma non l'implementazione| Basic | Sottoprogramma |
Sub XYZ()
... End Sub |
|---|---|---|
| Pascal | Procedura |
Procedure XYZ
... Begin ... End; |
| C | Funzione |
void XYZ()
{ ... } |
| Java | Metodo |
Chiamata e ritorno
Per passare il controllo al sottoprogramma è necessario chiamarlo| Basic | Sottoprogramma |
Sub XYZ()
... End Sub | ... Call XYZ() ... |
|---|---|---|---|
| Pascal | Procedura |
Procedure XYZ
... Begin ... End; | ... XYZ; ... |
| C | Funzione |
void XYZ()
{ ... } | ... XYZ(); ... |
| Java | Metodo |
Il controllo ritorna al chiamante quando si giunge all'etichetta di fine del sottoprogramma
Diventa tutto più chiaro se si disegnano i sottoprogrammi di lato piuttosto che prima o dopo...
Il blocco principale non ha l'esclusiva di fare le chiamate, anzi ogni sottoprogramma può chiamare tutti gli altri sottoprogrammiIstruzione di ritorno
Se necessario, la fine di un sottoprogramma può essere richiesta esplicitamente con un'istruzione di uscita/ritorno| Basic |
Sub XYZ()
... If(...) Then Exit Sub ... End Sub |
|---|---|
| C |
void XYZ()
{ ... if(...) return; ... } |