# Right Triangle Routine

This is the main section.

RightTriangle /* compute area and hypotenuse of a right triangle this routine contains examples of new ObjectScript features */ Write !, "Compute the area and hypotenuse of a right triangle", !, "given the lengths of its two sides." Read !!, "First, choose a unit of measurement. ", !, "(i)nches, (f)eet, (m)iles, ", "(c)entimeters, m(e)ters, (k)ilometers: ", units // translate units to a full word Set units = $case( $extract( units, 1), "i":"inches", "f":"feet", "m":"miles", "c":"centimeters", "e":"meters", "k":"kilometers", :"units" ) Do { Read !!, "Length of side 1: ", side1 Quit:(side1 = "") // exit the do loop } While $$IsNegative( side1 ) Quit:(side1 = "") // exit the routine Do { Read !, "Length of side 2: ", side2 Quit:(side2 = "") // exit the do loop } While $$IsNegative( side2 ) Quit:(side2 = "") // exit the routine Do Compute( units, side1, side2) Write !!, "Current date: " Do ^%D Write !, "Current time:" Do ^%T Quit

This section contains a user-defined function and a procedure.

IsNegative(num) PUBLIC // is num negative? { If (num '> 0) { Write " Enter a positive number." Quit 1 // return "true" } Else { Write " Accepted." Quit 0 // return "false" } } Compute(units,A,B) // compute and display area and hypotenuse { Set area = ( A * B ) / 2, area = $justify( area, 0, 2), squaredSides = ( A ** 2 ) + ( B ** 2 ) // $zsqr function computes square root Set hypot = $zsqr(squaredSides) // round hypot to 2 places Set hypot = $justify( hypot, 0, 2) Write !!, "The area of this triangle is ", area, " square ", units, ".", !!, "The hypotenuse is ", hypot, " ", units, "." }