Programmazione procedurale: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Mastazi (discussione | contributi)
fix
 
(24 versioni intermedie di 21 utenti non mostrate)
Riga 1:
{{F|programmazione|febbraio 2013}}
La '''programmazione procedurale''' è un [[paradigma di programmazione]] che consiste nel creare dei blocchi di codice, 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'').
Questi blocchi possono assumere i nomi di procedure o 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.
Questi blocchi possono essere dotati di parametri, cioè variabili locali i cui valori vengono forniti 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 al quale troviamo l'informazione, che può quindi essere modificata effettivamente e permanentemente.
All'interno di un sottoprogramma possiamo generalmente definire 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 ''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 ''Begin'' ([[parola riservata]]) ed un ''End;'' (il punto e virgola fa parte dell'istruzione).
In [[Linguaggio C]] esiste solo la ''function'', che può o meno restituire valori; lo stesso dicasi per il [[Java (linguaggio)|Java]] ed il [[PHP]]; i blocchi sono racchiusi tra parentesi graffe.
In [[Visual Basic]] abbiamo procedure(Sub) e funzioni, il cui codice è strutturato nel seguente modo:
 
LaIn [[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}}), ingleseprocedure ''subroutine''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 a utilizzare questo concetto.
Per le procedure:
 
== Descrizione ==
'''Sub''' ''NomeProcedura''(''Lista parametri'')<br/>
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 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.
''Dichiarazioni e Istruzioni''<br/>
'''End Sub'''
 
In [[Pascal (linguaggio)|Pascal]], le ''procedure'' sono distinte dalle ''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}} e un {{Codice|codice=End;|linguaggio=Pascal}} ([[parola riservata|parole riservate]]) ed, un ''End;'' (il punto e virgola fa parte dell'istruzione).
Per le funzioni:
 
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 e funzioni, il cui codice è strutturato nel seguente modo:
'''Function''' ''NomeFunzione''(''Lista parametri'') '''As''' ''TipoDiRitorno''<br/>
''Dichiarazioni e Istruzioni''<br/>
'''Return''' ''Espressione''<br/>
'''End Function'''
 
Per le procedure:<syntaxhighlight lang="vb" line="1">
==Voci correlate==
'''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 ==
* [[Paradigma di programmazione]]
* [[Variabile (informatica)|Variabile]]
* [[Information hiding]]
* [[Regole di scope]]
 
== Collegamenti esterni ==
[[Categoria:Teorie della programmazione]]
* {{Collegamenti esterni}}
 
{{Paradigmi di programmazione}}
{{portale|informatica}}
 
[[itCategoria:Programmazione procedurale| ]]
[[be-x-old:Працэдурнае праграмаваньне]]
[[de:Prozedurale Programmierung]]
[[et:Protseduraalne programmeerimine]]
[[el:Δομημένος προγραμματισμός]]
[[fa:برنامه‌نویسی رویه‌ای]]
[[fr:Programmation procédurale]]
[[ko:절차적 프로그래밍]]
[[he:תכנות פרוצדורלי]]
[[ms:Pengaturcaraan bertatacara]]
[[nl:Procedureel programmeren]]
[[it:Programmazione procedurale]]
[[ja:手続き型プログラミング]]
[[pl:Programowanie proceduralne]]
[[pt:Programação procedural]]
[[ro:Programare procedurală]]
[[ru:Процедурное программирование]]
[[fi:Proseduraalinen ohjelmointi]]
[[sv:Procedurell programmering]]
[[tr:Yordamsal programlama]]
[[uk:Процедурне програмування]]
[[vi:Lập trình thủ tục]]
[[zh:过程程序设计]]