برنامهای بنویسد که با دریافت تعداد نفرات یک مهمانی و همچنین تعداد پیتزای موجود و البته تعداد تکههای هر پیتزا محاسبه کند که بهر نفر چند تکه میرسد. قطعات قابل ریز شدن نیستند و بنابرین سهم هر نفر عدد صحیح خواهد بود و طبیعتا در برخی موارد تعدادی پیتزا باقی خواهد ماند. بنابراین برنامه سهم نفر و تعداد باقی مانده را خواهد نوشت. برای مثال ورودی های زیر خروجی نوشته شده را خواهد داد:
Input:
How many people? 4
How many pizzas do you have? 5
How many slices each pizza have? 7
Output:
4 People with 5 pizzas which have 7 slices per each
Each Person will have 8 slices
there are 3 leftover
کد این برنامه بشرح زیر خواهد بود:
-module(ex8). -export([main/0]). main() -> try run() catch error:_Error -> io:format("Please Enter only Numeric type~n"); throw:negativeNumber -> io:format( "Please Enter only non-zero positive number~n") end. run() -> {Poeple, Pizzas, Slices} = readServing(), io:fwrite("~w People with ~w pizzas which have ~w slices per each~n", [Poeple,Pizzas,Slices]), io:fwrite("Each Person will have ~w slices~n there are ~w leftover~n", [(Pizzas*Slices) div Poeple, (Pizzas*Slices) rem Poeple]). readServing() -> {ok,[Poeple]} = io:fread( "How many people? ","~d"), {ok,[Pizzas]} = io:fread( "How many pizzas do you have? ","~d"), {ok,[Slices]} = io:fread( "How many slices each pizza have? ","~d"), if Poeple =< 0 orelse Pizzas =< 0 orelse Slices =< 0 -> throw(negativeNumber); true -> ok end, {Poeple,Pizzas,Slices}.