fork download
  1. using System;
  2. using System.Linq;
  3.  
  4. public class Program
  5. {
  6. public static void Main(string[] args)
  7. {
  8. // --- Datos de los vendedores ---
  9. // Podríamos usar arrays separados, pero una lista de objetos es más ordenada.
  10. var vendedores = new[] {
  11. new { Nombre = "Vendedor 1", Articulos = 355, Costo = 23.40 },
  12. new { Nombre = "Vendedor 2", Articulos = 453, Costo = 18.40 },
  13. new { Nombre = "Vendedor 3", Articulos = 267, Costo = 27.50 }
  14. };
  15.  
  16. // --- Constantes del problema ---
  17. const double salarioBase = 800.00;
  18. const double porcentajeComision = 0.04; // 4%
  19.  
  20. // --- Almacenamiento para los resultados ---
  21. var resultados = new (string Nombre, double Ganancia)[vendedores.Length];
  22.  
  23. Console.WriteLine("--- Cálculo de Ganancias Semanales ---");
  24.  
  25. // --- Procesamiento y cálculo ---
  26. for (int i = 0; i < vendedores.Length; i++)
  27. {
  28. // 1. Calcular el total de la venta
  29. double ventaTotal = vendedores[i].Articulos * vendedores[i].Costo;
  30.  
  31. // 2. Calcular la comisión
  32. double comision = ventaTotal * porcentajeComision;
  33.  
  34. // 3. Calcular la ganancia final
  35. double gananciaFinal = salarioBase + comision;
  36.  
  37. // Guardar el resultado
  38. resultados[i] = (vendedores[i].Nombre, gananciaFinal);
  39.  
  40. // 4. Mostrar la ganancia del vendedor actual
  41. // :F2 formatea el número para que muestre solo 2 decimales.
  42. Console.WriteLine($"Las ganancias de {resultados[i].Nombre} son: ${resultados[i].Ganancia:F2}");
  43. }
  44.  
  45. // --- Encontrar la mayor y menor ganancia ---
  46. var vendedorMayorGanancia = resultados.OrderByDescending(r => r.Ganancia).First();
  47. var vendedorMenorGanancia = resultados.OrderBy(r => r.Ganancia).First();
  48.  
  49. Console.WriteLine("\n--- Resumen ---");
  50. Console.WriteLine($"Mayor ganancia: {vendedorMayorGanancia.Nombre} con ${vendedorMayorGanancia.Ganancia:F2}");
  51. Console.WriteLine($"Menor ganancia: {vendedorMenorGanancia.Nombre} con ${vendedorMenorGanancia.Ganancia:F2}");
  52. }
  53. }
Success #stdin #stdout 0.09s 32256KB
stdin
Standard input is empty
stdout
--- Cálculo de Ganancias Semanales ---
Las ganancias de Vendedor 1 son: $1132.28
Las ganancias de Vendedor 2 son: $1133.41
Las ganancias de Vendedor 3 son: $1093.70

--- Resumen ---
Mayor ganancia: Vendedor 2 con $1133.41
Menor ganancia: Vendedor 3 con $1093.70