Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace Task
- {
- class Program
- {
- static Figure[] RandomGen(int n)
- {
- Figure[] figures = new Figure[n];
- Random rand = new Random();
- for (int i = 0; i < n; i++)
- {
- int chance = rand.Next(2);
- if (chance == 0)
- figures[i] = new Cube(rand.NextDouble() * 25);
- else
- figures[i] = new Tetrahedron(rand.NextDouble() * 25);
- Console.WriteLine(figures[i]);
- }
- return figures;
- }
- static void Main(string[] args)
- {
- do
- {
- try
- {
- Console.Write("Введите кол-во фигур: ");
- int n = int.Parse(Console.ReadLine());
- if (n <= 0 || n > 20)
- throw new OverflowException();
- Figure[] figures;
- figures = RandomGen(n);
- // Всё следующее можно сделать в цикле с генерацией(выше)
- double middleSideSurfaceArea = 0;
- foreach (Figure f in figures)
- {
- middleSideSurfaceArea += f.SideSurfaceArea;
- }
- middleSideSurfaceArea /= n;
- Console.WriteLine("Среднее значение площади боковой поверхности - {0:f3}", middleSideSurfaceArea);
- Cube maxCube = new Cube(0);
- foreach (Figure f in figures)
- {
- if (f is Cube)
- if (f.CompareFigureVolume(maxCube) == -1)
- maxCube = f as Cube;
- }
- Console.WriteLine("Максимальное значение объёма куба {0:f3} \nКуб с таким объёмом - {1}",
- maxCube.Volume, maxCube);
- Tetrahedron minTetrahedron = new Tetrahedron(double.MaxValue);
- foreach (Figure f in figures)
- {
- if (f is Tetrahedron)
- if (f.CompareFigureFullSurfaceArea(minTetrahedron) == 1)
- minTetrahedron = f as Tetrahedron;
- }
- Console.WriteLine("Минимальная площадь поверхности тэтраэдра - {0:f3} \nТэтраэдр с такой боковой площадью - {1}",
- minTetrahedron.FullSurfaceArea, minTetrahedron);
- }
- catch (ArgumentException ex)
- {
- Console.WriteLine(ex.Message);
- }
- catch (FormatException)
- {
- Console.WriteLine("Введите число правильно!");
- }
- catch (OverflowException)
- {
- Console.WriteLine("Введенные данные не в том диапазоне");
- }
- catch (OutOfMemoryException)
- {
- Console.WriteLine("Введенные данные не в том диапазоне");
- }
- Console.WriteLine("Esc - exit");
- } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement