De wet van Archimedes luidt:
De opwaartse kracht die een lichaam in een vloeistof of gas ondervindt is even groot als het gewicht van de verplaatste vloeistof of gas.
Deze opwaartse kracht wordt de archimedeskracht genoemd.
Deze wet werd door Archimedes gebruikt om te bewijzen dat een gouden kroon van Hiëro II door de edelsmid was vervalst door toevoeging van zilver. Een anekdote vertelt dat hij, toen hij het theoretische bewijs had gevonden toen hij in bad zat, enthousiast uit bad sprong en naakt de straat op liep en schreeuwde: “Eureka, eureka!” (Grieks: “εύρηκα!” = “Ik heb (het) gevonden!”)’’
Met deze wet is te besluiten dat een voorwerp zal zinken in een vloeistof als het soortelijk gewicht van dat voorwerp groter is dan het soortelijk gewicht van de vloeistof.
je hebt een database1 met de soortelijke gewichten van bepaalde substanties. De feiten hebben de vorm density(Ding,SoortelijkGewicht)
, waarbij het SoortelijkGewicht
is uitgedrukt in kg/m3.
Schrijf volgende predicaten:
sink(Ding)
dat waar is als Ding
zinkt als je het leg in zuiver water bij 4 graden Celsius. Voor de eenvoud mag je er van uitgaan dat alles met een massadichtheid van strikt meer dan 1000 kg/m3 zal zinken.bathtub_experiment(+List, -Sink, -Float)
dat een echte lijst List
opsplitst in elementen die zullen zinken (in Sink
) en zullen drijven in Float
. Hiervoor kun je partition/4
2 gebruiken.