Софтуерно Инженерство
Loading...
+ Нов въпрос
minito99 avatar minito99 23 Точки

06. Point on Rectangle Border Java

Имам пролеми с 6-та задача Точка върху страната на правоъгълник от По-сложни логически провериполучавам 83/100 къде греша?

package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        double x1,x2,x,y,y1,y2;
        Scanner scanner = new Scanner(System.in);
        y1 = Double.parseDouble(scanner.nextLine());
        x1 = Double.parseDouble(scanner.nextLine());
        y2 = Double.parseDouble(scanner.nextLine());
        x2 = Double.parseDouble(scanner.nextLine());
        y = Double.parseDouble(scanner.nextLine());
        x = Double.parseDouble(scanner.nextLine());
        if((x==x1 || x==x2) && (y>=y1 && y<=y2))System.out.println("Border");
        if((x>=x1 && x<=x2) && (y==y1 || y==y2))System.out.println("Border");
        else System.out.println("Inside / Outside");
    }
}

Тагове:
sasho91 avatar sasho91 12 Точки
Best Answer

Ето моето решение със 100/100:


 

import java.util.Scanner;

public class p06_PointOnRectangleBorder {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);

        double x1 = Double.parseDouble(console.nextLine());
        double y1 = Double.parseDouble(console.nextLine());
        double x2 = Double.parseDouble(console.nextLine());
        double y2 = Double.parseDouble(console.nextLine());
        double x = Double.parseDouble(console.nextLine());
        double y = Double.parseDouble(console.nextLine());

        if ((x == x1 || x ==x2) && (y1 <= y && y <= y2)) {
        System.out.println("Border");
    }  else if ((y ==y1 || y == y2) && (x1 <= x && x <= x2)){
        System.out.println("Border");

    } else {
            System.out.println("Inside / Outside");
        }
}
}
0
minito99 avatar minito99 23 Точки

Благодаря :)

0
sasho91 avatar sasho91 12 Точки

Моля :)

0
spzvtbg avatar spzvtbg 581 Точки

за ъгловите точки печаташ 2 пъти Border защото например ако х = = x1 && y = = y1 (ъгъл) влизаш и в двете проверки и печаташ съответно 2 пъти 

0
28/03/2017 23:34:13
minito99 avatar minito99 23 Точки

Ясно благодаря за помощта.

 

0
aggeorgiev avatar aggeorgiev 327 Точки

Добра практика да се избегне двойното отпечатване в такива случаи:

деклариране на променлива извън контрукциите за проверка, промяна на стойността в тялото на конструкциите  и отпечатване накрая:

String output = "";

if............output = "border";

else : output="something else";

 

System.out.println(output);

0
29/03/2017 21:51:21