2016-03-16 2 views
-3
import java.util.Scanner; 


public class homework { 

    public static void main(String[] args) { 
     double Xp; 
     double Yp; 
     double Xq; 
     double Yq; 

     Scanner Point1= new Scanner(System.in); 
     System.out.print("Enter the First value for Xp: "); 
     Xp = Point1.nextDouble(); 
     Scanner Point2= new Scanner(System.in); 
     System.out.print("Eneter the First valuse for Yp: "); 
     Yp = Point2.nextDouble(); 
     Scanner Point3= new Scanner(System.in); 
     System.out.println("Enter the First valuse for Xq: "); 
     Xq = Point3.nextDouble(); 
     Scanner Point4= new Scanner(System.in); 
     System.out.println("Enter the First valuse for Yq: "); 
     Yq = Point4.nextDouble(); 
     System.out.println("Point P's Coordinates are: " + "(" + Xp + "," + Yp + ")"); 
     System.out.println("Point Q's Coordinates are: " + "(" + Xq + "," + Yq + ")"); 


     if (Xp >= 1 && Yp >= 0) 
     { 
     System.out.println("The point P is in Quadrant 1 "); 
     } 
     else if (Xp <= 0 && Yp>=0) 
     { 
     System.out.println("The point P is in Quadrant 2"); 
     } 
     else if (Xp<=0 && Yp<0) 
     { 
     System.out.println("The point P is in Quadrant 3");  
     } 
     else if (Xp>= 0 && Yp<0) 
     { 
     System.out.println("The point P is in Quadrant 4");  
     } 
     if (Xq >= 1 && Yq >= 0) 
     { 
     System.out.println("The point Q is in Quadrant 1 "); 
     } 
     else if (Xq <= 0 && Yq>=0) 
     { 
     System.out.println("The point Q is in Quadrant 2"); 
     } 
     else if (Xq<=0 && Yq<0) 
     { 
     System.out.println("The point Q is in Quadrant 3");  
     } 
     else if (Xq>= 0 && Yq<0) 
     { 
     System.out.println("The point Q is in Quadrant 4"); 
     }  
    double ED=Math.sqrt((Xq-Xp)*(Xq-Xp) + (Yq-Yp)*(Yq-Yp)); 
    System.out.println("The Euclidean distance from p to q is :"+ ED); 

    double slope= (Yp-Yq)/(Xp-Xq); 
    if (Xp-Xq!=0) 
    { 
    double slope; 
    System.out.println("The Slope of the Line is: "+ slope); 
    } 
    else if (Xp-Xq==0){ 
    System.out.println("Slope Is Undefined"); 
    System.exit(1); 
}} } 

ошибкой является то, что я дублировал переменную slope и я не могу понять, как заставить его работать, не получая ошибку.Продолжайте получать сообщение об ошибке .. не знает, как закончить эту

Что моя распайка просит:.

(Создать еще один метод, который возвращает наклон линии рда, образованной соединяющей р и д Наклон выражается как м = (YP - уд)/(xp - xq), , но он должен быть устойчивым к ошибкам, вызванным определенными входами. Если наклон не определен, не выполняйте вычисления из-за ошибки с делением на ноль. Вместо этого напечатайте сообщение об ошибке «Наклон undefined. "внутри метод и вызов System.exit (1) для завершения вашей программы)

+4

Так вы говорите, что вы получите сообщение об ошибке, но не выкладываете ошибка? МНЕ ЭТО НРАВИТСЯ! * СОВЕТ: опубликуйте журнал ошибок, пожалуйста, и спасибо * – 3kings

+0

, очевидно, ошибка в том, что ошибок нет. – pandorym

+0

или ошибка в том, что это вариант «угадать, проверить, уточнить». – pandorym

ответ

1

Единственная «ошибка», которую я вижу сейчас, это то, что у вас есть дубликат переменной «slope». Еще одно замечание: не используйте несколько сканеров. Вы можете просто использовать его и делать нужные вам входы. Закройте сканер после завершения ввода.

0

Просто удалите

double slope; 

из

double slope= (Yp-Yq)/(Xp-Xq); 
    if (Xp-Xq!=0){ 
     double slope;  // just remove this. 
     System.out.println("The Slope of the Line is: "+ slope); 

    }else if (Xp-Xq==0){ 
     System.out.println("Slope Is Undefined"); 
     System.exit(1); 
    } 

Далее Вы можете создать класс и несколько методов, чтобы сделать все эти операции и использовать основной метод для получения данных, вводимых пользователем через сканер и вызывать функции через объект этого класса. Это сделает ваш код более чистым.

Для примера, создать класс под названием Геомат

class Geomat{ 
     public void getQuadrant(){ 
      // do your logic here 
     } 

     public void getSlope(){ 
      // do your logic here 
     } 

    } 

затем в основном методе после получения входных сигналов от использования сканера

Geomat g = new Geomat(); 
    g.getQuadrant(); 
    g.getSlope();