10 de abril de 2013

Arreglos con VB.NET y C#


Manejo de fechas en array

Dim fechas As Date() = {CDate("21/12/2012"), CDate("31/10/2012")}

        For Each fecha As Date In fechas
            MessageBox.Show(fecha)
        Next

Declarar array y asignar valores

Dim matriz(10)
        For i = 0 To 10
            matriz(i) = 100 * i
            MessageBox.Show(matriz(i))
        Next

Declaración array Kadena tipo string VB y ordenando

Dim kadena As String() = {"Carro""Camion"CStr(123)}
Array.Sort(kadena)

Mostrando los elementos del array

        For i As Integer = 0 To kadena.Length - 1
            MessageBox.Show(kadena(i).ToString)
        Next

Modificando la longitud del array y mostrando elementos

        ReDim Preserve kadena(3)
        kadena(3) = "nuevo elemento"

        For Each cadena As String In kadena
            MessageBox.Show(cadena)
        Next

Buscando la posición entera de un elemento del array

Dim buscar As Integer = Array.IndexOf(kadena, "Camion")
MessageBox.Show("Camion esta en la posicion del arreglo:" & buscar)

Declaración array números tipo entero y uso de LastIndexOf

Dim numeros As Integer() = {1, 2, 3, 2, 3, 2, 2}
        Dim pos As Integer = Array.LastIndexOf(numeros, 3)
        MsgBox("ultima posicion en que se encuentra un 3 es:  " & pos)

Obteniendo la suma de los elementos del array

        Dim suma As Integer = 0
        For Each termino As Integer In numeros
            suma = suma + termino
        Next
        MessageBox.Show(suma)

Mostrando los elementos del array en un listBox

Dim kadena As String() = {"Carro""Camion"CStr(123)}
        ListBox1.DataSource = kadena

Otra forma:
For Each cadena As String In kadena
        ListBox1.Items.Add(cadena)
    Next

Otra forma:
For i As Integer = 0 To kadena.Length - 1
            ListBox1.Items.Add(kadena(i).ToString)
        Next

Otra forma:
 Dim kadena As String() = {"Carro", "Camion", CStr(123)}
        ListBox1.Items.AddRange(kadena)

Declaración array y uso de GetLowerBound y GetUpperBound

Dim letras As String() = {"a""b""c""d""e""a"}
Dim posi As Integer = Aray.LastIndexOf(letras, "a")
MsgBox("ultima posicion en que se encuentra la letra a es:  " & posi)
MsgBox ("la letra en la primera posicion es:  " & letras.GetLowerBound(0))
MsgBox("la letra en la ultima posicion es:  " & letras.GetUpperBound(0))

Recorrer array con GetLowerBound y GetUpperBound

        For X = letras.GetLowerBound(0) To letras.GetUpperBound(0)
            MsgBox("estas son las letras del arreglo :  " & letras(X))
        Next

Recorrer arrar con LBound y UBound

        For y = LBound(letras) To UBound(letras)
            MsgBox("estas son las letras del arreglo:  " & letras(y))
        Next

Uso de Split y Join

Dim quitarCaracteres As String = "Mederico/Monuel/Morqueta"
        Dim vector() As String
        Dim enCadena As String

        vector = Split(quitarCaracteres, "/")
        For z = vector.GetLowerBound(0) To vector.GetUpperBound(0)
            MsgBox("Utilizando Split:   " & vector(z))
        Next

        enCadena = (Join(vector, "-"))
        MsgBox("Utilizando Join:   " & enCadena)

Pasando arraya como parámetro a función

Dim numeros(2) As Integer
        numeros(0) = 1
        numeros(1) = 2
        numeros(2) = 3

        For Each numero As Integer In numeros
            MessageBox.Show(numero)
        Next

        Aumentar(numeros)

Private Sub Aumentar(ByVal array() As Integer)
        For Each i As Integer In array
            MessageBox.Show((i * 30) + 1)
        Next
    End Sub

Copiando los elementos de un array a otro

Dim a() As String = {"hola""y""demas"}
        Dim b(a.GetUpperBound(0)) As String
        'Dim b(a.Length - 1) As String
        a.CopyTo(b, 0)

        For Each palabra As String In b
            MessageBox.Show(palabra)
        Next

Ejemplo de uso de arreglos manejando notas de alumnos

Dim meses(11) As String
Private dia_semana(6) As Byte
Public hora(23) As Double

Module Module1
Const limite = 15
Dim lista_notas(limite) As Single

Sub Main()
Dim numero As Integer
Dim suma As Single
Dim media As Single

Console.Write("Introduzca numero de calificaciones: ")
numero = Val(Console.ReadLine)
If numero > limite Then
Console.WriteLine("No se procesan mas de " & limite & " calificaciones")
      Else
      suma = 0
      Console.WriteLine("Introduzca calificaciones")
      'a medida que el usuario introduce las calificaciones
      'estas se colocan en el array
       For i = 0 To numero - 1
       Console.Write("   Nota[" & (i + 1) & "]= ")
       lista_notas(i) = Val(Console.ReadLine)
       suma = suma + lista_notas(i)
       Console.WriteLine()
       Next
           'se obtiene la media
       media = suma / numero
       Console.WriteLine("La media es: " & media)
       Console.WriteLine("-----------------------------------------")
       Console.WriteLine("Calificaciones mayores a la media es")
       ' se recore el array buscando calificaciones mayores a la media
       For i = 0 To numero - 1
       If lista_notas(i) > media Then
       Console.WriteLine("       " & lista_notas(i))
       End If
       Next
      Console.WriteLine("----------------------------------------------")
       End If
       Console.WriteLine("presione una tecla para terminar...")
       Console.ReadLine()
       End Sub
 End Module

Manejo de arreglos en C#

int[] valores = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
string[] paises = new string[4] { "Argentina""Bolivia""Peru""Chile"};

int[] numeros = new int[8];
int[] a = { 6, 1, 5, 6, 4, 8, 6, 9, 7, 4, 14, 26, 14, 12, 10 };

            //Inicializacion omitiendo el tamaño de la matriz
int[] valores = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
string[] paises = new string[] { "Argentina""Bolivia""Peru""Chile"};

            //Tambien podemos omitir el operador new
int[] valores = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
string[] paises = { "Argentina""Bolivia""Peru""Chile" };


Mostrando los valores del array en ListBox

int[] valores = { 3, 5, 2, 1, 5, 3, 7, 9, 8 };

foreach (int i in valores)
 { listBox1.Items.Add(i); }

Mostrando los valores de array en MessageBox

private int[] arreglo;
private void button1_Click(object sender, EventArgs e)
{
     arreglo = new int[10];
     for (int i = 1; i < 10; i++)
     {
          arreglo[i] = i * 50;
          MessageBox.Show( arreglo[i].ToString());
     }}

Mostrando la cantidad de números pares e impares de un arreglo

private void button1_Click(object sender, EventArgs e){

            int impares = 0, pares = 0;
            int[] arr = new int[] { 0, 1, 2, 5, 7, 8, 11 };
            foreach (int i in arr)
            {
                if (i % 2 == 0)
                    pares++;
                else
                    impares++;
            }
            MessageBox.Show("Hay" +impares+ "impares y" +pares+ "pares.");
        }

Llenando un arreglo desde un textBox

private void button1_Click(object sender, EventArgs e){
                    
        int index = 0;
        int[] arreglo = new int[10];

         if(index > 10)
         return;
      
       arreglo[index] = Convert.ToInt16(textBox1.Text);
      
       MessageBox.Show(arreglo[index].ToString());
       listBox1.Items.Add(arreglo[index].ToString());
      
       index++; }

Determinando si un elemento pertenece a un arreglo

private void Form1_Load(object sender, EventArgs e){
       
             int[] valores = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
             bool dime= Pertenece(8, valores);
             if(dime==true){   
                 MessageBox.Show("el numero pertenece al arreglo");
             }else{
                 MessageBox.Show("el numero no pertenece al arreglo");
             }}

        public static bool Pertenece (int numero, int [] array){
             for(int i=0; i
             if(array[i]==numero)
             return true;
            }
             return false;
                }

Encontrando el número mayor de un arreglo de enteros

private void Form1_Load(object sender, EventArgs e){
       
     int mayor;
     int[] valores = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
     mayor = MAYOR(valores);
     MessageBox.Show("el mayor es:   " + mayor);
        }

    public static int MAYOR(int[]numeros){
   
    int mayor = numeros[0];
    for(int i = 0 ; i< numeros.Length ; i++)
   
    if(numeros[i] > mayor)
        mayor = numeros[i];
    return mayor;
}

Reordenar arreglo

