Sottoprogrammi
Una subroutine è una parte separata del programma che ha un nome e risolve il proprio compito separato. La subroutine si trova all'inizio del programma principale e può essere lanciata (chiamata) dal programma principale specificandone il nome.
L'utilizzo delle subroutine consente di evitare la duplicazione del codice, se è necessario scrivere lo stesso codice in punti diversi del programma.
Le librerie importate nel programma (per esempio, la libreria matematica
сmath.h
) consistono in subroutine che sono già state compilate da qualcuno. I programmatori non hanno bisogno di pensare a quali algoritmi implementano, ma semplicemente li applicano, pensando solo a cosa stanno facendo esattamente. Questo è un grande risparmio di tempo. Non è necessario scrivere un algoritmo che è già stato scritto da qualcun altro.
Ogni routine
dovrebbe eseguire solo un compito, puoi semplicemente calcolare qualcosa, o generare alcuni dati o fare qualcos'altro.
Le subroutine sono di due tipi:
procedure e
funzioni.
Le subroutine eseguono alcune azioni, ad esempio, visualizzano il risultato sullo schermo in una certa forma (un semplice esempio, l'operatore
printf()
è una subroutine standard che stampa informazioni sullo schermo)
Le subroutine delle funzioni
restituiscono un risultato (numero, stringa di caratteri, ecc.) che possiamo utilizzare nel programma principale.
Proviamo a scrivere una semplice procedura:
Supponiamo di voler visualizzare la stringa "
Error" ogni volta che può verificarsi un errore nel codice per colpa dell'utente (ad esempio, quando inserisce dati errati)
Questo può essere fatto scrivendo la dichiarazione
cout << "Errore";
E ora immagina che una riga del genere debba essere inserita in molti punti del programma. Certo, puoi semplicemente scriverlo ovunque. Ma questa soluzione ha due inconvenienti.
1) questa stringa verrà memorizzata molte volte
2) se vogliamo modificare l'output in caso di errore, dovremo modificare questa riga in tutto il programma, il che è piuttosto scomodo
Per tali casi, sono necessarie procedure.
Un programma con una procedura potrebbe essere simile a questo:
#include<iostream>
utilizzando lo spazio dei nomi std;
void printError() // descrizione della procedura
{
cout << "Errore"; // corpo della procedura - comandi che la procedura eseguirà
}
principale()
{
...
printError() // avvia la procedura per l'esecuzione. Specifichiamo semplicemente il nome della procedura che vogliamo eseguire.
...
stampaErrore()
...
}
La procedura inizia con la parola void
. Ci sono parentesi vuote dopo il nome della procedura.
Tutte le istruzioni eseguite in una procedura sono rientrate.
Le procedure sono scritte prima della funzione principale main()
Per eseguire una procedura, nel programma principale devi chiamarla per nome e ricordarti di scrivere le parentesi!
È possibile chiamare una procedura in un programma un numero qualsiasi di volte.