In: Computer Science
ASAP
(Algebra: vertex form equations) The equation of a parabola can be expressed in either standard form (y = ax^2 + bx + c) or vertex form (y = a(x-h)^2 + k). Write a program that prompts the user to enter a, b, and c as integers in standard form and displays h and k in the vertex form. Hint: Use the Rational class in LiveExample 13.13 for computing h and k. Use the template at https://liveexample.pearsoncmg.com/test/Exercise13_21Test.txt for your code. Sample Run 1 Enter a, b, c: 1 3 1 h is -3/2 k is -5/4 Sample Run 2 Enter a, b, c: 2 3 4 h is -3/4 k is 23/8 Class Name: Exercise13_21 If you get a logical or runtime error, please refer https://liveexample.pearsoncmg.com/faq.html.
Hi, Please find the solution and rate the answer. Comments inline. Thanks
package com.company; import java.util.Scanner; public class Exercise13_21 { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { System.out.println("Enter the Coefficients"); System.out.println("Enter a:"); int a = sc.nextInt(); System.out.println("Enter b:"); int b = sc.nextInt(); System.out.println("Enter c:"); int c = sc.nextInt(); //so we need to compute 'h' which is -b/(2*a) Rational h = new Rational((-1)*b,2*a); //finding k Rational hsquare = new Rational(h.multiply(h).getNumerator(),h.multiply(h).getDenominator()); Rational first = new Rational(hsquare.multiply(new Rational(a,1)).getNumerator(),hsquare.multiply(new Rational(a,1)).getDenominator()); Rational second = h.multiply(new Rational(b,1)); Rational finalAnswer = first.add(second).add(new Rational(c,1)); System.out.println("Vertex form: h,k"+h+" and k is "+finalAnswer); } } // Copy from the book class Rational extends Number implements Comparable<Rational> { // Data fields for numerator and denominator private long numerator = 0; private long denominator = 1; /** Construct a rational with default properties */ public Rational() { this(0, 1); } /** Construct a rational with specified numerator and denominator */ public Rational(long numerator, long denominator) { long gcd = gcd(numerator, denominator); this.numerator = (denominator > 0 ? 1 : -1) * numerator / gcd; this.denominator = Math.abs(denominator) / gcd; } /** Find GCD of two numbers */ private static long gcd(long n, long d) { long n1 = Math.abs(n); long n2 = Math.abs(d); int gcd = 1; for (int k = 1; k <= n1 && k <= n2; k++) { if (n1 % k == 0 && n2 % k == 0) gcd = k; } return gcd; } /** Return numerator */ public long getNumerator() { return numerator; } /** Return denominator */ public long getDenominator() { return denominator; } /** Add a rational number to this rational */ public Rational add(Rational secondRational) { long n = numerator * secondRational.getDenominator() + denominator * secondRational.getNumerator(); long d = denominator * secondRational.getDenominator(); return new Rational(n, d); } /** Subtract a rational number from this rational */ public Rational subtract(Rational secondRational) { long n = numerator * secondRational.getDenominator() - denominator * secondRational.getNumerator(); long d = denominator * secondRational.getDenominator(); return new Rational(n, d); } /** Multiply a rational number to this rational */ public Rational multiply(Rational secondRational) { long n = numerator * secondRational.getNumerator(); long d = denominator * secondRational.getDenominator(); return new Rational(n, d); } /** Divide a rational number from this rational */ public Rational divide(Rational secondRational) { long n = numerator * secondRational.getDenominator(); long d = denominator * secondRational.numerator; return new Rational(n, d); } @Override public String toString() { if (denominator == 1) return numerator + ""; else return numerator + "/" + denominator; } @Override // Override the equals method in the Object class public boolean equals(Object other) { if ((this.subtract((Rational)(other))).getNumerator() == 0) return true; else return false; } @Override // Implement the abstract intValue method in Number public int intValue() { return (int)doubleValue(); } @Override // Implement the abstract floatValue method in Number public float floatValue() { return (float)doubleValue(); } @Override // Implement the doubleValue method in Number public double doubleValue() { return numerator * 1.0 / denominator; } @Override // Implement the abstract longValue method in Number public long longValue() { return (long)doubleValue(); } @Override // Implement the compareTo method in Comparable public int compareTo(Rational o) { if (this.subtract(o).getNumerator() > 0) return 1; else if (this.subtract(o).getNumerator() < 0) return -1; else return 0; } }
Sample output: