Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;.
- (define-struct profesor (nombre edad curso1 curso2 curso3))
- (define-struct curso (nombre semestre num-estudiantes))
- ;;Promedio de estudiantes
- (define profesorA (make-profesor 'Juan 30 (make-curso 'Calculo 1 100)
- (make-curso 'FDP 1 50)
- (make-curso 'ITI 1 55)))
- (define profesorB (make-profesor 'Ana 45 (make-curso 'Español 2 30)
- (make-curso 'CalculoII 2 50)
- (make-curso 'Sexualidad 3 25)))
- ;;Si presupongo por el promedio de estudiantes
- ;;ProfesorA (100+50+55)/3 68.3
- ;;ProfesorB (30+50+25)/3 35
- ;;Autor: Carlos A Delgado
- ;;Fecha: 25 de Enero de 2021
- ;;Contrato: calcular-promedio-estudiantes: profesor -> numero
- ;;EJemplos
- ;;ProfesorA 68.3333
- ;;ProfesorB 35
- (define (calcular-promedio-estudiantes prof)
- (cond
- [(not (profesor? prof)) (error "Debe ingresar un profesor")]
- [else
- (/
- (+
- (curso-num-estudiantes (profesor-curso1 prof))
- (curso-num-estudiantes (profesor-curso2 prof))
- (curso-num-estudiantes (profesor-curso3 prof))
- )
- 3)]))
- (check-within (calcular-promedio-estudiantes profesorA) 68.3 0.1)
- (check-within (calcular-promedio-estudiantes profesorB) 35 0)
- ;;Obtener profesor con más estudiantes
- ;;Ejemplo
- ;;profesorA y profesorB, respuesta profesorA
- ;;Autor: Carlos A Delgado
- ;;Fecha: 25 de Enero de 2021
- ;;Contrato: profesor-mas-estudiantes: profesor, profesor -> profesor
- ;;Ejemplos
- ;;ProfesorA (205 estudiantes) y el profesorB (105) , respuesta profesorA
- ;;Codigo
- (define (profesor-mas-estudiantes profA profB)
- (cond
- [(not (and (profesor? profA) (profesor? profB))) (error "Ambas entradas deben ser estructuras profesor")]
- [(> (suma-estudiantes profA) (suma-estudiantes profB)) profA]
- [else profB]
- ))
- ;;contrato: suma-estudiantes: profesor -> numero
- (define (suma-estudiantes profx)
- (+
- (curso-num-estudiantes (profesor-curso1 profx))
- (curso-num-estudiantes (profesor-curso2 profx))
- (curso-num-estudiantes (profesor-curso3 profx))
- ))
- (check-expect (profesor-mas-estudiantes profesorA profesorB) profesorA)
- (check-error (profesor-mas-estudiantes profesorA 50))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement