martes, 3 de diciembre de 2013

Colecciones en C#



/******************************  Colecciones **************************/
/************   Permite guardar en su interior cualquier tipo de información  ** */
/************   C# nos da varios tipos de colecciones ya definidas y no tener que utilizarlas */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections; //Necesario para utilizar las librerías del array o sino el //compilador no lo reconocerá
namespace Colecciones
{
    class Program
    {
        static void Main(string[] args)
        {
            //Colección ArrayList: guarda cualquier tipo de dato, puede cambiar el tamaño y contar los datos. 

            ArrayList dato = new ArrayList(); //Declaramos un arraylist sin parámetros, capacidad ilimitada

            // para la adición de información se usa el método Add().
            int valor=5;
            dato.Add(valor);

            //uso de foreach, tiene un iterator que realiza un recorrido `por toda la estructura de forma secuencial
            foreach (int valor int nomarray)
            {
                Console.WriteLine("el valor es {0}", valor);// muestra el valor de los datos de cada elemento

            }

            // Obtener la cantidad de elementos de un Array list

            elementos = nomarray.Count; // count contara los elementos en el arreglo

            // insertar elementos en ArrayList
            //se utiliza el método Insert(indice, valor)

            nomarray.Insert(3, 8); // 3 indica el índice y 5 es el dato a insertar
           
            //Para remover datos se utiliza RemoveAt(indice)
            // para encontrar un dato en un arraylist

            indice = nomarray.Index0f(dato); //Nos da el índice donde se ubica 


        }
    }
}

Arreglo tipo jagged C#



/***** Arreglo tipo jagged: este tipo de arreglo consta de otros arreglos es decir:    ****/
/***** se tendrá un contenedor para los otros arreglos *********/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Arreglos_tipo_jagged
{
    class Program
    {
        static void Main(string[] args)
        {
        /*
            //declaramos arreglo que contendrá a los demás
            int[][] datos=new int[3][] // 3 es el número de arreglos que se incluirán

            //declarando los 3 arreglos
            datos[0] = new int[10];  // primer arreglo en la columna 0 y 10 filas
            datos[1] = new int[20];  // primer arreglo en la columna 1 y 20 filas
            datos[2] = new int[30];  // primer arreglo en la columna 2 y 30 filas
        */
            // por ejemplo si se coloca una cantidad diferente de alumnos en cada salón
            int cantidad = 0;
            int salones = 0;

            int n = 0;
            int m = 0;

            string valor = ""; 

            //pedimos la cantidad de salones
            Console.WriteLine("la cantidad de salones es: ");
            valor = Console.ReadLine();
            salones = Convert.ToInt32(valor);

            //creando el arreglo
            float[][] calif = new float[salones][];

            //pedimos los alumnos por salon
            for (n = 0; n < salones; n++)
            {
                Console.WriteLine("dame la cantidad de alumnos para el salon {0}",n);
                valor = Console.ReadLine();
                cantidad = Convert.ToInt32(valor);
                // se llama al arreglo 
                calif[n] = new float[cantidad];


            }
            // se captura la informacion
            for (n=0; n<salones; n++) //ciclo salones
            {
                Console.WriteLine("salon {0}", n);
                for(m=0; m<calif[n].GetLength(0); m++)//ciclo alumnos
                {
                    Console.Write("dame la calificacion");
                    valor = Console.ReadLine();
                    calif[n][m]= Convert.ToSingle(valor);
                }
               
            }
                //desplegamos la informacion
            Console.WriteLine("-informacion_");
            for (m=0; m< calif[n].GetLength(0); m++)// ciclo alumnos
            {
                Console.WriteLine("el alumno {0} tiene {1}", m, calif[n][m]);

            }

        }
    }
}


Arreglos unidimensionales en C#



/*********************  Arreglos unidimensionales   **********************/
/*****  se construyen de la siguiente manera: float[] nombrearreglo=new float[n] **/
/* ejemplo: float[] valoresdados={1.5f, 3.7f, 2.1f}; */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Arreglos
{
    class Program
    {
         //En esta aplicación se mostrara el número de empleados, sus edades, la edad promedio
         //el empleado más joven y el de más edad
        static void Main(string[] args)
        {
            int numemple = 0; //cantidad de empleados
            int i = 0;
            string dato = "";
            float suma = 0.0f;
            float prom = 0.0f;

            float minima = 0.0f; //edad minima
            float maxima = 0.0f; //edad máxima

            // se pide la cantidad de trabajadores
            Console.WriteLine("la cantidad de trabajadores es: ");
            dato = Console.ReadLine();
            numemple = Convert.ToInt32(dato);

            //Se crea el arreglo
            float[] edades = new float[numemple];

            //capturamos los datos
            for (i = 0; i < numemple; i++)
            {
                Console.WriteLine("Ingrese las edades: ");
                dato = Console.ReadLine();
                edades[i] = Convert.ToSingle(dato);

            }
            //encontrar el promedio
            for (i = 0; i < numemple; i++ )
            {
                suma = suma + edades[i];
            }

            prom = suma / numemple;
             // talla minima
            for (i = 0; i < numemple; i++ )
            {
                if (edades[i] < minima)
                    minima = edades[i];
            }
            //talla maxima

            for (i = 0; i < numemple; i++ )
            {
                if (edades[i] > maxima)
                    maxima = edades[i];
            }
            //Desplegamos los resultados
            Console.WriteLine("el promedio de edad es{0}", prom);
            Console.WriteLine("la edad maxima es {0}", maxima);
            Console.WriteLine("la edad minima es {0}",minima);

            Console.ReadLine();

        }
    }
}