Capturar 10 numeros de cualquier tamaño ejemplo 12,13,587,41 etc hasta 10 y luego invertir esa cantidad ejemplo 41,587,13,12…una vez capturado el arreglo, sería con la ayuda de una variable auxiliar y de un ciclo que recorra el arreglo hasta la mitad e invierta el primer valor con el último.

La posición del primer valor sería controlada por el ciclo cuyo valor iría desde 0 hasta 4; y la posición del último valor se controlaría con una variable que iria de 9 hasta 5, lo demás sería invertir el valor de la posición inicial con el de la final, así:


using System;
namespace InvertirArr {
    class Program {
        static void Main(string[] args) {
            int[] arreglo = new int[10];
            int aux, up = 9;

            //Capturar arreglo
            for (int i = 0; i < 10; i++) {
                Console.Write ("Ingresa numero ");
                arreglo[i] = Convert.ToInt16 (Console.ReadLine());
            }

            //Invertir arreglo
            for (int i = 0; i < 5; i++) {
                aux = arreglo[i];
                arreglo[i] = arreglo[up];
                arreglo[up] = aux;
                up--;
            }

            //Mostrar arreglo invertido
            for (int i = 0; i < 10; i++) {
                Console.Write (arreglo[i] + ", ");
            }

            Console.ReadKey();
        }}}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ordenar_nombres_burbuja_
{
    class Program
    {
        static void Main(string[] args)
        {

 //EL TAMAÑO DEL ARREGLO ES DE 5 POR LO SOLO PODEMOS AGREGAR A 5 PERSONAS
            int temp;
            int[]edad=new int[5];
            string[] nombre = new string[5];
            for (int i = 0; i < edad.Length; i++)
            {
                Console.WriteLine(“dame el nombre ["+i+"]“);
                nombre[i]=Console.ReadLine();
                   Console.WriteLine(“dame su edad:”);
                edad[i]=Convert.ToInt32(Console.ReadLine());
                  }
            string seudo;
         
//METODO BURBUJA
             for (int i = 0; i < (edad.Length-1); i++)
            {
                 for (int j = 0; j < (edad.Length-1); j++)
                  {
                     if(edad[j]>edad[j+1])
                     {
                         temp=edad[j];
                         seudo = nombre[j];
                         edad[j]=edad[j+1];
                         nombre[j] = nombre[j + 1];
                         edad[j+1]=temp;
                         nombre[j + 1] = seudo;
               }}}
 //SE IMPRIMEN LAS PERSONAS SEGUN LA EDAD DE MENOR A MAYOR
                 Console.WriteLine(“orden:”);
                 for (int p = 0; p < edad.Length; p++){
                Console.WriteLine(nombre[p]+“:”+edad[p]);
            }
                 Console.ReadLine();
        }}}

Calcular el promedio, mínimo y máximo

Programa que lee del usuario una lista de notas correspondientes a los
alumnos de un curso, y calcula el promedio, mínimo y máximo. Se ilustra
el uso de arreglos para el almacenamiento de la información de entrada.

using System;
class Curso {
const float MAX_NOTA = 7.0F; // Las expresiones tipo float requieren una F al final
const float MIN_NOTA = 1.0F;
 float[] notas;
 float promedio;
 float minimo;
 float maximo;
public Curso() {
 int n;
Console.Write("Ingrese el número de alumnos en la sección: ");
 n = int.Parse(Console.ReadLine());
notas = new float[n];
for(int i=1; i<=n; i++) {
Console.Write("Ingrese la nota {0}: ", i);
 notas[i-1] = float.Parse(Console.ReadLine());
 }
 }
public void Calcular() {
float suma = 0;
minimo = MAX_NOTA;
 maximo = MIN_NOTA;
foreachfloat nota in notas ) {
if (minimo>nota) minimo = nota;
if (maximo
 suma += nota;
 }
promedio = suma / notas.Length;
 }
public void Mostrar() {
Console.WriteLine("Promedio de las {0} notas = {1}", notas.Length, promedio);
 Console.WriteLine("Mínimo de las {0} notas = {1}", notas.Length, minimo);
 Console.WriteLine("Máximo de las {0} notas = {1}", notas.Length, maximo);
 }
}
class MainApp {
static void Main() {
Curso c = new Curso();
 c.Calcular();
 c.Mostrar();
Console.ReadLine();
 }
}





miércoles, abril 10, 2013