|
|
pl:miw:miw08_ruleruntimeo:thermostatmodel [2008/06/01 00:03] miw utworzono |
pl:miw:miw08_ruleruntimeo:thermostatmodel [2008/06/01 00:16] miw |
Implementacja obiektu thermostatModel z przykładu [[pl:miw:miw08_ruleruntimeo:mvctermostate|Termostat w modelu MVC]] | |
| |
<code prolog> | |
| |
:-object(thermostatModel, imports(properties)). | |
:-public(get_temp/4). | |
| |
| |
get_temp(Hour, Day, Month, T):- | |
checkDayTime(Hour), | |
season(S,Month), | |
checkWorkingTime(Day, Hour, O), | |
temperature(S, O, T), | |
write(T). | |
| |
checkWorkingTime(Day, Hour, O):- | |
workday(Day), | |
Hour =< 17, | |
Hour >= 9, | |
operation(O,0). | |
| |
checkWorkingTime(Day, Hour, O):- | |
workday(Day), | |
Hour < 9, | |
operation(O, 1). | |
| |
checkWorkingTime(Day, Hour, O):- | |
workday(Day), | |
Hour > 17, | |
operation(O, 1). | |
| |
checkWorkingTime(Day, _, O):- | |
\+ workday(Day), | |
weekday(_, Day), | |
operation(O, 1). | |
checkDayTime(Hour):- | |
Hour < 25, | |
Hour > 0. | |
| |
operation(duringWorkingHours,0). | |
operation(notDuringWorkingHours, 1). | |
| |
workday(Day):- | |
weekday(D, Day), | |
D \= sunday, | |
D \= saturday. | |
| |
weekday(monday, 1). | |
weekday(tuesday, 2). | |
weekday(wednesday, 3). | |
weekday(thursday, 4). | |
weekday(friday, 5). | |
weekday(saturday, 6). | |
weekday(sunday, 7). | |
| |
season(winter, 1). | |
season(winter, 2). | |
season(autumn, 3). | |
season(autumn, 4). | |
season(autumn, 5). | |
season(summer, 6). | |
season(summer, 7). | |
season(summer, 8). | |
season(spring, 9). | |
season(spring, 10). | |
season(spring, 11). | |
season(winter, 12). | |
| |
temperature(winter, duringWorkingHours, T):- | |
T is 18, | |
write('18 degrees'). | |
| |
temperature(winter, notDuringWorkingHours, T):- | |
T is 14, | |
write('14 degress'). | |
| |
temperature(autumn, duringWorkingHours, T):- | |
T is 20, | |
write('20 degress'). | |
| |
temperature(autumn, notDuringWorkingHours, T):- | |
T is 16, | |
write('16 degress'). | |
| |
temperature(summer, duringWorkingHours, T):- | |
T is 24, | |
write('24 degress'). | |
| |
temperature(summer, notDuringWorkingHours, T):- | |
T is 27, | |
write('27 degress'). | |
| |
temperature(spring, duringWorkingHours, T):- | |
T is 20, | |
write('20 degress'). | |
| |
temperature(spring, notDuringWorkingHours, T):- | |
T is 15, | |
write('15 degress'). | |
| |
| |
:-end_object. | |
| |
</code> | |