scheme: divisor de un numero

Para el siguiente ejemplo debemos Averiguar si dados dos números, uno es divisor de otro, para esto tendremos obtendremos dos datos numéricos de entrada pero antes de hacer el programa es importante comprender el problema.

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



divisor de un numero scheme





; ==========================================================
; 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)
; ==========================================================
Compartir en facebook twitter Google tumblr pinterest

Entradas similares

1 Comentario

  1. Amigo grande estos talleres, pero creo que seria mejor si los solucionaras en un video explicando paso por paso, gracias

    ResponderBorrar