From 0e938416e813864df7dd23dffb4f8e97fd8ade0e Mon Sep 17 00:00:00 2001 From: paltherr Date: Fri, 7 Mar 2003 14:06:13 +0000 Subject: - Added Course-2002-01 --- test/files/run/Course-2002-01.check | 34 +++++ test/files/run/Course-2002-01.scala | 240 ++++++++++++++++++++++++++++++++++++ 2 files changed, 274 insertions(+) create mode 100644 test/files/run/Course-2002-01.check create mode 100644 test/files/run/Course-2002-01.scala (limited to 'test/files') diff --git a/test/files/run/Course-2002-01.check b/test/files/run/Course-2002-01.check new file mode 100644 index 0000000000..17b30bf3c2 --- /dev/null +++ b/test/files/run/Course-2002-01.check @@ -0,0 +1,34 @@ +232 +667 +11 +10 +62.8318 +62.8318 +62.8318 +4.0 +81.0 +256.0 +25.0 +1 +737.0 +1.0 +0.0 +1.0 +76.0 +1.4142156862745097 +1.7321428571428572 +2.0000000929222947 +1.4142156862745097 +1.7321428571428572 +2.0000000929222947 +1.4142156862745097 +1.7321428571428572 +2.0000000929222947 +sqrt(2) = 1.4142135623746899 +sqrt(2) = 1.4142135623746899 +cbrt(2) = 1.2599210500177698 +1 +1 1 +1 2 1 +1 3 3 1 +1 4 6 4 1 diff --git a/test/files/run/Course-2002-01.scala b/test/files/run/Course-2002-01.scala new file mode 100644 index 0000000000..33b8e2246c --- /dev/null +++ b/test/files/run/Course-2002-01.scala @@ -0,0 +1,240 @@ +//############################################################################ +// Programmation IV - 2002 - Week 01 +//############################################################################ +// $Id$ + +module M0 { + + //########################################################################## + + java.lang.System.out.println(87 + 145); + java.lang.System.out.println(1000 - 333); + java.lang.System.out.println(5 + 2 * 3); + + //########################################################################## + + def size = 2; + def pi = 3.14159; + def radius = 10; + def circumference = 2 * pi * radius; + + java.lang.System.out.println(5 * size); + java.lang.System.out.println(2 * pi * radius); + java.lang.System.out.println(circumference); + java.lang.System.out.println((2 * pi) * radius); + + //########################################################################## + + def square(x: Double) = x * x; + + java.lang.System.out.println(square(2)); + java.lang.System.out.println(square(5 + 4)); + java.lang.System.out.println(square(square(4))); + + //########################################################################## + + def sumOfSquares(x: Double, y: Double) = square(x) + square(y); + + java.lang.System.out.println(sumOfSquares(3, 2+2)); + + //########################################################################## + + def loop: Int = loop; + def first(x: Int, y: Int) = x; + def constOne(x: Int, def y: Int) = 1; + + java.lang.System.out.println(constOne(1, loop)); + + //########################################################################## + + def abs(x: Double) = if (x >= 0) x else -x; + + java.lang.System.out.println(abs(737)); + java.lang.System.out.println(abs(1)); + java.lang.System.out.println(abs(0)); + java.lang.System.out.println(abs(-1)); + java.lang.System.out.println(abs(-76)); + + //########################################################################## + + def sqrtIter0(guess: Double, x: Double): Double = + if (isGoodEnough0(guess, x)) guess + else sqrtIter0(improve0(guess, x), x); + + def improve0(guess: Double, x: Double) = + (guess + x / guess) / 2; + + def isGoodEnough0(guess: Double, x: Double) = + abs(square(guess) - x) < 0.001; + + def sqrt0(x: Double) = sqrtIter0(1.0, x); + + java.lang.System.out.println(sqrt0(2)); + java.lang.System.out.println(sqrt0(3)); + java.lang.System.out.println(sqrt0(4)); + + //########################################################################## + + def sqrt1(x: Double) = { + def sqrtIter1(guess: Double, x: Double): Double = + if (isGoodEnough1(guess, x)) guess + else sqrtIter1(improve1(guess, x), x); + + def improve1(guess: Double, x: Double) = + (guess + x / guess) / 2; + + def isGoodEnough1(guess: Double, x: Double) = + abs(square(guess) - x) < 0.001; + + sqrtIter1(1.0, x) + } + + java.lang.System.out.println(sqrt1(2)); + java.lang.System.out.println(sqrt1(3)); + java.lang.System.out.println(sqrt1(4)); + + //########################################################################## + + def sqrt2(x: Double) = { + def sqrtIter2(guess: Double): Double = + if (isGoodEnough2(guess)) guess + else sqrtIter2(improve2(guess)); + + def improve2(guess: Double) = + (guess + x / guess) / 2; + + def isGoodEnough2(guess: Double) = + abs(square(guess) - x) < 0.001; + + sqrtIter2(1.0) + } + + java.lang.System.out.println(sqrt2(2)); + java.lang.System.out.println(sqrt2(3)); + java.lang.System.out.println(sqrt2(4)); + + //########################################################################## +} + +//############################################################################ + +module M1 { + def abs(x: Double) = if (x >= 0) x else -x; + + def sqrt(x: Double): Double = { + def sqrtIter(prev: Double, guess: Double): Double = + if (isGoodEnough(prev, guess)) guess + else sqrtIter(guess, improve(guess)); + + def improve(guess: Double) = (guess + x / guess) / 2; + + def isGoodEnough(prev: Double, guess: Double) = + abs(prev - guess) / guess < 0.001; + + sqrtIter(1.0, improve(1.0)) + } + + java.lang.System.out.println("sqrt(2) = " + sqrt(2)); +} + +//############################################################################ + +module M2 { + def abs(x: Double) = if (x >= 0) x else -x; + + def sqrt(x:Double):Double = { + def sqrtIter(guess:Double):Double = { + val next = improve(guess); + if (isGoodEnough(guess,next)) next + else sqrtIter(next) + } + + def improve(guess:Double) = (guess+x/guess)/2; + + def isGoodEnough(prev:Double,guess:Double) = abs(prev-guess)/guess<0.001; + + sqrtIter(1.0) + } + + java.lang.System.out.println("sqrt(2) = " + sqrt(2)); +} + +//############################################################################ + +module M3 { + def abs(x: Double) = if (x >= 0) x else -x; + + def cbrt(x:Double):Double = { + def cbrtIter(guess:Double):Double = { + val next = improve(guess); + if (isGoodEnough(guess,next)) next + else cbrtIter(next) + } + + def improve(y:Double) = (x/(y*y)+2*y)/3; + + def isGoodEnough(prev:Double,guess:Double) = abs(prev-guess)/guess<0.001; + + cbrtIter(1.0) + } + + java.lang.System.out.println("cbrt(2) = " + cbrt(2)); +} + +//############################################################################ + +module M4 { + def pascal(c: Int, l: Int): Int = + if (c <= 0 || c >= l) 1 + else pascal(c - 1, l - 1) + pascal(c, l - 1); + + java.lang.System.out.print(pascal(0,0)); + java.lang.System.out.println(); + + java.lang.System.out.print(pascal(0,1)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(1,1)); + java.lang.System.out.println(); + + java.lang.System.out.print(pascal(0,2)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(1,2)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(2,2)); + java.lang.System.out.println(); + + java.lang.System.out.print(pascal(0,3)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(1,3)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(2,3)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(3,3)); + java.lang.System.out.println(); + + java.lang.System.out.print(pascal(0,4)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(1,4)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(2,4)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(3,4)); + java.lang.System.out.print(' '); + java.lang.System.out.print(pascal(4,4)); + java.lang.System.out.println(); +} + +//############################################################################ + +module Test { + def main(args: Array[String]): Unit = { + M0; + M1; + M2; + M3; + M4; + () + } +} + +//############################################################################ -- cgit v1.2.3