mar 15 2011
Algoritmo en C Sharp
Tiempo atrás llevé el curso de Sistemas Operativos, donde aprendí a codificar scripts ubunteros en aquellas clases la profesora nos enseñaba programación básica en bash, de todos los ejercicios que dejó, uno de ellos no pude resolver a tiempo, sin embargo encontré la solución al día siguiente mientras estaba conversando con una de mis amigas, pues gracias a las palabras que ella me dijo: “Piensa en qué necesitas, luego ves cómo haces“, las ideas llegaron a mi mente de una manera alucinante, recordé la clase de simulación de algoritmos del curso de matemática discreta, con cuaderno abierto y lapicero en mano, jugué con algunas variables, pensé cómo resolver el ejercicio desde otro punto de vista y listo!!! Veamos el resultado del análisis del enunciado…
El enunciado: “Ingresar 3 números, determinar el mayor, intermedio y menor, luego reportarlos”. En este caso tenemos 3 posibilidades con la recepción de datos: la primera es que los números ingresados sean iguales y damos con un empate técnico, la segunda es que 2 números sean iguales y nos quedamos sin intermedio, la tercera es el ingreso de números diferentes, las ideas del algoritmo son las siguiente:
- Establecer un arreglo de 3 variables [0-1-2].
- Leer los datos para ingresarlos al arreglo.
- El mayor y el menor será el primer valor del arreglo [0].
- Encontramos al mayor y menor recorriendo el arreglo preguntando si el mayor[número] es mayor que el mayor[actual], de ser verdad, asignamos el nuevo valor al mayor[número]; hacemos la misma jugada para encontrar el menor.
- El intermedio tiene que ser menor que el mayor y a su vez mayor que el menor.
- Si el mayor es igual que el intermedio y al mismo tiempo es igual que el menor, obtenemos el empate.
- Finalmente se reportan los resultados.
Y bueno, aquí está es su codificación en C#:
using System;
namespace algoritmo
{
class Program
{
static void Main(string[] args)
{
//Declaramos las variables:
int[] numeros = new int[3];
int mayor, menor;
int intermedio = new int();
//Asignamos valores al arreglo:
Console.WriteLine("Ingreso de números");
Console.WriteLine("------------------");
for (int i = 0; i < numeros.Length; i++)
{
Console.Write("Elemento[" + i + "] : ");
numeros[i] = Int32.Parse(Console.ReadLine());
}
//Definimos el punto de partida:
mayor = numeros[0];
menor = numeros[0];
//Vamos en busca del mayor y del menor:
for (int i = 0; i < numeros.Length; i++)
{
if (numeros[i] > mayor) mayor = numeros[i];
if (numeros[i] < menor) menor = numeros[i];
}
//Determinamos al número intermedio:
for (int i = 0; i < numeros.Length; i++)
{
//Con 3 números diferentes tenemos al intermedio
if ((mayor > numeros[i]) && (menor < numeros[i]))
intermedio = numeros[i];
//Empate técnico:
if ((mayor == numeros[i]) && (menor == numeros[i]))
intermedio = numeros[i];
}
Console.WriteLine("\nReportando resultados:");
Console.WriteLine("-----------------------");
Console.WriteLine("El mayor: " + mayor);
Console.WriteLine("El intermedio: " + intermedio);
Console.WriteLine("El menor: " + menor);
Console.ReadKey();
}
}
}
Espero les haya sido de utilidad, que tengan un buen día!
Saludos!






jul 12, 2011 @ 11:46:11
doc parece que te está yendo bien con C# me parece muy bien.. saludos