Advertisement
cardel

FDP recursión

Feb 22nd, 2021
2,718
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.27 KB | None | 0 0
  1. ;;Autor: Carlos A Delgado
  2. ;;Fecha: 22 de Feb de 2021
  3. ;;Contrato: factorial: numero -> numero
  4. ;;Propósito: ilustrar la recursión
  5. ;;Ejemplos
  6. ;;5! = 5*4*3*2*1*1 = 120
  7. ;;6! = 720
  8. ;;2! = 2
  9. (define (factorial n)
  10.   (cond
  11.     [(= n 0) 1]
  12.     [else (* n (factorial (- n 1)))]
  13.     ))
  14.  
  15. (check-expect (factorial 5) 120)
  16. (check-expect (factorial 6) 720)
  17. (check-expect (factorial 2) 2)
  18.  
  19.  
  20. ;;Autor: Carlos A Delgado
  21. ;;Fecha: 22 de Feb de 2021
  22. ;;Contrato: multiplicacion: numero, numero -> numero
  23. ;;Propósito: Ilustrar la recursión de la multiplicación
  24. ;;Ejemplo
  25. ;;a = 2 b = 5  10
  26. ;;a = 8 b = 0  0
  27. ;;a = 100 b = 10 1000
  28. (define (multiplicacion a b)
  29.   (cond
  30.     [(= b 0) 0]
  31.     [else (+ a (multiplicacion a (- b 1)))]
  32.     ))
  33.  
  34. (check-expect (multiplicacion 2 5) 10)
  35. (check-expect (multiplicacion 8 0) 0)
  36. (check-expect (multiplicacion 100 10) 1000)
  37.  
  38. ;;Autor: Carlos A Delgado
  39. ;;Fecha: 22 de Feb de 2021
  40. ;;Contrato: elevar: numero, numero -> numero
  41. ;;Propósito: Ilustrar la potenciación como regla recursiva
  42. ;;Ejemplos
  43. ;;a = 2 b = 3  8
  44. ;;a = 3 b = 2  9
  45. ;;a = 4 b = 3  64
  46. (define (elevar a b)
  47.   (cond
  48.     [(= b 0) 1]
  49.     [else (multiplicacion a (elevar a (- b 1)))]
  50.     ))
  51.  
  52. (check-expect (elevar 2 3) 8)
  53. (check-expect (elevar 3 2) 9)
  54. (check-expect (elevar 4 3) 64)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement