Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Prolog] Struktury - wydobywanie danych i ich przetwarzanie

Ostatnio zmodyfikowano 2011-05-13 21:29
Autor Wiadomość
DejaVu
Temat założony przez niniejszego użytkownika
[Prolog] Struktury - wydobywanie danych i ich przetwarzanie
» 2011-05-13 20:34:54
Mam następujące zapytanie:
?- make_time(odjazd(13:33),Wynik).
Chciałbym aby perdykat make_time (czy jak to się tam zwie) zwrócił mi czas w minutach, czyli generalnie wykonał obliczenie: 13*60+33. Problem w tym, że nie wiem jak wydobyć godzinę i minuty ze struktury przy takim wywołaniu, jakie podałem. Help? :)

/edit:
Upraszczając sprawy - mam fakt:
czas(odjazd(10:15)).
Do tego faktu mogę dać zapytanie:
?- czas(odjazd(Wynik)).
W wyniku tego działania otrzymam:
Wynik = 10:15.
Wynik jest poprawny, jednak ja chcę uzyskać czas za pomocą perdykatu, tj. zadając pytanie:
?- dajCzas(odjazd(10:15),Wynik).
Próbowałem np. tak:
dajCzas(Odjazd,Wynik) :- Wynik = odjazd(Odjazd).
Wynik niestety jest daleki od tego co chcę uzyskać, tj.
Wynik = odjazd(odjazd(10:15)).
Jak się uda to osiągnąć to potem dopiero chcę powalczyć z wykonaniem obliczeń...

/edit2:
Pierwszy level osiągnięty:
dajCzas(Odjazd,Wynik) :- odjazd(Wynik) = Odjazd.
Zapytanie:
?- dajCzas(odjazd(10:15),Wynik).
Wynik:
Wynik = 10:15.

Drugi poziom to jak wykonać na tym obliczenia?
P-33013
DejaVu
Temat założony przez niniejszego użytkownika
» 2011-05-13 21:29:28
Uff... :) Perdykat:
dajMinuty(Odjazd,Wynik) :- odjazd(Godziny:Minuty) = Odjazd, Wynik is Godziny*60+Minuty.

Zapytanie:
?- dajMinuty(odjazd(10:15),Wynik).

Wynik:
Wynik = 615.
P-33016
« 1 »
  Strona 1 z 1