using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
// --- Datos de los vendedores ---
// Podríamos usar arrays separados, pero una lista de objetos es más ordenada.
var vendedores = new[] {
new { Nombre = "Vendedor 1", Articulos = 355, Costo = 23.40 },
new { Nombre = "Vendedor 2", Articulos = 453, Costo = 18.40 },
new { Nombre = "Vendedor 3", Articulos = 267, Costo = 27.50 }
};
// --- Constantes del problema ---
const double salarioBase = 800.00;
const double porcentajeComision = 0.04; // 4%
// --- Almacenamiento para los resultados ---
var resultados = new (string Nombre, double Ganancia)[vendedores.Length];
Console.WriteLine("--- Cálculo de Ganancias Semanales ---");
// --- Procesamiento y cálculo ---
for (int i = 0; i < vendedores.Length; i++)
{
// 1. Calcular el total de la venta
double ventaTotal = vendedores[i].Articulos * vendedores[i].Costo;
// 2. Calcular la comisión
double comision = ventaTotal * porcentajeComision;
// 3. Calcular la ganancia final
double gananciaFinal = salarioBase + comision;
// Guardar el resultado
resultados[i] = (vendedores[i].Nombre, gananciaFinal);
// 4. Mostrar la ganancia del vendedor actual
// :F2 formatea el número para que muestre solo 2 decimales.
Console.WriteLine($"Las ganancias de {resultados[i].Nombre} son: ${resultados[i].Ganancia:F2}");
}
// --- Encontrar la mayor y menor ganancia ---
var vendedorMayorGanancia = resultados.OrderByDescending(r => r.Ganancia).First();
var vendedorMenorGanancia = resultados.OrderBy(r => r.Ganancia).First();
Console.WriteLine("\n--- Resumen ---");
Console.WriteLine($"Mayor ganancia: {vendedorMayorGanancia.Nombre} con ${vendedorMayorGanancia.Ganancia:F2}");
Console.WriteLine($"Menor ganancia: {vendedorMenorGanancia.Nombre} con ${vendedorMenorGanancia.Ganancia:F2}");
}
}