alguien que sepa leer vocales y consonantes de vector

Iniciado por XpandyX, 8 Octubre 2010, 01:17 AM

0 Miembros y 1 Visitante están viendo este tema.

XpandyX

Hola me dirigo a ustedes por el motivo qeu desconozco el caso e como leer las vocales y consonantes de un vector les dejo mi codigo.

Código (csharp) [Seleccionar]
    class Cola
    {
        private int Frente, Final, TamañoMaximo;
        private char[] C;

        public Cola()
        {
            TamañoMaximo = 5;
            C = new char[TamañoMaximo];
            Frente = -1;
            Final = -1;           
        }

        public bool ColaVacia()
        {
            if (Frente == -1)
                return true;
            else
                return false;
        }

        public bool ColaLLena()
        {
            if (Frente == 0 && Final == TamañoMaximo - 1 || Frente == Final + 1)
                return true;
            else
                return false;
        }

        public void Encolar(char Elemento)
        {
            if (!ColaLLena())
            {
                if (Final == TamañoMaximo - 1)
                    Final = 0;
                else
                    Final = Final + 1;
                if (Frente == -1)
                    Frente = 0;
                C[Final] = Elemento;
            }
            else
            {
                Console.WriteLine("La Cola esta llena");
                Console.WriteLine("Gracias por su colaboracion");
            }
        }

        public void MostrarCola()
        {
            if (Frente < Final)
            {
                for (int i = Frente; i <= Final; i = i + 1)
                {
                    Console.Write("{0} ",C[i]);
                }
            }
            else if (Final < Frente)
            {
                for (int i = Frente; i <= TamañoMaximo - 1; i++)
                {
                    Console.Write("{0} ", C[i]);
                }
                for (int i = 0; i <= Final; i++)
                {
                    Console.Write("{0} ", C[i]);
                }
            }
            else if (Frente == Final)
            {
                Console.WriteLine("{0} ", C[Final]);
            }
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            Cola ObjetoCola = new Cola();
            int i,ContadorLetras;
           
            char [] Ingresos;
            Ingresos = new char[5];
            Console.WriteLine("Ingrese 5 elementos char");
            for ( i = 0; i < 5;i++ )
            {
                Ingresos[i] = char.Parse(Console.ReadLine());
                ObjetoCola.Encolar(Ingresos[i]);
            }
            ContadorLetras =0;
            for (i = 0; i < 5; i = i + 1)
            {
                if (char.IsLetter(Ingresos[i]))
                    ContadorLetras = ContadorLetras + 1;
            }
            Console.WriteLine("Se contaron {0} Letras", ContadorLetras);
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("visualizando elementos ingresados");
            ObjetoCola.MostrarCola();
            Console.ReadKey();
        }
    }


Lo hice con colas y bueno solo se como hallar el numero de letras qeu tiene el vector pero no puedo hallar las vocales y las consonantes.
Profavor alguien que me ayude, please.
Gracias de antemano.
Saludos

[D4N93R]

Hola,

Pues, hay varias opciones y depende mucho de la versión del framework que uses, si estás en la 4.0 usa LINQ, sino pasa el vector a un List y usa el Contains.

Saludos!

carlitos_jajajajaja

no necesitas tanta cachucha para saber si una letra es vocal o consonante...

Te doy una pista

Una variable char letra es vocal si letra es igual a 'a', o 'e' o y o 'o' o 'u'

