Module: (C++) Subrutinas: procedimientos y funciones - 1


Problem

12/12

Cambio de argumentos

Theory Click to read/hide

Tarea
Escriba un procedimiento que intercambie los valores de dos variables.

Las peculiaridades de esta tarea son que necesitamos que los cambios realizados en el procedimiento sean conocidos por el programa que llama.

Intentemos escribir el procedimiento así: void Swap (int a, int b) // con tal descripción de los parámetros del procedimiento, { // se copiarán los valores de los argumentos (x e y), intc; // las variables a y b son variables independientes no relacionadas con x e y c = un; a = b; b=c; } principal() { entero x=1, y=2; Intercambiar (x, y); // los valores de las variables x e y (argumentos) se copian en los parámetros a y b cout << "x=" << x<< ", y=" << y; // x=1, y=2 } Si ejecuta este programa, puede ver que los valores de las variables x y y no han cambiado. Para que los parámetros cambien los valores de los argumentos, debe usar pasar datos por referencia.Para hacer esto, después del nombre del tipo de datos en el encabezado de la subrutina, debe colocar el signo & ("ampersand"). void Swap ( int & a, int & b ) // ahora las variables a y b obtienen las direcciones de las variables x e y en la memoria { intc; c = un; a = b; b=c; } Uso: Si pasa un argumento por referencia, entonces solo el nombre de la variable (NO un número y NO una expresión aritmética) puede estar en este lugar al llamar al procedimiento.< br />
NO llame a un procedimiento como este: Intercambiar(x, 4 ); Intercambiar (5+x, y);

Problem

Escribe un procedimiento que intercambie los valores de dos variables. Intenta escribirlo sin usar una variable adicional. Corrija los errores, si los hay.