import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class Zadanie {
public static boolean czyProstokatny(int a,int b, int c){ //nie używać pierwiastków w sprawdzaniu warunków
if ((a*a+b*b==c*c) || (a*a+c*c==b*b) || (c*c+b*b==a*a))
return true;
else
return false;
}
public static boolean czyTrojkat(int a, int b, int c){
if ((a+b>c) && (a+c>b) && (c+b>a))
return true;
else
return false;
}
public static int obliczObwod(int a, int b, int c){ //tutaj juz zakładamy, ze a,b,c tworzą trójkąt!
return (a+b+c);
}
public static void main(String[] args) throws IOException {
File plik=new File("dane_trojkaty.txt");
PrintWriter zapis=new PrintWriter("wynik_trojkąty.txt");
Scanner odczyt=new Scanner(plik);
ArrayList lista=new ArrayList<String>();
while (odczyt.hasNextLine()){
lista.add(odczyt.nextLine()); //wczytanie liczb do arraylisty, po wczytaniu elementy tablicy stają się obiektami klasy Object
}
//*** odpowiedz do pierwszego punktu
zapis.println("Odpowiedzi do punktu 1");
System.out.println("Odpowiedzi do punktu 1");
for (int i=0;i<lista.size()-2;i++)
{
if (czyProstokatny(Integer.parseInt(String.valueOf(lista.get(i))),Integer.parseInt(String.valueOf(lista.get(i+1))),Integer.parseInt(String.valueOf(lista.get(i+2)))))
{
System.out.println(lista.get(i)+","+lista.get(i+1)+","+lista.get(i+2));
zapis.println(lista.get(i)+","+lista.get(i+1)+","+lista.get(i+2));
}
}
//*** koniec odpowiedzi do pierwszego punktu
//#####################################
//*** odpowiedz do drugiego punktu
int maxObwod=0; //maksymalny obwód
int obwod=0; //roboczy obwód
int licznik=0; //licznik nieprzystjących
for (int i=0;i<lista.size()-2;i++)
for (int j=i+1;j<lista.size()-1;j++)
for (int k=j+1;k<lista.size();k++)
{
if (czyTrojkat(Integer.parseInt(String.valueOf(lista.get(i))),Integer.parseInt(String.valueOf(lista.get(j))),Integer.parseInt(String.valueOf(lista.get(k))))){
obwod=Integer.parseInt(String.valueOf(lista.get(i)))+Integer.parseInt(String.valueOf(lista.get(j)))+Integer.parseInt(String.valueOf(lista.get(k)));
licznik++; //powiększamy licznik trójkątów nie przystajacych, należy pamiętać, że żadna liczba nie powtórzy się w pliku
}
if (obwod>maxObwod)
{
maxObwod=obwod;
//System.out.println("Znaleziono większy obwod dla nastepującego trójkąta");
//System.out.println(lista.get(i)+","+lista.get(j)+","+lista.get(k));
}
}
System.out.println("Odpowiedzi do punktu 2.");
System.out.println("Największy obwód to "+maxObwod);
zapis.println("Odpowiedzi do punktu 2");
zapis.println("Największy obwód to "+maxObwod);
//*** koniec odpowiedzi do drugiego punktu
//#####################################
//*** odpowiedz do trzeciego punktu
System.out.println("Odpowiedzi do punktu 3");
System.out.println("Nie przystających jest "+licznik);
zapis.println("Odpowiedzi do punktu 3");
zapis.println("Nie przystających jest "+licznik);
//*** koniec odpowiedzi do trzeciego punktu
zapis.close();
}
}
Comments