lees todo el vector, si la variable es vocal, entonces va al vector1, si no va al vector 2 (o lo q quieras hacer despues de separar vocales de consonantes
Merodeo los foros, esperando el momento de decir algo inteligente...

Se necesita paciencia

[L]ord [R]NA

Cita de: carlitos_jajajajaja en  8 Octubre 2010, 06:18 AM
no necesitas tanta cachucha para saber si una letra es vocal o consonante...

Te doy una pista

Una variable char letra es vocal si letra es igual a 'a', o 'e' o y o 'o' o 'u'

lees todo el vector, si la variable es vocal, entonces va al vector1, si no va al vector 2 (o lo q quieras hacer despues de separar vocales de consonantes
'y' no es una vocal, es una consonante.

jlrvpuma

Por lo menos has hecho algo, asi que no creoq ue esto sea hacerte  la tarea...como ves no es necesario tanta 'cachucha' para encontrar las vocales...espero que te ayude...
Código (csharp) [Seleccionar]

string vocales = "aeiou";

int contadorVocales = 0,contadorConsonantes=0;
char[] cola = new char[]{'q','a','f','i','o'};

string posicionVocales = "",posicionConsonantes="", strCola = "";

for (int i = 0; i < cola.Length; i++)
{
if(Char.IsLetter(cola[i]))
{
if(vocales.Contains(cola[i].ToString()))
{
contadorVocales += 1;
posicionVocales += "posicion " + i.ToString() + " --> " + cola[i].ToString() +"\n";
}
else
{
contadorConsonantes +=1;
posicionConsonantes += "posicion " + i.ToString() + " --> " + cola[i].ToString() +"\n";
}
}
strCola += cola[i].ToString();
}
Console.WriteLine("Hay {0} vocales y  {1} consonantes.",
                  contadorVocales.ToString(),contadorConsonantes.ToString());

Console.WriteLine("\nVocales en '{0}':\n{1}",strCola,posicionVocales);
Console.WriteLine("\nConsonantes en '{0}':\n" +
"{1}",strCola,posicionConsonantes);

Console.ReadKey();

/*salida:

Hay 3 vocales y  2 consonantes.

Vocales en 'qafio':
posicion 1 --> a
posicion 3 --> i
posicion 4 --> o

Consonantes en 'qafio':
posicion 0 --> q
posicion 2 --> f
*/

.::IT::.

#5
Suponiendo que te den el vetor ya lleno pues aqui el ejemplo de como buscar vocales,consonates

primero declaras un vector(o arreglo como quieras llamarlo) con todas las vocales

private char[] vocales = new char[] { 'a', 'e', 'i', 'o', 'u' };

luego suponiebdo que tienes el un Vector con los elementos ya llenos puedes usar
Array.IndexOf(array,elemento) que devuelve -1 cuando no encuentra "elemento" dentro de "array"

Código (csharp) [Seleccionar]

public int TotalVocales()
       {
               int contador = 0;//contador

               //recorremos todo el arrary y contamos las vocales
               for (int i = 0; i < vector.Length; i++)
               {
                   /*
                    * Array: clases del .net
                    * IndexOf: metodo de la clase array que busca el index de un elemento dentro de un array si no lo encuentra devuelve -1
                    */
                   if (Array.IndexOf(vocales, vector[i]) != -1)
                   {
                       contador++;//Indexof encontro el elemento porque devolvio un valor diferente de -1 entonces aumentar contador
                   }
               }
               return contador;
       }


por ultimo todo el codigo de ejemplo


Código (csharp) [Seleccionar]


using System;
using System.Text;

namespace Arreglos
{
   class Cola
   {
       /// <summary>
       /// Vector de las vocales
       /// </summary>
       private char[] vocales = new char[] { 'a', 'e', 'i', 'o', 'u' };  

       /// <summary>
       /// Vector que se llena con el metodo Add(char Letra)
       /// </summary>
       private char[] vector;

       /// <summary>
       /// Variable que determina el numero maximo de elementos
       /// </summary>
       private int _TotalElementos;

       /// <summary>
       /// Contructor donde se define el tamaño maximo para el vector
       /// </summary>
       /// <param name="Tamaño"></param>
       public Cola(int Tamaño)
       {
           _TotalElementos = Tamaño;
           // Inicializamos el vector en 0
           vector = new char[0];  
       }

       /// <summary>
       /// Metodo para arreglar elementos al array
       /// </summary>
       /// <param name="Letra"></param>
       public void Add(char Letra)
       {
           if (vector.Length < _TotalElementos)
           {
               /*
                * Redimensionamos el vector para agregar el elemento nuevo
                * Array: es una clase del .net
                * Resize<T>: es un metodo de la clase array y "<T>" es el tipo de dato del vector ah redimencionar
                * ref: indica que el vector se pasa por referencia
                */
               int NewSize = vector.Length + 1;
               Array.Resize<char>(ref vector, NewSize);

               vector[NewSize - 1] = Letra;

               Console.WriteLine("Se registro {0}", Letra);  
           }
           else
               throw new Exception("vector lleno");
       }

       #region Metodos y propiedades publicas
       /*
        * las propiedades tienen dos secciones de codigo
        * get{codigo}: todo el codigo de lectura por lo que siempre contendra un return en la linea final
        * set{codigo}: todo el codigo de escritura para la propiedad se odtiene el valor asignado ah traves la variable "value"
       */



       /// <summary>
       /// Devuelve el numero de elementos del vector
       /// </summary>
       public int NumElementos
       {
           get
           {
               return vector.Length;
           }
       }

       /// <summary>
       /// Devuelve el total de vocales del vector
       /// </summary>
       public int TotalVocales
       {
           get
           {
               int contador = 0;//contador

               //recorremos todo el arrary y contamos las vocales
               for (int i = 0; i < vector.Length; i++)
               {
                   /*
                    * Array: clases del .net
                    * IndexOf: metodo de la clase array que busca el index de un elemento dentro de un array si no lo encuentra devuelve -1
                    */
                   if (Array.IndexOf(vocales, vector[i]) != -1)
                   {
                       contador++;//Indexof encontro el elemento porque devolvio un valor diferente de -1 entonces aumentar contador
                   }
               }
               return contador;
           }
       }

       /// <summary>
       /// Devuelve el total de consonantes del vector
       /// </summary>
       public int TotalConsonantes
       {
           get
           {
               /*
                * Colocar aqui todo el codigo para contar las consonates basandote en el codigo de TotalVocales
                * Solo declara un vector de tipo char con todas las consonantes y repiete el mismo proceso
                */
               throw new Exception("codigo no implementado");
           }        
       }

       public void MostrarElementos()
       {
           for (int i = 0; i < vector.Length; i++)
           {
               Console.WriteLine(vector[i]);  
           }
       }

       #endregion
   }

   class Arreglos
   {

       static void Main()
       {

           Cola MyCola = new Cola(5);

           char Letra = char.Parse(" ");

           //llenar el vector
           do
           {
               Console.WriteLine("Ingrese un caracter para llenar el vector o precione \"Enter\" para terminar");

               Letra = Console.ReadKey().KeyChar; //leer solo el primer caracter

               Console.WriteLine();//para pasar a la siguiente linea

               if (Letra == Char.Parse("\r"))
                   break;

               try
               {
                   MyCola.Add(Letra);
                     
               }
               catch (Exception ex)
               {
                   Console.WriteLine(ex.Message);//mostramos el mensaje en pantalla
                   break; //terminamos el bucle
               }

           } while (Letra != Char.Parse("\r"));
           
           //Aqui muestrar todo lo que quiera
           try
           {
               Console.WriteLine("Lista de Elementos");
               Console.WriteLine("------------------");
               MyCola.MostrarElementos();

               Console.Write("Total de Vocales : ");
               Console.WriteLine(MyCola.TotalVocales.ToString());
               
               Console.Write("Total de Consonantes : ");
               Console.WriteLine(MyCola.TotalConsonantes.ToString());
           }
           catch (Exception ex)
           {
               Console.Write(ex.Message);
           }

           Console.ReadKey();  
       }
   }
}


espero te sirva falta implementar el conteo de consonates pero ahi te escribi como debes hacerlo, lo mismo seria si quieres contar numeros, ciertos numeros,letras etc
Simplemente .::IT::.

XpandyX

Hola muchachos la verda ueq si me sirvio aunqeu lo ice de diferente forma y de igual manera gracias que los voy a probar cada uno de sus datos dados gracias por responderme.

Adoro este foro :D y saludos para vosotros brother´s