najlduzyszy odpicnek pionowy

0
public class Punkt {
	double x;
	double y;
	
}
public class X {

	Punkt[] punkt;
}

Wice może jak napisać metod której wynikiem będą dwa punkty tworzące najdłuższy odcinek pionowy??

0

Sprawdzasz czy współrzędne x są równe i obliczasz długość odcinka:

public class Program {

	public static void main(String[] args) {
		Point[] points = { new Point(2, 3), new Point(12, 9), new Point(2, 20),
				new Point(1, 7), new Point(2, -32) };
		Point start = null, end = null;
		
		double max = Double.MIN_VALUE, tmp;
		for (int i = 0; i < points.length; i++) {
			for (int j = i + 1; j < points.length; j++) {
				if (points[i].getX() == points[j].getX()) {
					tmp = Math.abs(points[i].getY() - points[j].getY());
					if (tmp > max) {
						max = tmp;
						start = points[i];
						end = points[j];
					}
				}
			}
		}
		
		System.out.println("Max: " + max);
		System.out.println("Start: " + start.toString());
		System.out.println("End: " + end.toString());
	}

	public static class Point {
		private double x;
		private double y;

		public Point(double x, double y) {
			this.x = x;
			this.y = y;
		}

		public double getX() {
			return x;
		}

		public double getY() {
			return y;
		}
		
		@Override
		public String toString() {
			return String.format("(%f, %f)", x, y);
		}
	}
}
0

@mykhaylo, głupio będzie wyglądać wyjście programu gdy w tablicy points nie ma pary punktów tworzących odcinek pionowy.

0

@bo, dopisanie dodatkowego warunku nie powinno być dla nikogo kłopotem. Jeśli masz jakieś uwagi lub propozycje, to bez problemu możesz zmodyfikować mój kod.

1 użytkowników online, w tym zalogowanych: 0, gości: 1