Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: 01munrra en 29 Septiembre 2015, 13:03 pm



Título: Ingresar una oracion, toma cada palabra y contar sus vocales(Solucionado)
Publicado por: 01munrra en 29 Septiembre 2015, 13:03 pm
Hola amigos!, estoy haciendo un codigo que me piden: dada una oracion, tomar cada palabra de dicha oracion una ves contar las vocales de cada palabra y mostrarla. He programado lo siguiente:

Código
  1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles procesar.Click
  2.  
  3.        Dim palabra(), oracion() As String
  4.        Dim letra As String
  5.        Dim indice As String = 1
  6.        Dim contar_vocal As Integer = 0
  7.        Dim i As Integer
  8.  
  9.        oracion = Split(TextBox1.Text)
  10.  
  11.        For i = 0 To Len(TextBox1.Text)
  12.            If i > 0 Then
  13.                For long_pal = 1 To Len(oracion(i)) + 1
  14.                    letra = Mid(oracion(i), 1, long_pal)
  15.  
  16.                    Select Case letra
  17.                        Case "a"
  18.                            contar_vocal = contar_vocal + 1
  19.                        Case "A"
  20.                            contar_vocal = contar_vocal + 1
  21.                        Case "e"
  22.                            contar_vocal = contar_vocal + 1
  23.                        Case "E"
  24.                            contar_vocal = contar_vocal + 1
  25.                        Case "i"
  26.                            contar_vocal = contar_vocal + 1
  27.                        Case "I"
  28.                            contar_vocal = contar_vocal + 1
  29.                        Case "o"
  30.                            contar_vocal = contar_vocal + 1
  31.                        Case "O"
  32.                            contar_vocal = contar_vocal + 1
  33.                        Case "u"
  34.                            contar_vocal = contar_vocal + 1
  35.                        Case "U"
  36.                            contar_vocal = contar_vocal + 1
  37.                    End Select
  38.                    letra = ""
  39.                Next
  40.                '                mostrar.Items.Add(letra)
  41.                ' mostrar.Items.Add(oracion(i))
  42.                ' mostrar.Items.Add(" Numeros de Vocales: ")
  43.                ' mostrar.Items.Add(contar_vocal)
  44.                contar_vocal = 0
  45.            Else
  46.                '  mostrar.Items.Add(oracion(i))
  47.            End If
  48.            i = i + 1
  49.        Next
  50.  
  51.    End Sub
  52.  

me arroja un error en:
Código
  1. For long_pal = 1 To Len(oracion(i)) + 1
el siguiente Información adicional: Índice fuera de los límites de la matriz.

me pueden ayudar?...


Título: Re: Ingresar una oracion, toma cada palabra y contar sus vocales
Publicado por: rob1104 en 29 Septiembre 2015, 20:05 pm
Hola, creo que tu código está muy rebuscado, que tal algo así para que te bases un poco:

Código
  1. Dim palabras() As String = txtOracion.Text.Split(" ")   'txtOracion es un textbox
  2. Dim contador = 0
  3. For i = 0 To palabras.Count() - 1
  4.    For j = 0 To palabras(i).Length - 1
  5.         If palabras(i)(j) = "a" Or palabras(i)(j) = "A" _
  6.             Or palabras(i)(j) = "e" Or palabras(i)(j) = "E" _
  7.             Or palabras(i)(j) = "i" Or palabras(i)(j) = "I" _
  8.             Or palabras(i)(j) = "o" Or palabras(i)(j) = "O" _
  9.             Or palabras(i)(j) = "u" Or palabras(i)(j) = "U" Then
  10.                    contador += 1
  11.           End If
  12.     Next
  13. Next
  14. lblVocales.Text = contador.ToString()    'lblVocales es un Label
  15.  

Esto te cuentas vocales de toda oración... ya te toca a ti separarlas por palabra si lo requieres.


Título: Re: Ingresar una oracion, toma cada palabra y contar sus vocales
Publicado por: 01munrra en 30 Septiembre 2015, 03:46 am
Gracias! ;-) ;-) me ayudo bastante...... practicamente hicistes todo, solo falto mostrar

Código
  1.        Dim oracion() As String
  2.        Dim contar_vocal As Integer = 0
  3.  
  4.        oracion = Split(TextBox1.Text)
  5.        For i = 0 To oracion.Count() - 1
  6.            If oracion(i) <> " " Then
  7.                For j = 0 To oracion(i).Length - 1
  8.                    If oracion(i)(j) = "a" Or oracion(i)(j) = "A" Or
  9.                       oracion(i)(j) = "e" Or oracion(i)(j) = "E" Or
  10.                       oracion(i)(j) = "i" Or oracion(i)(j) = "I" Or
  11.                       oracion(i)(j) = "o" Or oracion(i)(j) = "O" Or
  12.                       oracion(i)(j) = "u" Or oracion(i)(j) = "U" Then
  13.                        contar_vocal = contar_vocal + 1
  14.                    End If
  15.                Next
  16.                mostrar.Items.Add(oracion(i) & " Nº Vocales: " & contar_vocal)
  17.                contar_vocal = 0
  18.            End If
  19.        Next
  20.