Skocz do zawartości
kamus

[java] Problem.

Rekomendowane odpowiedzi

Program ten ma sprawdzac, czy dane 4 współrzedne tworzą prostokąt..Problem polega na tym, ze współrzędne muszą byc wpisane w odpowiedniej kolejności, bo inaczej poprostu nie działa.. wiem, ze aby tak nie musiało byc trzeba jakoś posortować elementy.. ale ja nie mam pojecia jak.. moglby mi ktoś pomóc? musze to zrobić na wtorek.. a siedze juz nad tym 3 dzień i naprawde wymiękam.. bede bardzo wdzięczny.

 

import java.io.*;  //import pakietówimport java.util.*;public class Prostokat {	/** 	 *	 * uzycie potoków znakowych(Unicode)	 *	 * Klasa BufferedReader dostarcza metodę readLine(), która zwraca odczytaną ze strumienia linię tekstu.	 * 	 * InputStreamReader-zamiana bajtów na znaki	 *	 * 	 */	private static BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));		//deklaracja składników klasy		int x1=0;	int x2=0;	int x3=0;	int x4=0;	int y1=0;	int y2=0;	int y3=0;	int y4=0;	int w=0;	double a,b,c,d;	int i;	int[] x;	int[] y;	int[] xp;	int[] yp;	Prostokat()// konstruktor	{		ustaw();	}					  void ustaw ()   {  System.out.println("Tworzenie nowego obiektu...");  	x= new int[4]; 	y= new int[4]; 	xp= new int[4]; 	yp= new int[4];	 for(i=0;i<4;i++)	 {	 	 try{	  	System.out.println("x"+(i+1)+"=");	x[i] = Integer.parseInt(stdin.readLine());		//Metoda parseInt dokonuje konwersji łańcucha znakowego na liczbę całkowitą, o ile jest to możliwe.	System.out.println("y"+(i+1)+"=");	 y[i] = Integer.parseInt(stdin.readLine());	 	   }catch(Exception e){};		  	}    		//tutaj jest sortowanie, które nie dziala...    int licznik,max,maxp;    for(licznik=0;licznik<4;licznik++)  {	   max=x[0];	 maxp=1;	  for(i=1;i<4;i++)	  {		  if (x[i]<max){max =x[i];maxp=i;} 	if (x[i]==max) {  if (y[i]<y[maxp]) {max=x[i];maxp=i;} }} xp[licznik]=x[maxp];  yp[licznik]=y[maxp]; for (i=maxp;i<licznik;i++){ x[i]=x[i+1]; y[i]=y[i+1];}					   	  }	  	             a = Math.sqrt((xp[0]-xp[1])*(xp[0]-xp[1])+(yp[0]-yp[1])*(yp[0]-yp[1]));  b = Math.sqrt((xp[2]-xp[3])*(xp[2]-xp[3])+(yp[2]-yp[3])*(yp[2]-yp[3]));  c = Math.sqrt((xp[0]-xp[2])*(xp[0]-xp[2])+(yp[0]-yp[2])*(yp[0]-yp[2]));  d = Math.sqrt((xp[1]-xp[3])*(xp[1]-xp[3])+(yp[1]-yp[3])*(yp[1]-yp[3]));        if(x[0]>20 || x[1]>20 || x[2]>20 || x[3]>20 || y[0]>20 || y[1]>20 || y[2]>20 || y[3]>20)	{System.out.println("Wspolrzedne nie moga byc wieksze od 20!");w++;}		else	{	  if(xp[0]>=0 && xp[1]>=0 && xp[2]>=0 && xp[3]>=0 && yp[0]>=0 && yp[1]>=0 && yp[2]>=0 && yp[3]>=0)	System.out.println("Figura znajduje sie w I cw ukladu wspolrzednych");		if(a!=b || c!=d)	{	 System.out.println("Podana przez Ciebie figura nie jest prostokatem");	 w++;  }	  else System.out.println("Podana przec Ciebie figura jest prostokatem");  		   				 	}          } void obwod () { double ob;   ob=a+b+c+d; 	 	System.out.println("Obwod wynosi: "+ob); }void powierzchnia () { 	double pow; 	pow=a*c; 	System.out.println("powierzchnia "+pow); }		void dlugosc () {   for(i=0;i<4;i++)	  {System.out.print(xp[i]);	  System.out.println(yp [i]);} 	if(a>c) 	System.out.println("Dlugosc dluzszego boku: "+a); 	else System.out.println("Dlugosc dluzszego boku: "+c); }			void kwadrat () { 	if(a==b && b==c) 	System.out.println("Ta figura jest kwadratem"); 	else System.out.println("Ta figura nie jest kwadratem"); }					 static public void main(String args[]){	 	 	Prostokat obiekt=new Prostokat();  //							  if(obiekt.w==0){					System.out.println("Jaka funkcje chcesz wywolac?");				   int wybor=0;  				   									  System.out.println("1 -  obwod");				  System.out.println("2 - powierzchnia");				  System.out.println("3 - dlugosc ");				  System.out.println("4 - kwadrat ( sprawdza, czy dany prostokat jest kwadratem)");				  System.out.println("5 - wszytskie ");				  try{				wybor = Integer.parseInt(stdin.readLine());					} catch(Exception e){};				   				   switch (wybor)				   {				   	case 1: obiekt.obwod(); break;				   	case 2: obiekt.powierzchnia(); break;				   	case 3: obiekt.dlugosc(); break;				   	case 4: obiekt.kwadrat(); break;				   	case 5: {				   			obiekt.obwod();				   			obiekt.powierzchnia();				   			obiekt.dlugosc();				   			obiekt.kwadrat(); 				   			break;				   			}				   default: System.out.println("Nie ma takiej opcji!!!"); break;				   				  				   }		  		  		  }   			}}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...