generated from pdepjm/2021-l-repoBase
-
Notifications
You must be signed in to change notification settings - Fork 0
/
programa.pl
101 lines (76 loc) · 2.72 KB
/
programa.pl
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
% Aquí va el código.
necesidad(respiracion, fisiologico).
necesidad(alimentacion, fisiologico).
necesidad(descanso, fisiologico).
necesidad(reproduccion, fisiologico).
necesidad(integridadFisica, seguridad).
necesidad(empleo, seguridad).
necesidad(salud, seguridad).
necesidad(amistad, social).
necesidad(afecto, social).
necesidad(intimidad, social).
necesidad(confianza, reconocimiento).
necesidad(respeto, reconocimiento).
necesidad(exito, reconocimiento).
necesidad(felicidad, autorrealizacion).
necesidad(libertad, autorrealizacion).
% 1) autorrealizacion, 2) reconocimiento, 3) social, 4) entretenimiento 5) seguridad, 6) fisiologico
nivelSuperior(autorrealizacion, reconocimiento).
nivelSuperior(reconocimiento, social).
nivelSuperior(social, seguridad).
nivelSuperior(seguridad, fisiologico).
% Punto 2
separacion(Necesidad1, Necesidad2, CantDeSeparacion):-
necesidad(Necesidad1, Nivel),
necesidad(Necesidad2, Nivel2),
cuantosEntremedio(Nivel, Nivel2, CantDeSeparacion).
cuantosEntremedio(Nivel, Nivel2, 0):-
Nivel = Nivel2.
cuantosEntremedio(Nivel, Nivel2, CantDeSeparacion):-
nivelSuperior(Nivel2, NivelIntermedio),
cuantosEntremedio(Nivel, NivelIntermedio, CantDeSepAnt),
CantDeSeparacion is CantDeSepAnt+1.
% Punto 3
necesita(carla, alimentacion).
necesita(carla, descanso).
necesita(carla, empleo).
necesita(juan, afecto).
necesita(juan, exito).
necesita(roberto, amistad).
necesita(manuel, libertad).
necesita(charly, afecto).
% Punto 4
necesidadMasJerarquica(Persona, Necesidad):-
necesita(Persona, Necesidad),
not((necesita(Persona, OtraNecesidad), necesidadMasNivel(OtraNecesidad, Necesidad))).
necesidadMasNivel(Necesidad, OtraNecesidad):-
separacion(OtraNecesidad, Necesidad, CantDeSeparacion),
CantDeSeparacion > 0.
% Punto 5
nivel(Nivel):- necesidad(_, Nivel).
persona(Persona):- necesita(Persona, _).
necesitaAlgoPrevioA(Persona,Necesidad):-
necesita(Persona,OtraNecesidad),
separacion(OtraNecesidad,Necesidad,Separacion),
Separacion > 0.
completoNivel(Persona, Nivel):-
nivel(Nivel),
persona(Persona),
not(nivelConNecesidades(Persona,Nivel)).
nivelConNecesidades(Persona, Nivel):-
necesita(Persona, Necesidad),
necesidad(Necesidad, Nivel).
nivelConNecesidades(Persona, Nivel):-
necesidad(Necesidad, Nivel),
necesitaAlgoPrevioA(Persona,Necesidad).
% Punto 6
cumpleMaslow(Persona):-
necesita(Persona, Necesidad),
forall(necesita(Persona, OtraNecesidad), mismoNivel(OtraNecesidad, Necesidad)).
mismoNivel(Necesidad, OtraNecesidad):-
separacion(Necesidad, OtraNecesidad, 0).
noCumpleMaslow(Persona):-
necesita(Persona, Necesidad),
necesita(Persona, OtraNecesidad),
separacion(Necesidad, OtraNecesidad, Separacion),
Separacion > 1.