Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.57 KB | None | 0 0
  1. namespace Task
  2. {
  3.     class Program
  4.     {
  5.         static Figure[] RandomGen(int n)
  6.         {
  7.             Figure[] figures = new Figure[n];
  8.  
  9.             Random rand = new Random();
  10.             for (int i = 0; i < n; i++)
  11.             {
  12.                 int chance = rand.Next(2);
  13.                 if (chance == 0)
  14.                     figures[i] = new Cube(rand.NextDouble() * 25);
  15.                 else
  16.                     figures[i] = new Tetrahedron(rand.NextDouble() * 25);
  17.  
  18.                 Console.WriteLine(figures[i]);
  19.             }
  20.  
  21.             return figures;
  22.         }
  23.  
  24.         static void Main(string[] args)
  25.         {
  26.             do
  27.             {
  28.                 try
  29.                 {
  30.                     Console.Write("Введите кол-во фигур: ");
  31.                     int n = int.Parse(Console.ReadLine());
  32.                     if (n <= 0 || n > 20)
  33.                         throw new OverflowException();
  34.                     Figure[] figures;
  35.                     figures = RandomGen(n);
  36.  
  37.                     // Всё следующее можно сделать в цикле с генерацией(выше)
  38.                     double middleSideSurfaceArea = 0;
  39.                     foreach (Figure f in figures)
  40.                     {
  41.                         middleSideSurfaceArea += f.SideSurfaceArea;
  42.                     }
  43.  
  44.                     middleSideSurfaceArea /= n;
  45.                     Console.WriteLine("Среднее значение площади боковой поверхности - {0:f3}", middleSideSurfaceArea);
  46.  
  47.                     Cube maxCube = new Cube(0);
  48.                     foreach (Figure f in figures)
  49.                     {
  50.                         if (f is Cube)
  51.                             if (f.CompareFigureVolume(maxCube) == -1)
  52.                                 maxCube = f as Cube;
  53.                     }
  54.                     Console.WriteLine("Максимальное значение объёма куба {0:f3} \nКуб с таким объёмом - {1}",
  55.                         maxCube.Volume, maxCube);
  56.  
  57.                     Tetrahedron minTetrahedron = new Tetrahedron(double.MaxValue);
  58.                     foreach (Figure f in figures)
  59.                     {
  60.                         if (f is Tetrahedron)
  61.                             if (f.CompareFigureFullSurfaceArea(minTetrahedron) == 1)
  62.                                 minTetrahedron = f as Tetrahedron;
  63.                     }
  64.                     Console.WriteLine("Минимальная площадь поверхности тэтраэдра -  {0:f3} \nТэтраэдр с такой боковой площадью - {1}",
  65.                         minTetrahedron.FullSurfaceArea, minTetrahedron);
  66.  
  67.                    
  68.                 }
  69.                 catch (ArgumentException ex)
  70.                 {
  71.                     Console.WriteLine(ex.Message);
  72.                 }
  73.                 catch (FormatException)
  74.                 {
  75.                     Console.WriteLine("Введите число правильно!");
  76.                 }
  77.                 catch (OverflowException)
  78.                 {
  79.                     Console.WriteLine("Введенные данные не в том диапазоне");
  80.                 }
  81.                 catch (OutOfMemoryException)
  82.                 {
  83.                     Console.WriteLine("Введенные данные не в том диапазоне");
  84.                 }
  85.                 Console.WriteLine("Esc - exit");
  86.             } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
  87.         }
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement