Codificación aprenderaprogramar.com: CU00208A
Hemos explicado en el anterior epígrafe del curso la diferencia entre pasar parámetros por valor o por referencia. Veamos algunos ejemplos de invocaciones y de los resultados que se obtienen:
Ejemplo: Módulo Check(amt, cit, dik: Enteros)
Llamada
|
Efecto
|
Llamar Check(70, 33, 12)
|
Los tres datos se procesan por valor
|
Llamar Check(A, 33, B)
|
A y B se procesan por variable (por referencia) (se esperan tipo entero) y 33 se procesa por valor
|
Llamada
|
Efecto
|
Llamar Check(A, 33, B) PorValor | Los tres datos se procesan por valor |
Llamar Check(A PorVariable, 33, B PorValor) | A se procesa por variable (por referencia) y 33 y B por valor |
Llamar Check(A porVariable, 33 / 2, B)
|
Error: no coinciden los tipos. 33 / 2 no es un entero
|
Llamar Check(A PorVariable, Mix PorVariable, B PorValor)
|
A y Mix se procesan por variable (por referencia) y B por valor
|
Llamar Check(A, Mix, B)
|
Los tres datos se procesan por variable (por referencia)
|
EJERCICIO:
SOLUCION
PROGRAMA SUC02
Variables: Enteras: E Reales: Dato, Raiz01, Raiz02, Suce
1. Inicio 2. Mientras E <> 2 Hacer 2.1 Mostrar “Elija 1. Cálculo 2. Salir” 2.2 Pedir E 2.3 Si E = 1 Entonces Llamar EntraDatos Llamar Proceso(Dato) PorValor Llamar Resultados FinSi Repetir 3. Fin Módulo EntraDatos 1. Hacer Mostrar “Por favor, introduzca número entero entre 0 y 100” Pedir Dato Dato = Redondear(Dato) Repetir Mientras Dato < 0 ó Dato > 100 FinMódulo
Módulo Proceso(Num: Enteros) 1. Raiz01 = SQR(Num) 2. Raiz02 = -Raiz01 3. Suce = 0 4. Mientras Num >= 0 Hacer Suce = Suce + SQR(Num) Num = Num – 1 Repetir FinMódulo
Módulo Resultados Mostrar “Dato base =”, Dato Mostrar “Raiz01=”, Raiz01 Mostrar “Raiz02=”, Raiz02 Mostrar “Valor de la suma de los términos de la sucesión =”, Suce FinMódulo |
Nota: Escribir en el módulo Proceso Mientras Num >= 0 simboliza la inclusión del término SQR (0) en la sucesión. Sin embargo, dicho término no aporta nada y sería más eficiente escribir Mientras Num > 0, ahorrándonos una pasada por el bucle.
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.