Resumen: Entrega nº7 del curso Bases de la programación Nivel II.
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:

Desarrollar el pseudocódigo y diagrama de flujo para un programa que pide un valor entero entre 0 y 100 y calcula el valor de la suma de la sucesión:
 
SQR(a), SQR(a-1), SQR(a-2), ..., SQR (0)
 
                                                                                  
Nota: el término SQR equivale al símbolo de raíz cuadrada.
 
Como resultado muestra el dato base a, las raíces de a (± SQR (a)) y el valor de la suma de la sucesión. Ha de contar con un menú que permita realizar otro cálculo o salir del programa.
 

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

 

 
DIAGRAMA DE FLUJO:

diagrama de flujo ejemplo

 

 programacion diagrama de flujo

 

diagrama de flujo modulos programas

 

                                                                                                                                   

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.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Descargar archivo: