Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Explicar codigo c#

Estas en el tema de Explicar codigo c# en el foro de .NET en Foros del Web. Hola tengo una duda con respecto a como funciona una parte de este codigo de c#. Es un codigo que lo unico que hace es ...
  #1 (permalink)  
Antiguo 10/07/2013, 03:04
 
Fecha de Ingreso: octubre-2012
Ubicación: Mendoza
Mensajes: 19
Antigüedad: 11 años, 6 meses
Puntos: 0
Pregunta Explicar codigo c#

Hola tengo una duda con respecto a como funciona una parte de este codigo de c#.
Es un codigo que lo unico que hace es pedir numeros y luego te dice si estan ordenados de menor a mayor o no.

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PrtuebaOrdenNumeros
{
    class OrdenNumeros
    {
        private int[] vector;

        public void Cargar()
        {
            vector = new int[5];
            Console.WriteLine("Cargar cinco números.");
            for (int f = 0; f < 5; f++)
            {
                Console.Write("Ingrese los números :");
                string linea = Console.ReadLine();
                vector[f] = Convert.ToInt32(linea);
            }
        }

        public void Ordenar()
        {
            int orden = 1;
            for (int f = 0; f < 4; f++)
            {
                if (vector[f + 1] < vector[f])
                {
                    orden = 0;
                }
            }
            if (orden == 1)
            {
                Console.WriteLine("Estan ordenados de menor a mayor");
            }
            else
            {
                Console.WriteLine("No estan ordenados de menor a mayor");
            }
        }

        static void Main(string[] args)
        {
            OrdenNumeros on = new OrdenNumeros();
            on.Cargar();
            on.Ordenar();
            Console.ReadKey();
        }
    }
}
El programa funciona bien mi duda o mejor dicho lo que no entiendo es la parte que esta en rojo, lo que no entiendo es como funciona, o sea, en que momento al poner los numeros desordenados es que la variable orden toma el valor 0.
  #2 (permalink)  
Antiguo 10/07/2013, 03:12
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Explicar codigo c#

La variable orden puede tomar dos valores:
- 1: orden ascendente, es decir, vector[x] < vector[x+1]
- 0: orden descendente, es decir, vector[x] > vector[x+1]

Lo que hace el codigo en rojo es inicializar a que el orden es ascendente y comprueba, en el bucle for, que así es. Para ello lo que hace es ver si se cumple la condición contraria a que sea ascendente, por lo tanto, intenta ver que vector[x] > vector[x+1], o puesto al reves, que vector[x+1] < vector[x]. Si se cumple esa condición, el orden es descendente y por eso cambia el valor de "orden" a 0.

De todas formas, este código tiene "bugs" porque no trata valores de entrada como por ejemplo: 0, 1, 3, 2, 5.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 10/07/2013, 15:16
 
Fecha de Ingreso: octubre-2012
Ubicación: Mendoza
Mensajes: 19
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Explicar codigo c#

Ahora lo entendi mejor, pasa que soy nuevo en c# y me gusta tratar de entender bien como funciona el programa en los pasos que realiza el codigo. Tu explicacion me sirvio mucho... muchas gracias

Etiquetas: c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:46.