Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;.
- ;;Primer punto
- ;;Autor: Carlos A Delgado
- ;;Fecha: 01 de Feb de 2021
- ;;Contrato: buscar-mayor:lista de numeros -> numero
- ;;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)
- ;;Ejemplo:
- ;;Por ejemplo (cons 1 (cons 2 (cons 3 (cons 4 (cons 5 empty))))) 5
- ;;(cons 1 (cons 4 (cons 8 (cons 2 (cons 0 empty))))) 8
- (define (buscar-mayor lst)
- (if
- (and (cons? lst) (= (length lst) 5))
- (cond
- [(and
- (> (first lst) (first (rest lst))) ;;Comparo primero con segundo
- (> (first lst) (first (rest (rest lst)))) ;;Comparo primero con tercero
- (> (first lst) (first (rest (rest (rest lst))))) ;Comparo primero con cuarto
- (> (first lst) (first (rest (rest (rest (rest lst)))))) ;Comparo con primero con quinto
- )
- (first lst)
- ]
- [(and
- (> (first (rest lst)) (first (rest (rest lst)))) ;;Segundo con tercero
- (> (first (rest lst)) (first (rest (rest (rest lst))))) ;;Segundo con cuarto
- (> (first (rest lst)) (first (rest (rest (rest (rest lst)))))) ;;Segundo con quinto
- )
- (first (rest lst))
- ]
- [(and
- (> (first (rest (rest lst))) (first (rest (rest (rest lst))))) ;;Tercero con cuarto
- (> (first (rest (rest lst))) (first (rest (rest (rest (rest lst)))))) ;Tercero con quinto
- )
- (first (rest (rest lst)))]
- [(> (first (rest (rest (rest lst)))) (first (rest (rest (rest (rest lst))))))
- (first (rest (rest (rest lst))))]
- [else (first (rest (rest (rest (rest lst)))))]
- )
- (error "La lista de debe ser de tamaño 5")
- )
- )
- ;;pruebas
- (check-expect (buscar-mayor (cons 1 (cons 2 (cons 3 (cons 4 (cons 5 empty)))))) 5)
- (check-expect (buscar-mayor (cons 1 (cons 4 (cons 8 (cons 2 (cons 0 empty)))))) 8)
- ;;Autor: Carlos A Delgado
- ;;Fecha: 01 de Feb de 2021
- ;;COntrato: busca-simbolo lista de simbolos, simbolo -> booleano
- ;;Próposito: Esta función indica si hay un símbolo en una lista de tamaño 5
- ;;Ejemplos
- ;;(cons 'perro (cons 'gato (cons 'mula (cons 'vaca (cons 'lobo empty))))) 'vaca #true
- ;;(cons 'perro (cons 'gato (cons 'mula (cons 'vaca (cons 'lobo empty))))) 'Vaca #false
- (define (busca-simbolo lst sym)
- (if
- (and (list? lst) (symbol? sym) (= (length lst) 5))
- (if
- (or
- (symbol=? (first lst) sym)
- (symbol=? (first (rest lst)) sym)
- (symbol=? (first (rest (rest lst))) sym)
- (symbol=? (first (rest (rest (rest lst)))) sym)
- (symbol=? (first (rest (rest (rest (rest lst))))) sym))
- #true
- #false
- )
- (error "Debe ingresar una lista de tamaño 5 y un símbolo")
- )
- )
- ;;PRuebas
- (check-expect (busca-simbolo (cons 'perro (cons 'gato (cons 'mula (cons 'vaca (cons 'lobo empty))))) 'vaca) #true)
- (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