联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2023-02-12 08:32

COMP 3007 A/B (Winter 2023) − "Programming Paradigms"

Specification for Assignment 3

Your submission for this assignment must be commented and must include both your name and your

student number as a comment at the top of every source file you submit. Each of your submitted files must

use a file name beginning 'comp3007_w23_#########_assignment_03' (replacing the number signs with

your own student number) and any submissions that crash (i.e., terminate with an error) on execution will

automatically receive a mark of 0.

Officially, the Due Date for this Assignment is:

Friday, February 10th, 2021, at 11:59pm EST.

Late Submissions are Accepted Without Penalty Until Sunday, February 12th, by 11:59pm EST.

Submissions received after that will not be accepted and will receive a mark of 0.

The objective of this assignment is to allow you to practice with guards and tracing in Haskell by designing

and implementing a simple program for determining the real-valued roots of a second-order polynomial

using the quadratic formula.

A second-order polynomial is a polynomial of the form… 𝑎𝑥

2 + 𝑏𝑥 + 𝑐

…and the quadratic formula for determining real-valued roots is… 𝑥 =

−𝑏 ± √𝑏

2 − 4𝑎𝑐

2𝑎

If you do not recall how to use this formula, you are directed to first take a few minutes and read the article

at https://mathworld.wolfram.com/QuadraticEquation.html. Essentially, the use of this formula will result

in either 0, 1, or 2 real-valued roots, depending upon whether the "discriminant" (i.e., the 𝑏

2 − 4𝑎𝑐

subexpression under the radical) is negative, zero, or positive (respectively).

For this assignment:

• you must write a function that takes three Double arguments and produces one [Double] (i.e., a list

of Doubles) return. If the three arguments correspond to the coefficients of a second-order

polynomial (i.e., a, b, and c, respectively), then the return value list should contain all the real-valued

roots of that polynomial. A valid return value would thus be either an empty list (i.e., []), a list

containing one element (e.g., [1.23]), or a list containing two elements (e.g., [1.23, 4.56]).

• your solutions must use guards and is not permitted to use the if-then-else syntax.

• your solution must(in every use case) use the "trace" function to provide an explanation of how your

answer was determined. To clarify, if the coefficients you passed as arguments resulted in a negative

discriminant, then that is your explanation for why the return value would be the empty list [] and

that explanation must be displayed. Please recall that the trace function must be imported from

Debug.Trace and takes two arguments (a String and something else) before displaying the first

argument string and then returning the second argument.

• you may safely assume that your function will always receive three arguments of type Double, and

that the first argument (i.e., co-efficient 'a') will always have a non-zero value.

• you must test all branches of your function thoroughly, using test cases you have designed yourself

and have included as comments at the top of the program.


相关文章

版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp