Re: Unusually clear pseudocode example
DB James wrote:
>
>
> Hi,
>
> Found this on the web while searching on "pseudocode" -- it seems like a good
> clear example of a presention of an algorithm. A collection of such
> algorithms,
> done consistently in form, would be valuable. As it is, the pseudocode on the
> web seems a mish-mash that ranges widely in value. Even this example is
> mildly
> biased toward C++. Ideally there would be no program bias. I did use this
> in writing a slope and intercept function.
>
> ------------------------------------------------------------------
> from:
> <a
> href="http://www.mines.edu/Academic/courses/math_cs/macs261/LABS/F00/lab7.html">http://www.mines.edu/Academic/courses/math_cs/macs261/LABS/F00/lab7.html</a>
>
> LEAST SQUARES LINE
>
> PURPOSE: Find the equation of the least squares line for a set of n data
> points (x,y). Slope is its slope, and YIntercept it its y intercept.
> SumX, SumY, SumX2, and SumXY are the sums of the x's, the y's, the squares of
>
> the x's, and the products x*y. XMean and YMean are the means of the x's
> and the y's, respectively
>
> INPUT: A collection of data points (x,y)
>
> OUTPUT: The equation of the least squares line
>
>
> ALGORITHM:
>
> Step 1 Initialize n, SumX, SumY, SumX2, SumXY all to 0.
>
> Step 2 Read the x-coordinate of the first data point x.
>
> Step 3 While the end of data has not been encountered, do the following
>
> Step 4 Read the y-coordinate of the data point, y.
>
> Step 5 Increment n by 1.
>
> Step 6 Add x to SumX
>
> Step 7 Add x^2 to SumX2
>
> Step 8 Add y to SumY
>
> Step 9 Add x*y to SumXY
>
> Step 10 Read the next data point x,y
>
> End while
>
>
> Step 11 If n > 0 then call CalculateSlopeIntercept
> and display least squares line
>
> Step 12 Else Display a message that no data points were read.
>
> End If/Else
>
> End Main
>
> PROCEDURE: CalculateSlopeIntercept
>
> INPUT: SumX, SumY, SumX2, SumXY, n
>
> OUTPUT: Slope of least squares line, and YIntercept of least
> squares line.
>
> ALGORITHM:
>
> Step1 calculate XMean = SumX/n and YMean = SumY/n
>
> Step2 calculate Slope = (SumXY - SumX*YMean)/(SumX2 - SumX*XMean)
>
> Step3 calculate YIntercept = YMean - Slope * XMean
>
> Step4 return Slope and YIntercept
>
> The algorithm assumes a main portion and a function call to a procedure called
> ComputeSlopeIntercept. In C++ this would be a main() function and a void
> function
> ComputeSlopeIntercept with 5 value parameters and 2 reference parameters. Step
> 4 in the procedure algorithm, return Slope and YIntercept is achieved through
> assignment of the reference parameters. No explicit return statement is
> needed.
>
> The output of the program is bracketed by an if/else structure to avoid
> calling
> the procedure ComputeSlopeIntercept with no data points. The output should
> include
> the format of a line in slope-intercept form y = mx + b. This equation should
> be displayed on the screen.
> ----------------------------------------------------------------------
>
> --Quark
I haven't worked on it for awhile, but I wish that I had clear explanations like
this for the Great Computer Language Shootout code... it would make the task much
easier.
What I do now is translate from C or whatever other language is the most clear
but I still don't always understand what I'm doing. If I had clearer explanations
I would be able to see how to use Euphoria's strengths better.
j.
|
Not Categorized, Please Help
|
|