<< Incrementar Variable>> |
En la mayoría de los lenguajes hay dos formas de pasar las variables a una función, por valor o por referencia. La explicación detallada junto con más ejemplos la pueden encontrar en esta página.
Vamos a ver el mismo ejemplo en cada lenguaje(QB, Pascal y C/C++). Este ejemplo es muy útil (¿?) y permite incrementar en 1 el valor de una variable sin tener que escribir +1. Para hacer esto en Pascal se puede usar Inc y en C++ se puede utilizar ++. En cada lenguaje se definen dos subrutinas aumentan en 1 el valor del parámetro que reciben. Una funciona pero la otra no.
Cosas como esta se pueden utilizar para manipular el contenido de una variable, por ejemplo sacarle los espacios de más a una cadena de texto, o dar vuelta las cifras de un número.
QB:
Defint A-Z 'Todas las variables son enteros a=5 Print a IncrementarVal a Print a IncrementarRef a Print a IncrementarVal a Print a IncrementarRef a Print a End Defint A-Z 'Todas las variables son enteros Sub IncrementarVal(x) CopiaX = x 'En QB no se pueden pasar Por Valor, asi que hacemos una copia CopiaX = CopiaX + 1 End Sub Defint A-Z 'Todas las variables son enteros Sub IncrementarRef(x) x = x 'En QB no se pueden pasar Por Valor, asi que hacemos una copia x = x + 1 End Sub
var a:integer; Procedure IncrementarVal(x:integer); begin x:=x+1; End; Procedure IncrementarRef(var x:integer); begin x:=x+1; End; begin a:=5; Writeln(a); IncrementarVal(a); Writeln(a); IncrementarRef(a); Writeln(a); IncrementarVal(a); Writeln(a); IncrementarRef(a); Writeln(a); End.
#include <iostreams.h> void IncrementarVal(int x) { x=x+1;//Perdon }; void IncrementarRef(int &x) { x=x+1;//Perdon }; int main(void) { int a; a=5; cout<<a<<"\n"; IncrementarVal(a); cout<<a<<"\n"; IncrementarRef(a); cout<<a<<"\n"; IncrementarVal(a); cout<<a<<"\n"; IncrementarRef(a); cout<<a<<"\n"; }
Lecciones relacionadas:
Parámetros por valor o por referencia
Divisor común mayor factorizando
OmaNet Curso CyM98 | OmaNet - Educación Interactiva www.oma.org.ar/omanet | omanet@oma.org.ar |
mensajes: webmaster@oma.org.ar |