Programmazione procedurale: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
fix
 
(7 versioni intermedie di 5 utenti non mostrate)
Riga 1:
{{F|programmazione|febbraio 2013}}
In [[informatica]] la '''programmazione procedurale''' è un [[paradigma di programmazione]] che consiste nel creare dei blocchi di [[codice sorgente]], identificati da un nome e racchiusi da dei delimitatori, che variano a seconda del [[linguaggio di programmazione]]; questi sono detti anche '''sottoprogrammi''' (in inglese ''subroutine'') '''procedure''' o '''[[funzione (informatica)|funzioni]]''', a seconda del linguaggio e dei loro ruoli all'interno del linguaggio stesso. Il nome deriva dal linguaggio [[COBOL]], che è stato il primo ad utilizzare questo concetto.
 
In [[informatica]] la '''programmazione procedurale''' è un [[paradigma di programmazione]] che consiste nel creare dei blocchi di [[codice sorgente]], identificati da un nome e racchiusi da dei delimitatori, che variano a seconda del [[linguaggio di programmazione]]; questi sono detti anche '''sottoprogrammi''' (in inglese ''{{Inglese|subroutine''}}), '''procedure''' o '''[[funzione (informatica)|funzioni]]''', a seconda del linguaggio e dei loro ruoli all'interno del linguaggio stesso. Il nome deriva dal linguaggio [[COBOL]], che è stato il primo ada utilizzare questo concetto.
==Descrizione==
 
== Descrizione ==
Questi blocchi possono essere dotati di [[parametro (programmazione)|parametri]], cioè [[variabile (informatica)|variabili]] locali i cui valori vengono forniti o passati dall'esterno del blocco di codice ed eventualmente esportati; esistono due tipi di parametri: quelli di tipo valore e quelli di tipo variabile; nei primi viene passato un valore che, se modificato, non viene comunque salvato al termine del sottoprogramma; nel tipo variabile invece, viene comunicato l'[[indirizzo di memoria|indirizzo]] della cella di memoria (ad es.esempio tramite un [[puntatore (programmazione)|puntatore]]) al quale troviamo l'[[informazione]], che può quindi essere modificata effettivamente e permanentemente. All'interno di un sottoprogramma possono essere generalmente definite o dichiarate delle variabili locali, che vengono deallocate al termine del sottoprogramma stesso; il loro contenuto viene quindi perso se non salvato o trasmesso altrimenti.
 
In [[Pascal (linguaggio)|Pascal]], le ''procedure'' sono distinte dalle ''[[funzione (informatica)|funzioni]]'' perché non restituiscono un valore associato al nome della procedura stessa, e non possono quindi apparire a destra di una istruzione di [[assegnazione]]; i blocchi di codice sono racchiusi tra un ''{{Codice|codice=Begin''|linguaggio=Pascal}} ede un ''{{Codice|codice=End;''|linguaggio=Pascal}} ([[parola riservata|parole riservate]], il punto e virgola fa parte dell'istruzione).
 
In [[Linguaggio C]] esiste solo la ''function''funzione, che può o meno restituire valori; lo stesso dicasi per il [[Java (linguaggio di programmazione)|Java]] ede il [[PHP]]; i blocchi sono racchiusi tra parentesi graffe. In [[Visual Basic]] abbiamo procedure (Sub) e funzioni, il cui codice è strutturato nel seguente modo:
 
Per le procedure:<syntaxhighlight lang="vb" line="1">
'''Sub''' ''NomeProcedura''(''Lista parametri'')<br/>
''Dichiarazioni e Istruzioni''<br/>
'''End Sub'''
</syntaxhighlight>Per le funzioni:<syntaxhighlight lang="vb" line="1">
'''Function''' ''NomeFunzione''(''Lista parametri'') '''As''' ''TipoDiRitorno''<br/>
''Dichiarazioni e Istruzioni''<br/>
'''Return''' ''Espressione''<br/>
'''End Function'''
</syntaxhighlight>
 
== Voci correlate ==
'''Sub''' ''NomeProcedura''(''Lista parametri'')<br/>
''Dichiarazioni e Istruzioni''<br/>
'''End Sub'''
 
Per le funzioni:
 
'''Function''' ''NomeFunzione''(''Lista parametri'') '''As''' ''TipoDiRitorno''<br/>
''Dichiarazioni e Istruzioni''<br/>
'''Return''' ''Espressione''<br/>
'''End Function'''
 
==Voci correlate==
* [[Paradigma di programmazione]]
* [[Variabile (informatica)]]
* [[Information hiding]]
* [[Regole di scope]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
 
{{Paradigmi di programmazione}}
{{portale|informatica}}
 
[[Categoria:Programmazione procedurale| ]]
 
[[nl:Procedureel programmeren]]