ejercicios de modularidad en c
EJERCICIOS PROPUESTOS
Objetivos:
Aplicar el análisis estructurado en el diseño de la solución de problemas.
EJEMPLO DE APLICACIÓN DE ANALISIS ESTRUCTURADO
Revisar la solución del siguiente ejemplo y probarlo con un juego de datos.
ENUNCIADO:
Diseñar una solución modular que permita calcular el número combinatorio, dada la fórmula quese explica
a continuación:
NUMEROS COMBINATORIOS
Los números combinatorios o binomiales se definen por la fórmula
Equivalen al número de combinaciones sin repetición de n elementos tomados de r en r. El término n! se
lee “el factorial de n”, y se calcula así: n! = 1 * 2 * 3 * 4 * … * n - 1 * n.
El número combinatorio son los distintos grupos que se pueden formar con r elementos de unconjunto de n
elementos.
Por ejemplo, Cuántos pares distintos (NO importando el lugar) pueden conformarse con las letras A, B y C;
O ¿Cuál es el número de combinaciones que se puede formar con n elementos tomando k de entre ellos?
Por lógica: AB, BA (repetido), AC, CA (repetido), BC, CB (repetido) = 3 formas; y, aplicando la fórmula se
tiene:
n!
3!
3*2*1
3*2*1
6---------------- = ------------------ = ----------------- = -------------------- = --------- = 3
r!(n-r)!
2!(3-2)!
2!(1)!
2*1*(1)
2
1
SOLUCION
I. Planteamiento General del Problema
Entrada de datos
Salida de datos
Número de combinaciones
posibles
Cantidad de
elementos
Tamaño de la muestra
II Diagrama Top-Down
Listado de Cosas que hacer:
1. Leer y validar dosdatos enteros
2. Calcular el factorial de cada término en la fórmula (n, r, y n-r)
3. Calcular el número combinatorio
4. Imprimir el número de combinaciones posibles o número combinatorio
Se diseñará un módulo para leer cada dato entero, otro para calcular el factorial de un número, y el
principal que invoca los anteriores, y además, calcula e imprime el número combinatorio:
Diagrama Top-Downprincipal
leer
factorial
Se utilizarán tres módulos: principal, leer y factorial
Aplicación de la Metodología para resolver problemas
MODULO LEER
¿Qué hace?
Lee y valida un dato entero.
Entrada de datos
Un número entero
Salida de datos
Devuelve un entero positivo o
cero
¿Cómo lo hace?
Variables de Salida: No hay, devuelve el valor contenido en la variable dato2
Variables de Entrada:
Nombre Tipo
Descripción
dato
entero Representa el número entero que debe ser positivo o cero
Parámetros: No hay, la función no tiene parámetros.
Constantes Simbólicas: No existen.
Restricciones:
dato >=0
Proceso:
Leer dato
Mientras dato < 0
Variables de Proceso:
Desplegar: “Error: debe ser positivo o cero. Intente de nuevo.”
Leer dato
No hayDiseño de Solución: Sub-flujograma:
leer ( )
“Digite el
número
entero:”
dato
MIENTRAS
dato= 2?
Si:
Repetir
f=f*i
Desde i =2 hasta n, 1
Retorna f
Definición de Variables de Proceso (Locales: utilizadas sólo en la función)
Nombre
i
Tipo
Entero
f
Entero
Descripción
Contador que almacena valores desde 2 hasta el
parámetro recibido en la función
Contiene el valordel factorial del parámetro
recibido.
4
Diseño de Solución: Subflujograma Factorial
factorial (n)
f =1
No
n >=2
Si
i = 2, n, 1
f=f*i
Retornar f
Módulo principal
¿Qué hace?
1. Recibir cantidad de elementos y tamaño de la muestra
2. Recibir:
factorial de la cantidad de elementos
factorial del tamaño de la muestra
factorial de la resta [cantidad de elementosmenos tamaño de muestra]
3. Calcular e imprimir el número combinatorio
Entrada de datos
Recibe Cantidad de
elementos
Recibe Tamaño de la
muestra
Salida de datos
Número
posibles
de
combinaciones
5
¿Cómo lo hace?
Definición de Variables de Salida
Nombre
com
Tipo
Entero
Descripción
Contiene la variable que almacena el factorial resultante
Definición...
Regístrate para leer el documento completo.