Facebook
From Daniyar Kubashev, 3 Years ago, written in Java.
Embed
Download Paste or View Raw
Hits: 99
  1. //package com.company;
  2. import java.io.*;
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.  
  7.     static float P = (float) Math.PI;
  8.     public static void main(String[] args) throws IOException{
  9.  
  10.         class Circle
  11.         {
  12.             public float Area(float r)
  13.             {
  14.                 return (float) (P * r * r);
  15.             }
  16.             public float Perimeter(float r)
  17.             {
  18.                 return (float) (2 * P * r);
  19.             }
  20.         }
  21.         class Rect
  22.         {
  23.             public float Area(float a, float b)
  24.             {
  25.                 return (float) (a * b);
  26.             }
  27.             public float Perimeter(float a, float b)
  28.             {
  29.                 return (float) ((a+b)*2);
  30.             }
  31.         }
  32.         class Triangle
  33.         {
  34.             public float Area(float a, float b, float c)
  35.             {
  36.                 float pp = (a + b + c)/2;
  37.                 float ans = (float) Math.sqrt(pp * (pp-a) * (pp-b) * (pp-c));
  38.                 return (float) (ans);
  39.             }
  40.             public float Perimeter(float a, float b, float c)
  41.             {
  42.                 return (float) (a + b + c);
  43.             }
  44.         }
  45.         class Elipse
  46.         {
  47.             public float Area(float a, float b)
  48.             {
  49.  
  50.                 return (float) (a * b * P);
  51.             }
  52.             public float Perimeter(float a, float b)
  53.             {
  54.                 float ans = (float) (2 * P * (float) Math.sqrt((a*a + b*b)/2));
  55.                 return (float) (ans);
  56.             }
  57.         }
  58.         FileInputStream file = new FileInputStream("input.txt");
  59.         FileOutputStream fo = new FileOutputStream("output.txt");
  60.         PrintWriter out_data = new PrintWriter(fo);
  61.         Scanner scan = new Scanner(file);
  62.  
  63.         float[] a = new float[100];
  64.         int i = 0;
  65.         String S = scan.next();
  66.         //System.out.println(S);
  67.         char[] ch = S.toCharArray();
  68.         a[0] = ch[0];
  69.         int test = 0;
  70.         if(a[0] == (int) 'e')test = 1;
  71.         else a[0] = a[0] - '0';
  72.         while(scan.hasNext())
  73.         {
  74.             i++;
  75.             a[i] = scan.nextInt();
  76.         }
  77.         //ELIPSE CASE
  78.         if(test == 1)
  79.         {
  80.             Elipse figure = new Elipse();
  81.             float p = figure.Perimeter(a[1], a[2]); float ar = figure.Area(a[1], a[2]);
  82.             if(Math.round(p) == (float) (Math.floor(figure.Perimeter(a[1], a[2]) * 10)/10))out_data.println("P=" + Math.round(p));
  83.             else
  84.             {
  85.                 float per = (float) (Math.floor(p * 10)/10);
  86.                 out_data.println("P=" + per);
  87.             }
  88.             if(Math.round(ar) == (float) (Math.floor(figure.Perimeter(a[1], a[2]) * 10)/10))out_data.println("A=" + Math.round(ar));
  89.             else
  90.             {
  91.                 float are = (float) (Math.floor(ar * 10)/10);
  92.                 out_data.println("A=" + are);
  93.             }
  94.         }
  95.         else if(i == 2)
  96.         {
  97.             Triangle figure = new Triangle();
  98.             float p = figure.Perimeter(a[0],a[1], a[2]); float ar = figure.Area(a[0],a[1],a[2]);
  99.             if((float)(int)p == p)out_data.println("P=" + Math.round(p));
  100.             else
  101.             {
  102.                 float per = (float) (Math.floor(p * 10)/10);
  103.                 out_data.println("P=" + per);
  104.             }
  105.             if((float)(int)ar == ar)out_data.println("A=" + Math.round(ar));
  106.             else
  107.             {
  108.                 float are = (float) (Math.floor(ar * 10)/10);
  109.                 out_data.println("A=" + are);
  110.             }
  111.         }
  112.         else if(i == 1)
  113.         {
  114.             Rect figure = new Rect();
  115.             float p = figure.Perimeter(a[0],a[1]); float ar = figure.Area(a[0],a[1]);
  116.             if((float)(int)p == p)out_data.println("P=" + Math.round(p));
  117.             else
  118.             {
  119.                 float per = (float) (Math.floor(p * 10)/10);
  120.                 out_data.println("P=" + per);
  121.             }
  122.             if((float)(int)ar == ar)out_data.println("A=" + Math.round(ar));
  123.             else
  124.             {
  125.                 float are = (float) (Math.floor(ar * 10)/10);
  126.                 out_data.println("A=" + are);
  127.             }
  128.         }
  129.         else if(i == 0)
  130.         {
  131.             Circle figure = new Circle();
  132.             float p = figure.Perimeter(a[0]); float ar = figure.Area(a[0]);
  133.             if((float)(int)p == p)out_data.println("P=" + Math.round(p));
  134.             else
  135.             {
  136.                 float per = (float) (Math.floor(p * 10)/10);
  137.                 out_data.println("P=" + per);
  138.             }
  139.             if((float)(int)ar == ar)out_data.println("A=" + Math.round(ar));
  140.             else
  141.             {
  142.                 float are = (float) (Math.floor(ar * 10)/10);
  143.                 out_data.println("A=" + are);
  144.             }
  145.         }
  146.         out_data.close();
  147.     }
  148. }
  149.