Just nu i M3-nätverket
Jump to content

prolog


CamillaS

Recommended Posts

hej jag har en uppgift som lyder så här.

 

Uppgiften handlar om att skapa ett enkelt beslutsstödssystem för matlagning.

 

Predikaten i databasen har följande syntax:

 

at_home([ingredient(rice,2), ingredient(water,10)]).

 

I predikatet at_home, så är ris ingrediensen och 2 står för den mängd ris som finns hemma.

 

recipe(rice,[ingredient(rice,4),ingredient(salt,3),ingredient(water,5)]).

 

I predikatet recipe, så är ris maträtten och det andra argumentet är en lista av ingredienser som krävs för att laga

maträtten.

 

Uppgifter

 

Efter att ha definierat databasen (och lagt till några recept och ingredienser), skall ni skriva två predikat:

 

1. cook(X): ger svar på vad som kan lagas av de ingredienser som finns hemma. Frågan kan

också ställas “Kan jag laga maträtt X”. Svaren skall vara de olika alternativ som

är möjliga att laga.

 

2. buy(x,L): vilka kvantiteter av olika ingredienser som måste handlas för att laga maträtten

x. Programmet skall samla ihop behövda ingredienser och kvantiteter i listan L.

Frågan skall också kunna ställas buy(X,L).

 

En lösning till buy(rice,L), från ovanstående exempel, kan se ut på följande sätt:

L=[ingredient(rice,2),ingredient(salt,3)]

 

jag har klarat av ettan och nästan tvåan.

jag undrar bara hur man kan skriva funktionen om man nu har ingrediensen hemma men inte tillräckligt. då måste man ju jämföra skillnaden på något sätt.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...