Explicación del problema: Un numero es divisor de otro, si esta contenido en este un numero exacto de veces.
Ejemplo: 5 es D10 porque: 10%5 = 2
con un ejemplo matemático es simple para cualquier persona saber si o no, si un numero es divisor de otro, pero para pasar esto al lenguaje scheme de forma que la maquina entienda el proceso se requiere explicar paso a paso en el algoritmo para obtener el resultado que deseamos, para resolver este ejemplo hay mas de una forma pero la mas practica de todas es dividir el numero y verificar si el resultado es par, pero para evitar construir un código largo consultando numero por numero lo mejor es usar la operación remainder la cual devuelve el residuo de una división, y con este resultado compararemos si es 0 y en caso de serlo el resultado es obvio
; ========================================================== ; Averiguar si dados dos números, uno es divisor de otro. (define (Divisor N1 N2) (cond [ (and (and (number? N1) (number? N2)) (= 0 (remainder N1 N2 ))) "N1 es divisor de N2" ] [ (and (and (number? N1) (number? N2)) (= 0 (remainder N2 N1 ))) "N2 es divisor de N1" ] [ (and (and (number? N1) (number? N2)) (< 0 (remainder N2 N1 ))) "no tienen divisor"] [else "los datos no son valores numericos"] ) ) ;prueba (Divisor 9 3) (Divisor 2 4) (Divisor 3 4) ; ==========================================================
Amigo grande estos talleres, pero creo que seria mejor si los solucionaras en un video explicando paso por paso, gracias
ResponderBorrar