idzik

Matura/Zbior-zadań/Zadanie-80/rozwiązanie.java

Jan 1st, 2016
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.29 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.PrintWriter;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6. import java.util.Scanner;
  7.  
  8. public class Zadanie {
  9.    
  10.     public static boolean czyProstokatny(int a,int b, int c){ //nie używać pierwiastków w sprawdzaniu warunków
  11.         if ((a*a+b*b==c*c) || (a*a+c*c==b*b) || (c*c+b*b==a*a))
  12.          return true;  
  13.         else
  14.          return false;
  15.     }
  16.    
  17.     public static boolean czyTrojkat(int a, int b, int c){
  18.         if ((a+b>c) && (a+c>b) && (c+b>a)) 
  19.              return true;  
  20.             else
  21.              return false;
  22.     }
  23.    
  24.     public static int obliczObwod(int a, int b, int c){ //tutaj juz zakładamy, ze a,b,c tworzą trójkąt!
  25.         return (a+b+c);
  26.     }
  27.    
  28.     public static void main(String[] args) throws IOException {
  29.         File plik=new File("dane_trojkaty.txt");
  30.         PrintWriter zapis=new PrintWriter("wynik_trojkąty.txt");
  31.         Scanner odczyt=new Scanner(plik);
  32.         ArrayList lista=new ArrayList<String>();
  33.         while (odczyt.hasNextLine()){
  34.             lista.add(odczyt.nextLine());  //wczytanie liczb do arraylisty, po wczytaniu elementy tablicy stają się obiektami klasy Object
  35.         }
  36.         //*** odpowiedz do pierwszego punktu
  37.         zapis.println("Odpowiedzi do punktu 1");
  38.         System.out.println("Odpowiedzi do punktu 1");
  39.         for (int i=0;i<lista.size()-2;i++)
  40.         {
  41.            
  42.             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)))))
  43.             {
  44.                 System.out.println(lista.get(i)+","+lista.get(i+1)+","+lista.get(i+2));
  45.                 zapis.println(lista.get(i)+","+lista.get(i+1)+","+lista.get(i+2));
  46.             }
  47.            
  48.         }
  49.        
  50.         //*** koniec odpowiedzi do pierwszego punktu
  51.         //#####################################
  52.         //*** odpowiedz do drugiego punktu
  53.         int maxObwod=0; //maksymalny obwód
  54.         int obwod=0; //roboczy obwód
  55.         int licznik=0; //licznik nieprzystjących
  56.        
  57.         for (int i=0;i<lista.size()-2;i++)
  58.             for (int j=i+1;j<lista.size()-1;j++)
  59.                 for (int k=j+1;k<lista.size();k++)
  60.                 {
  61.                     if (czyTrojkat(Integer.parseInt(String.valueOf(lista.get(i))),Integer.parseInt(String.valueOf(lista.get(j))),Integer.parseInt(String.valueOf(lista.get(k))))){
  62.                         obwod=Integer.parseInt(String.valueOf(lista.get(i)))+Integer.parseInt(String.valueOf(lista.get(j)))+Integer.parseInt(String.valueOf(lista.get(k)));
  63.                         licznik++; //powiększamy licznik trójkątów nie przystajacych, należy pamiętać, że żadna liczba nie powtórzy się w pliku
  64.                     }
  65.                        
  66.                         if (obwod>maxObwod)
  67.                             {
  68.                             maxObwod=obwod;
  69.                             //System.out.println("Znaleziono większy obwod dla nastepującego trójkąta");
  70.                             //System.out.println(lista.get(i)+","+lista.get(j)+","+lista.get(k));
  71.                             }
  72.                 }
  73.         System.out.println("Odpowiedzi do punktu 2.");
  74.         System.out.println("Największy obwód to "+maxObwod);
  75.         zapis.println("Odpowiedzi do punktu 2");
  76.         zapis.println("Największy obwód to "+maxObwod);
  77.         //*** koniec odpowiedzi do drugiego punktu
  78.         //#####################################
  79.         //*** odpowiedz do trzeciego punktu
  80.         System.out.println("Odpowiedzi do punktu 3");
  81.         System.out.println("Nie przystających jest "+licznik);
  82.         zapis.println("Odpowiedzi do punktu 3");
  83.         zapis.println("Nie przystających jest "+licznik);
  84.         //*** koniec odpowiedzi do trzeciego punktu
  85.        
  86.         zapis.close();
  87.     }
  88.  
  89. }
Advertisement
Add Comment
Please, Sign In to add comment