Les presento en esta ocasión tres típicos algoritmos muy sencillos para obtener los máximos, mínimos y promedio de una serie sucesiva de números, almacenados dentro de en un vector. Comencemos.
Algoritmo Máximo
Visual C#
int acum = 0;
int nmCp = 0;
string snm = String.Empty;
int[] arrTmp = { 5, 3, 8, 2, 4 };
foreach (object nm in arrTmp)
{
nmCp = Convert.ToInt32(nm);
if (nmCp > acum)
{
acum = nmCp;
}
}
Console.Clear();
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”);
Console.WriteLine(“Máximo: “, acum.ToString());
Console.Read();
int nmCp = 0;
string snm = String.Empty;
int[] arrTmp = { 5, 3, 8, 2, 4 };
foreach (object nm in arrTmp)
{
nmCp = Convert.ToInt32(nm);
if (nmCp > acum)
{
acum = nmCp;
}
}
Console.Clear();
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”);
Console.WriteLine(“Máximo: “, acum.ToString());
Console.Read();
Visual Basic .NET
Dim acum As Integer = 0
Dim nmCp As Integer = 0
Dim snm As String = String.Empty
Dim arrTmp As Integer() = {5, 3, 8, 2, 4}
For Each nm As Object In arrTmp
nmCp = Convert.ToInt32(nm)
If (nmCp > acum) Then
acum = nmCp
End If
Next
Console.Clear()
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”)
Console.WriteLine(“Máximo: “, acum.ToString())
Console.Read()
Dim nmCp As Integer = 0
Dim snm As String = String.Empty
Dim arrTmp As Integer() = {5, 3, 8, 2, 4}
For Each nm As Object In arrTmp
nmCp = Convert.ToInt32(nm)
If (nmCp > acum) Then
acum = nmCp
End If
Next
Console.Clear()
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”)
Console.WriteLine(“Máximo: “, acum.ToString())
Console.Read()
En la variable vector “arreglo” arrTmp, tenemos una serie de números contiguos, que serán utilizados para determinar cuál de todos ellos resulta ser el valor máximo. Luego, la variable acum es utilizada para preservar en la memoria el número mayor a medida que se recorre el arreglo mediante sus índices. La variable nmCp es utilizada para cargar el valor que es leído desde la variable nm del bucle foreach. La variable nm es de tipo objeto y es convertida a un valor de tipo numérico a través de la función ToInt32() de la clase Convert. Luego, la variable nmCp que contiene el valor cargado y convertido a su tipo adecuado, es comparado con la variable acum. Si el valor de nmCp es mayor que acum, el paso siguiente es recargar el valor de nmCp vigente en la variable acum. Si el valor resulta ser menor, el valor de la variable acum se preserva hasta la siguiente comparación. El proceso continúa con el recorrido de todo el arreglo vector mediante el bucle foreach hasta completar todo su recorrido. Cuando se finaliza el proceso, el valor que se haya preservado en la variable acum, pasará a ser el valor mayor de toda la serie contigua de números del arreglo vector.
Algoritmo Mínimo
Visual C#
int acum = 0;
int nmCp = 0;
string snm = String.Empty;
int[] arrTmp = { 5, 3, 8, 2, 4 };
foreach (object nm in arrTmp)
{
if (acum == 0) { acum = nmCp; }
nmCp = Convert.ToInt32(nm);
if (nmCp < acum)
{
acum = nmCp;
}
}
Console.Clear();
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”);
Console.WriteLine(“Mínimo: “, acum.ToString());
Console.Read();
int nmCp = 0;
string snm = String.Empty;
int[] arrTmp = { 5, 3, 8, 2, 4 };
foreach (object nm in arrTmp)
{
if (acum == 0) { acum = nmCp; }
nmCp = Convert.ToInt32(nm);
if (nmCp < acum)
{
acum = nmCp;
}
}
Console.Clear();
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”);
Console.WriteLine(“Mínimo: “, acum.ToString());
Console.Read();
Visual Basic .NET
Dim acum As Integer = 0
Dim nmCp As Integer = 0
Dim snm As String = String.Empty
Dim arrTmp As Integer() = {5, 3, 8, 2, 4}
For Each nm As Object In arrTmp
If (acum = 0) Then acum = nmCp
nmCp = Convert.ToInt32(nm)
If (nmCp < acum) Then
acum = nmCp
End If
Next
Console.Clear()
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”)
Console.WriteLine(“Mínimo: “, acum.ToString())
Console.Read()
Dim nmCp As Integer = 0
Dim snm As String = String.Empty
Dim arrTmp As Integer() = {5, 3, 8, 2, 4}
For Each nm As Object In arrTmp
If (acum = 0) Then acum = nmCp
nmCp = Convert.ToInt32(nm)
If (nmCp < acum) Then
acum = nmCp
End If
Next
Console.Clear()
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”)
Console.WriteLine(“Mínimo: “, acum.ToString())
Console.Read()
En la variable vector “arreglo” arrTmp, tenemos una serie de números contiguos, que serán utilizados para determinar cuál de todos ellos resulta ser el valor mínimo. Luego, la variable acum es utilizada para preservar en la memoria el número menor a medida que se recorre el arreglo mediante sus índices. Antes de procesar las variables nmCp y acum, se realiza una previa verificación de la presencia del número cero en la variable acum. Esto se hace para evitar que nos coloque el valor cero por defecto en pantalla, puesto que este número, es utilizado para inicializar la variable acum. Por tanto, el cero se lo omite del procesamiento.
Ahora bien, la variable nmCp es utilizada para cargar el valor que es leído desde la variable nm del bucle foreach. La variable nm es de tipo objeto y es convertida a un valor de tipo numérico a través de la función ToInt32() de la clase Convert. Luego, la variable nmCp que contiene el valor cargado y convertido a su tipo adecuado, es comparado con la variable acum. Si el valor de nmCp es menor que acum, el paso siguiente es recargar el valor de nmCpvigente en la variable acum. Si el valor resulta ser mayor, el valor de la variable acum se preserva hasta la siguiente comparación. El proceso continúa con el recorrido de todo el arreglo vector mediante el bucle foreach hasta completar todo su recorrido. Cuando se finaliza el proceso, el valor que se haya preservado en la variable acum, pasará a ser el valor menor de toda la serie contigua de números del arreglo vector.
Algoritmo Promedio
Visual C#
decimal acum = 0;
int count = 0;
decimal nmCp = 0;
string snm = String.Empty;
int[] arrTmp = { 5, 3, 8, 2, 4 };
foreach (object nm in arrTmp)
{
count++;
nmCp = Convert.ToDecimal(nm);
acum += nmCp;
}
acum = acum / count;
Console.Clear();
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”);
Console.WriteLine(“Promedio: “, acum.ToString());
Console.Read();
int count = 0;
decimal nmCp = 0;
string snm = String.Empty;
int[] arrTmp = { 5, 3, 8, 2, 4 };
foreach (object nm in arrTmp)
{
count++;
nmCp = Convert.ToDecimal(nm);
acum += nmCp;
}
acum = acum / count;
Console.Clear();
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”);
Console.WriteLine(“Promedio: “, acum.ToString());
Console.Read();
Visual Basic .NET
Dim acum As Decimal = 0
Dim nmCp As Decimal = 0
Dim count As Integer = 0
Dim snm As String = String.Empty
Dim arrTmp As Integer() = {5, 3, 8, 2, 4}
For Each nm As Object In arrTmp
count += 1
nmCp = Convert.ToDecimal(nm)
acum += nmCp
Next
acum = acum / count
Console.Clear()
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”)
Console.WriteLine(“Promedio: “, acum.ToString())
Console.Read()
Dim nmCp As Decimal = 0
Dim count As Integer = 0
Dim snm As String = String.Empty
Dim arrTmp As Integer() = {5, 3, 8, 2, 4}
For Each nm As Object In arrTmp
count += 1
nmCp = Convert.ToDecimal(nm)
acum += nmCp
Next
acum = acum / count
Console.Clear()
Console.WriteLine(“Serie: (5, 3, 8, 2, 4)”)
Console.WriteLine(“Promedio: “, acum.ToString())
Console.Read()
En la variable vector “arreglo” arrTmp, tenemos una serie de números contiguos, que serán utilizados para determinar cuál de todos ellos resulta ser el valor máximo. Luego, la variable acum es utilizada para preservar en la memoria el número mayor a medida que se recorre el arreglo mediante sus índices. La variable nmCp es utilizada para cargar el valor que es leído desde la variable nm del bucle foreach. La variable nm es de tipo objeto y es convertida a un valor de tipo numérico a través de la función ToDecimal() de la clase Convert. Luego, la variable nmCp que contiene el valor agregado es sometido a un proceso de acumulación de si mísmo en cada lapso del procesamiento del bucle. El valor es acumulado en la variable acum. Esto más tarde nos permitirá calcular el promedio. Por otro lado, contamos con la variable count que es utilizada para contabilizar cuántos números son sumados al procesamiento de acumulación. Por último, cuando el bucle deja de procesar los ciclos de ejecución, el valor acumulado en la variable acum es dividido por la variable count que contiene la cuenta de los números que fueron contabilizados durante el procesamiento del bucle. Finalmente, los resultados se muestran en pantalla.
Espero que este minitutorial te resulte de utilidad. Muchas gracias.
– Ariel.
No hay comentarios:
Publicar un comentario