voltairenism

CAPCode - Questão 3

Jun 20th, 2021
999
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*Código por Cecília Camimura Oliveira
  2. Prova CAPCODE - Questão 3 */
  3.  
  4. using System;
  5.  
  6. class Figuras {
  7.     string name;
  8.     double area;
  9.     double perimetro;
  10.    
  11.     public Figuras() {
  12.         name = "Figura";
  13.         area = 0;
  14.         perimetro = 0;
  15.     }
  16.    
  17.     public string Name
  18.     {
  19.         get { return name; }
  20.         set { name = value; }
  21.     }
  22.    
  23.     public double Area
  24.     {
  25.         get { return area; }
  26.         set { area = value; }
  27.     }
  28.    
  29.     public double Perimetro
  30.     {
  31.         get { return perimetro; }
  32.         set { perimetro = value; }
  33.     }
  34. }
  35.  
  36. class MainClass {
  37.    
  38.     static void Quadrilatero(Figuras quad) {
  39.         Console.WriteLine("Digite a base: ");
  40.         double baseQ = Double.Parse(Console.ReadLine());
  41.         Console.WriteLine("Digite a altura: ");
  42.         double altura = Double.Parse(Console.ReadLine());
  43.         quad.Area = baseQ*altura;
  44.         quad.Perimetro = 2*baseQ + 2*altura;
  45.         Console.WriteLine("Area: " + quad.Area + "\r\nPerimetro: " + quad.Perimetro);
  46.        
  47.     }
  48.    
  49.     static void Trapezio(Figuras trapezio) {
  50.        
  51.         Console.WriteLine("Digite a base maior: ");
  52.         double baseMaior = Double.Parse(Console.ReadLine());
  53.        
  54.         Console.WriteLine("Digite a base maior: ");
  55.         double baseMenor = Double.Parse(Console.ReadLine());
  56.        
  57.         Console.WriteLine("Digite a altura: ");
  58.         double altura = Double.Parse(Console.ReadLine());
  59.        
  60.         Console.WriteLine("Digite os lados: ");
  61.         double lado1 = Double.Parse(Console.ReadLine());
  62.         double lado2 = Double.Parse(Console.ReadLine());
  63.         double lado3 = Double.Parse(Console.ReadLine());
  64.         double lado4 = Double.Parse(Console.ReadLine());
  65.        
  66.         trapezio.Area = ((baseMaior + baseMenor) *altura)/2;
  67.         trapezio.Perimetro = lado1 + lado2 + lado3 + lado4;
  68.         Console.WriteLine("Area: " + trapezio.Area + "\r\nPerimetro: " + trapezio.Perimetro);
  69.        
  70.     }
  71.    
  72.     static void Triangulo(Figuras triangulo) {
  73.         Console.WriteLine("Digite a base: ");
  74.         double baseQ = Double.Parse(Console.ReadLine());
  75.         Console.WriteLine("Digite a altura: ");
  76.         double altura = Double.Parse(Console.ReadLine());
  77.        
  78.         Console.WriteLine("Digite os lados: ");
  79.         double lado1 = Double.Parse(Console.ReadLine());
  80.         double lado2 = Double.Parse(Console.ReadLine());
  81.         double lado3 = Double.Parse(Console.ReadLine());
  82.        
  83.         triangulo.Area = (baseQ*altura)/2;
  84.         triangulo.Perimetro = lado1 + lado2 + lado3;
  85.         Console.WriteLine("Area: " + triangulo.Area + "\r\nPerimetro: " + triangulo.Perimetro);
  86.        
  87.     }
  88.    
  89.     static void Circulo(Figuras circulo) {
  90.         Console.WriteLine("Digite o raio do círculo:");
  91.         double raio = Double.Parse(Console.ReadLine());
  92.         double PI = 3.1415927;
  93.         circulo.Area = PI*raio*raio;
  94.         circulo.Perimetro = 2*PI*raio;
  95.         Console.WriteLine("Area: " + circulo.Area + "\r\nPerimetro: " + circulo.Perimetro);
  96.        
  97.     }
  98.    
  99.     static void Main() {
  100.         Figuras[] fig = new Figuras[1000];
  101.         for (int i=0; i < 1000; i++) {
  102.             fig[i] = new Figuras();
  103.         }
  104.        
  105.        
  106.                    
  107.         for(int i = 0; i < 1000; i++) {
  108.             Console.WriteLine("Digite a figura geométrica: ");
  109.             fig[i].Name = Console.ReadLine();
  110.             int posIn = 0;
  111.             int posF = 0;
  112.            
  113.             switch(fig[i].Name) {
  114.                 case "Circulo":
  115.                     Circulo(fig[i]);
  116.                     break;
  117.                 case "Triangulo":
  118.                     Triangulo(fig[i]);
  119.                     break;
  120.                 case "Quadrado":
  121.                     Quadrilatero(fig[i]);
  122.                     break;
  123.                 case "Retangulo":
  124.                     Quadrilatero(fig[i]);
  125.                     break;
  126.                 case "Trapezio":
  127.                     Trapezio(fig[i]);
  128.                     break;
  129.                 default:
  130.                     Console.WriteLine("Figura não é válida");
  131.                     break;
  132.                 }
  133.                
  134.                 int answer = 3;
  135.                 while(answer >= 3) {
  136.                     Console.WriteLine("Deseja: 1.Finalizar 2. Calcular outra figura 3. Ver o histórico");
  137.                     answer = int.Parse(Console.ReadLine());
  138.                     if(answer == 1) {
  139.                         i = 1000;
  140.                     }
  141.                     if(answer == 3) {
  142.                        
  143.                         if(i >= 6) { posIn = i - 5; }
  144.                        
  145.                         posF = i+1;
  146.                        
  147.                         for (int j=posIn; j < posF-1; j++) {
  148.                             if(fig[j].Name != "Figura") {
  149.                                 Console.WriteLine(fig[j].Name + " " + "Area: " + fig[j].Area);
  150.                             }
  151.                         }
  152.                     }
  153.                 }
  154.         }
  155.        
  156.        
  157.     }
  158.  
  159. }
RAW Paste Data