Anar al contingut

Argument (informàtica)

De L'Enciclopèdia, la wikipedia en valencià

En ciències de la computació, un paràmetro és una variable utilisada per a rebre valors d'entrada en una rutina, subrutina o método. Dits valors, que seran enviats des de la rutina invocante, són cridats arguments. La subrutina usa els valors assignats als seus paràmetros per a alterar el seu comportament en temps d'eixecució. La major part dels llenguages de programació poden definir subrutina que accepten zero o més arguments.

Pas d'arguments

[editar | editar còdic]
Archiu:Subprograma.svg
Diagrama del funcionament d'una subrutina.

Existixen cinc formes de passar un argument a una funció (subrutina) o procediment: per valor, per referència, per resultat, per valor-resultat i per nom.

Pas per valor

[editar | editar còdic]

El pas de paràmetros per valor consistix en copiar el contingut de la variable que volem passar en una atra dins de l'àmbit local de la subrutina, consistix puix en copiar el contingut de la memòria de l'argument que es vol passar a una atra direcció de memòria, corresponent a l'argument dins de l'àmbit de dita subrutina. Es tindran dos valors duplicats i independents, en lo que la modificació d'un no afecta a l'atre.

Pas per referència

[editar | editar còdic]

El pas de paràmetros per referència consistix en proporcionar a la subrutina a la que se li vol passar l'argument la direcció de memòria de la senya. En este cas es té un únic valor referenciado (o apuntat) des de dos punts diferents, el programa principal i la subrutina a la que se li passa l'argument, per lo que qualsevol acció sobre el paràmetro es realisa sobre la mateixa posició de memòria.

El pas de la direcció de memòria deu ser transparent al programador. Els llenguages que permeten tractar en direccions de memòria, com a C, permeten simular el pas d'arguments per referència, sense dispondre realment d'esta característica.

Pas per valor resultat

[editar | editar còdic]

És un tipo poc usat en els llenguages de programació actuals. Es basa que dins de la funció es treballa com si els arguments hagueren segut passats per valor pero en acabar la funció els valors que tinguen els arguments seran copiats a les variables que pertanyien.

Este tipo pot ser simulat en qualsevol llenguage que permeta el pas de valors per referència de la següent forma:

void EjemploValorRes(int& a1, int& a2, int& a3) {
    int aux1 = a1, aux2 = a2, aux3 = a3;
    // còdic treballant en aux1, aux2 i aux3
    a1 = aux1; a2 = aux2; a3 = aux3; // Depenent del compilador la còpia es realisa en un sentit o en l'atre
}

Tal i com indica l'eixemple de simulació de valor-resultat, l'orde de còpia depén del compilador, lo que implica que la mateixa funció puga donar resultats diferents segons el compilador usat.

Eixemple de diferències entre els distints passos de paràmetros

[editar | editar còdic]

Ací s'exponen uns eixemples que demostren les diferències d'estos tipos: Arguments passats per valor: a = 0 Arguments passats per referència: a = 3 Arguments passats per valor-resultat:

  • Si el compilador copia els resultats de dreta a esquerra: a = 1
  • Si el compilador copia els resultats d'esquerra a dreta: a = 2

Vore també

[editar | editar còdic]

fr:Paramètre#Informatique