Write a program that has the user input two points in the xy

Write a program that has the user input two points in the xy-plane, and then displays the equation of the line through those points in y = mx + b form. This should involve some very minor algebra, so it should be easy, but there’s one catch:

I want you to design your program so that the user will enter each point in the following format: (2, 3). That is, an opening (, a number, a comma, a number, a closing ).

So, your interface should look like:

Enter the first point: (1.1,2)

Enter the second point: (2.6,8)

The equation is: y = 4x - 2.4

(Here, the (1.1,2) and (2.6,8) are values chosen and input by the user; they should NOT be part of your code. The rest of the above is output shown.)

Specifications: your program must

• clearly ask the user to enter two points, and then accept any two points in the xy-plane (so long as they have different x-coordinates) from the user, who will enter the points in the form shown – e.g., (3,4).

• clearly display the equation of the line through those two points in y = mx + b form as shown above. “Ugly” output, e.g. y = 0x + -5 instead of y = -5 is acceptable.

Solution

import java.util.Scanner;

public class StraightLine {
  
   /**method to calculate line constant (b) value
   *
   * @param m slope of the line
   * @param x x-coordinate of point
   * @param y y-coordinate of the same point
   * @return a double value
   */
   private static double calculateConstantValue(double m,float x,float y){
       double b=0;
       b=y-m*x; //calculating constant (b) value by passing x,y and m value
       return b;
      
   }
  
   /**method to print the straight line equation
   *
   * @param m slope of a line
   * @param b a constant value
   */
   private static void printLineEquation(double m,double b){
       if(m==0){
           System.out.format(\"The equation is: y=%+.1f\",b); //remove x coordinate if slope value is zero.
       }else{
       System.out.format(\"The equation is: y=%.1fx%+.1f\",m,b); // using System.out.format to format straight line output
       }
   }
  
  
   public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);                           //creating scanner object for taking input from user via console
       System.out.println(\"Enter the first point:\");
       String firstPoint=sc.next();                               //first point coordinate should be in format of (a number a comma(,), a number a comma(,)).like \"(1.1,2)\"
       System.out.println(\"Enter the second point:\");
       String secondPoint=sc.next();                               //second point coordinate should be in format of (a number a comma(,), a number a comma(,)).like \"(2.6,8)\"
      
       firstPoint=firstPoint.replace(\'(\',\' \');                       // removing unnecessary brackets\"( \" from firstPoint coordinate which is entered by the user
       firstPoint=firstPoint.replace(\')\',\' \');                       // removing unnecessary brackets\" )\" from firstPoint coordinate which is entered by the user
      
       secondPoint=secondPoint.replace(\'(\',\' \');                   // removing unnecessary brackets\"(\" from secondPoint coordinate which is entered by the user
       secondPoint=secondPoint.replace(\')\',\' \');                   // removing unnecessary brackets\" )\" from secondPoint coordinate which is entered by the user

       String firstPointXcordinate=(firstPoint.split(\",\")[0]);       //splitting coordinate based on \",\" character and taking first element from array as x1 coordinate
       float x1Cordinate=Float.parseFloat(firstPointXcordinate); // converting x1Cordinate from string to float
       String firstPointYcordinate=(firstPoint.split(\",\")[1]);    //splitting coordinate based on \",\" character and taking second element from array as y1 coordinate
       float y1Cordinate=Float.parseFloat(firstPointYcordinate);    // converting y1Cordinate from string to float
      
       String secondPointXcordinate=(secondPoint.split(\",\")[0]);    //splitting coordinate based on \",\" character and taking first element from array as x2 coordinate
       float x2Cordinate=Float.parseFloat(secondPointXcordinate);    // converting x2Cordinate from string to float
       String secondPointYcordinate=(secondPoint.split(\",\")[1]);     //splitting coordinate based on \",\" character and taking second element from array as y2 coordinate
       float y2Cordinate=Float.parseFloat(secondPointYcordinate);    // converting y2Cordinate from string to float
      
       double m=(double)(y2Cordinate-y1Cordinate)/(x2Cordinate-x1Cordinate); // using mathematical formula for calculating slope m=(y2-y1)/(x2-x1)
       m=(double)Math.round(m*100)/100;                                    // storing slope value in variable m upto 2 decimal places.
       double b=calculateConstantValue(m, x1Cordinate, y1Cordinate);       // calculating straight line constant(b) value by passing slope, x1Cordinate and y1Cordinate and same can be achieve by passing slope, x2Cordinate and y2Cordinate both will lead to the same result.
       b=(double)Math.round(b*100)/100;                               // storing constant (b) value in variable b upto 2 decimal places.

       printLineEquation(m, b);                                       // print straight line equation by passing slope and constant (b) value.
      


      
   }


}

Write a program that has the user input two points in the xy-plane, and then displays the equation of the line through those points in y = mx + b form. This sho
Write a program that has the user input two points in the xy-plane, and then displays the equation of the line through those points in y = mx + b form. This sho

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site