1. Algoritmo para obtener contar los dígitos de un numero en base 10
Comprender el procedimiento de métodos recursivos1.
Especificar los casos de análisis de algoritmos recursivos: Caso base y Caso General2.
Conocer la validación y terminación de un algoritmo recursivo3.
Analizar el algoritmo recursivo para obtener el binario de un numero en base 104.
Objetivo:
Análisis del Algoritmo1.
501 => Cuantos dígitos ?
501 / 10 =50
50 / 10 =5
5 / 10 =0 ==> El Numero a dividir es MENOR que 10
Se dividió entre el 10 --> 3 veces --> Luego tiene 3 dígitos.
Tipo: Función o Procesoi.
Tipos de datos que entran1)
Tipo de dato que retorna si es Función.2)
Parámetrosii.
Perfil del método: Identificara.
Unsigned Int dig = CuentaDig (unsigned int num)
num < 10 --> Este es el caso base , tiene 1 digito1)
Caso Base : El algoritmo no se llama a si mismo. Permite que el
algoritmo termine en algún momento
i.
Caso General : El método se llama a si mismoii.
CuentaDig (num) { 1 num<10 ;
CuentaDig (num/10) + 1 num>=10 ;
Análisis de casosb.
Codificación en C++c.
int CuentaDig(int num){
return 1;
if (num<10) {
Diseño del Algoritmo2.
Metodología:
Modelo 3: Contar los dígitos de un número
viernes, 28 de marzo de 2014 16:51
Apuntes Recur_1 página 1
2. return 1;
int res= CuentaDig(num/10);
res=res+1;
return res;
}else{
}
}
Este algoritmo se puede hacer mas corto retirando las variables
intermedias . En este caso la variable res
int CuentaDig(int num){
return 1;
if (num<10) {
return CuentaDig(num/10)+1;
}else{
}
}
Validación del algoritmo : Observar si termina y resuelve el problemad.
Graficar la pila de registros de activación.
Secuenciación en clase:
Mostrar la pila que se forma por cada llamada recursiva. Esta sirve para ver que ahí
se guarda (dirección de memoria + valor del parámetros)
1.
Aquí se refleja lo que pasa en cada RETURN2.
Comienza desde el caso base el des Apilado.3.
Apuntes Recur_1 página 2