Advertisement
cardel

Ejemplo201Feb

Feb 1st, 2021
3,465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 2.91 KB | None | 0 0
  1. ;.
  2.  
  3. ;;Primer punto
  4.  
  5.  
  6.  
  7. ;;Autor: Carlos A Delgado
  8. ;;Fecha: 01 de Feb de 2021
  9. ;;Contrato: buscar-mayor:lista de numeros -> numero
  10. ;;Descripción: Esta función toma una lista de números y retorna un número el cual es el mayor de la lista (asumir que los números son diferentes)
  11. ;;Ejemplo:
  12. ;;Por ejemplo (cons 1 (cons 2 (cons 3 (cons 4 (cons 5 empty))))) 5
  13. ;;(cons 1 (cons 4 (cons 8 (cons 2 (cons 0 empty))))) 8
  14. (define (buscar-mayor lst)
  15.   (if
  16.    (and (cons? lst) (= (length lst) 5))
  17.    (cond
  18.      [(and
  19.        (> (first lst) (first (rest lst))) ;;Comparo primero con segundo
  20.        (> (first lst) (first (rest (rest lst)))) ;;Comparo primero con tercero
  21.        (> (first lst) (first (rest (rest (rest lst))))) ;Comparo primero con cuarto
  22.        (> (first lst) (first (rest (rest (rest (rest lst)))))) ;Comparo con primero con quinto
  23.        )
  24.       (first lst)
  25.       ]
  26.      [(and
  27.        (> (first (rest lst)) (first (rest (rest lst)))) ;;Segundo con tercero
  28.        (> (first (rest lst)) (first (rest (rest (rest lst))))) ;;Segundo con cuarto
  29.        (> (first (rest lst)) (first (rest (rest (rest (rest lst)))))) ;;Segundo con quinto
  30.        )
  31.       (first (rest lst))
  32.       ]
  33.      [(and
  34.        (> (first (rest (rest lst))) (first (rest (rest (rest lst))))) ;;Tercero con cuarto
  35.        (> (first (rest (rest lst))) (first (rest (rest (rest (rest lst)))))) ;Tercero con quinto
  36.        )
  37.       (first (rest (rest lst)))]
  38.      [(> (first (rest (rest (rest lst)))) (first (rest (rest (rest (rest lst))))))
  39.       (first (rest (rest (rest lst))))]
  40.      [else (first (rest (rest (rest (rest lst)))))]
  41.    
  42.      )
  43.    (error "La lista de debe ser de tamaño 5")
  44.    )
  45.   )
  46. ;;pruebas
  47.  
  48. (check-expect (buscar-mayor (cons 1 (cons 2 (cons 3 (cons 4 (cons 5 empty)))))) 5)
  49. (check-expect (buscar-mayor (cons 1 (cons 4 (cons 8 (cons 2 (cons 0 empty)))))) 8)
  50.  
  51. ;;Autor: Carlos A Delgado
  52. ;;Fecha: 01 de Feb de 2021
  53. ;;COntrato: busca-simbolo lista de simbolos, simbolo -> booleano
  54. ;;Próposito: Esta función indica si hay un símbolo en una lista de tamaño 5
  55. ;;Ejemplos
  56. ;;(cons 'perro (cons 'gato (cons 'mula (cons 'vaca (cons 'lobo empty))))) 'vaca #true
  57. ;;(cons 'perro (cons 'gato (cons 'mula (cons 'vaca (cons 'lobo empty))))) 'Vaca #false
  58. (define (busca-simbolo lst sym)
  59.   (if
  60.    (and (list? lst) (symbol? sym) (= (length lst) 5))
  61.    (if
  62.     (or
  63.      (symbol=? (first lst) sym)
  64.      (symbol=? (first (rest lst)) sym)
  65.      (symbol=? (first (rest (rest lst))) sym)
  66.      (symbol=? (first (rest (rest (rest lst)))) sym)
  67.      (symbol=? (first (rest (rest (rest (rest lst))))) sym))
  68.     #true
  69.     #false
  70.     )
  71.    (error "Debe ingresar una lista de tamaño 5 y un símbolo")
  72.    )
  73.   )
  74.  
  75. ;;PRuebas
  76.  
  77. (check-expect (busca-simbolo (cons 'perro (cons 'gato (cons 'mula (cons 'vaca (cons 'lobo empty))))) 'vaca) #true)
  78. (check-expect (busca-simbolo (cons 'perro (cons 'gato (cons 'mula (cons 'vaca (cons 'lobo empty))))) 'Vaca) #false)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement