0votos

java en Haskell

por josejuan hace 3 años

.

Genera este ejercicio orientado a objetos y demuestre que capacidades tiene usted desarrollalo y buena suerte

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{-# LANGUAGE RecordWildCards #-} 
 
-- Configuración con las tasas del colegio 
data Tasas = Tasas { matricula   :: Double 
                   , mensualidad :: Double 
                   , socpadres   :: Double 
                   , hijosDto    :: [Double] } 
 
-- Los datos relevantes de cada familia 
data Familia = Familia { hijos :: Int } 
 
-- Calcula el coste total familiar 
costeFamilia :: Tasas -> Familia -> Double 
costeFamilia (Tasas {..}) (Familia {..}) = 
 
    let costeHijo    = matricula + mensualidad 
        costeFamilia = socpadres + costeHijo * fromIntegral hijos 
        descuento    = hijosDto !! hijos 
 
    in  costeFamilia * (1 - descuento) 
 
 
 
 
 
 
 
-- Por ejemplo, para mostrar la tabla de precios para familias de 1 a 8 hijos 
main = do 
 
    let tasas = Tasas { matricula   = 100 
                      , mensualidad = 30 
                      , socpadres   = 120 
                      , hijosDto    = [0,0,0.1,0.25] ++ repeat 0.3 } 
 
    forM_ [1..8] $ \i -> 
        putStrLn $ show i ++ " hijos := " ++ show (costeFamilia tasas $ Familia i) 
 
{- 
        1 hijos := 250.0 
        2 hijos := 342.0 
        3 hijos := 382.5 
        4 hijos := 448.0 
        5 hijos := 539.0 
        6 hijos := 630.0 
        7 hijos := 721.0 
        8 hijos := 812.0 
-} 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.