BME Villamosmérnöki és Informatikai Kar
Műszaki informatika szak |
Nappali tagozat
1999/2000. tanév, tavaszi félév
|
datatype Num = Int of int | Real of real | List of Num listÍrjon két SML-függvényt
atlag
és szoras
néven egy Num
típusú
rekurzív sorozatbeli értékek átlagának a kiszámítására!
(* atlag : Num list -> real atlag ns = az értékek átlaga az ns rekurzív sorozatban *) (* szoras : Num list -> real szoras ns = az értékek szórása az ns rekurzív sorozatban *)Minden függvényhez írjon fejkommentet! Törekedjék arra, hogy hatékony legyen a megoldása!
- val n1 = Int 1; > val n1 = Int 1 : Num - val n2 = Real 2.3; > val n2 = Real 2.3 : Num - val n3 = List [Real 3.14, Int ~7]; > val n3 = List [Real 3.14, Int ~7] : Num - val n4 = [Int 2, Real 3.2, List [Int ~6, Real 6.7, List [Int 7]]]; > val n4 = [Int 2, Real 3.2, List [Int ~6, Real 6.7, List [Int 7]]] : Num list - val n5 = [List [], List [List []]]; > val n5 = [List [], List [List []]] : Num list - atlag [n1]; > val it = 1.0 : real - atlag n4; > val it = 2.58 : real - atlag n5; ! Uncaught exception: ! Div - szoras [n1]; > val it = 0.0 : real - szoras n4; > val it = 4.70846047026 : real - szoras n5; ! Uncaught exception: ! Div
x(1), x(2), ..., x(n)
sorozat
átlagát a (szumma [i=1-től n-ig] x(i)) /
n
képlettel számítsa ki.
Az x(1), x(2), ..., x(n)
sorozat
szórását a négyzetgyök((szumma [i=1-től n-ig]
x(i)*x(i))/n - X*X)
képlettel számítsa ki
(X
a sorozat átlaga).
A határidőre beadott, helyesen megoldott kis házi feladatért plusz 1 pont jár (a 100 pontból) a vizsgaosztályzat megállapításakor.