CamillaS Posted October 15, 2008 Share Posted October 15, 2008 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.