• Domingo 22 de Diciembre de 2024, 09:13

Autor Tema:  explicacion de codigo  (Leído 1502 veces)

marcotulio

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
explicacion de codigo
« en: Viernes 13 de Noviembre de 2009, 01:47 »
0
hola... consegui un codigo que hace el contar cuantas letra y vocales tiene una oracion pero no lo entiendo muy bien ya que solo se LO BASICO en c# me dijieron que usa subcadenas de string pero no muy le entiendo.
 
Código: C#
  1.  
  2. namespace Cuenta_letras
  3. {
  4.     public partial class Form1 : Form
  5.     {
  6.         public Form1()
  7.         {
  8.             InitializeComponent();
  9.  
  10.         }
  11.  
  12.         public int[] Contador = new int[7];// ME IMAGINO QUE AQUI CREA UN VECTOR
  13.         public string letra;
  14.         public string dato;
  15.         public int j;
  16.         private void button1_Click(object sender, EventArgs e)
  17.         {
  18.             Contador[0] = 1;// NO SE QUE HIZO DE AQUI EN ADELANTE
  19.             for (j = 1; j < Contador.Length;j++ ) { Contador[j] = 0; }
  20.             dato = textBox1.Text;
  21.             for (int i = 0; i <= dato.Length-1; i++)
  22.             {
  23.                 letra = dato.Substring(i, 1);// AQUI ME DIJIERON QUE ESTABA LA SUBCADENA
  24.                 if (letra == " ")
  25.                 {Contador[0] += 1;}
  26.                 else
  27.                 {
  28.                     Contador[1] += 1;
  29.                     switch (letra)
  30.                     {
  31.                         case "a": Contador[2] += 1; break;
  32.                         case "e": Contador[3] += 1; break;
  33.                         case "i": Contador[4] += 1; break;
  34.                         case "o": Contador[5] += 1; break;
  35.                         case "u": Contador[6] += 1; break;
  36.                         case "á": Contador[2] += 1; break;
  37.                         case "é": Contador[3] += 1; break;
  38.                         case "í": Contador[4] += 1; break;
  39.                         case "ó": Contador[5] += 1; break;
  40.                         case "ú": Contador[6] += 1; break;
  41.                         case "A": Contador[2] += 1; break;
  42.                         case "E": Contador[3] += 1; break;
  43.                         case "I": Contador[4] += 1; break;
  44.                         case "O": Contador[5] += 1; break;
  45.                         case "U": Contador[6] += 1; break;
  46.                         case "Á": Contador[2] += 1; break;
  47.                         case "É": Contador[3] += 1; break;
  48.                         case "Í": Contador[4] += 1; break;
  49.                         case "Ó": Contador[5] += 1; break;
  50.                         case "Ú": Contador[6] += 1; break;
  51.                     }
  52.                 }
  53.             }
  54.             {
  55.                 label1.Text = dato.Length.ToString();
  56.                 label2.Text = Contador[0].ToString();
  57.                 label3.Text = Contador[1].ToString();
  58.                 label4.Text = Contador[2].ToString();
  59.                 label5.Text = Contador[3].ToString();
  60.                 label6.Text = Contador[4].ToString();
  61.                 label7.Text = Contador[5].ToString();
  62.                 label8.Text = Contador[6].ToString();
  63.             }
  64.         }
  65.     }
  66.  

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: explicacion de codigo
« Respuesta #1 en: Viernes 13 de Noviembre de 2009, 09:01 »
0
te explico sobre codigo:

Código: C#
  1.  
  2.  
  3. namespace Cuenta_letras
  4. {
  5.     public partial class Form1 : Form
  6.     {
  7.         public Form1()
  8.         {
  9.             InitializeComponent();
  10.  
  11.         }
  12.  
  13.         public int[] Contador = new int[7];// Si es un vector, de 7 elementos
  14.         public string letra;
  15.         public string dato;
  16.         public int j;
  17.         private void button1_Click(object sender, EventArgs e)
  18.         {
  19.             Contador[0] = 1;//Aqui pone el elemento 0 de la matriz a uno
  20.  
  21.             for (j = 1; j < Contador.Length;j++ )  //En este bucle pone los demas elementos de la matriz a 0
  22.                   { Contador[j] = 0; }
  23.  
  24.             dato = textBox1.Text; //Mete la frase en la variable dato
  25.  
  26.             for (int i = 0; i <= dato.Length-1; i++) //Bucle que se repetirá tantas veces como caracteres tenga la frase(incluidos espacios)
  27.             {
  28.                 letra = dato.Substring(i, 1);//Aqui cogemos un caracter de la frase(en caracter numero i) en cada pasada por el bucle i suma 1
  29.                 if (letra == " ") //Si el caracter es espacio cuenta mas 1 en el primer elemento de la matriz (por cada espacio se entiende sera una palabra)
  30.                 {Contador[0] += 1;} //Por lo tanto en Contador[0] tendremos el numero de palabras
  31.                 else //si no es espacio haremos lo siguiente:
  32.                 {
  33.                     Contador[1] += 1; //contamos +1 en la segunda celda de la matriz (aqui se entiende contara el total de letras, SIN ESPACIOS)
  34.                     switch (letra) //aqui sumamos solo las vocales
  35.                     {
  36.                         case "a": Contador[2] += 1; break; //si la letra es "a" sumamos 1 en la celda tercera(aqui sumamos el total de "a")
  37.                         case "e": Contador[3] += 1; break; // todo el swich es lo mismo, sumamos segun la letra
  38.                         case "i": Contador[4] += 1; break; //si la vocal esta acentuada o es mayuscula da igual la metemos en la celda de las "a", "e", segun sea el caso
  39.                         case "o": Contador[5] += 1; break;
  40.                         case "u": Contador[6] += 1; break;
  41.                         case "á": Contador[2] += 1; break;
  42.                         case "é": Contador[3] += 1; break;
  43.                         case "í": Contador[4] += 1; break;
  44.                         case "ó": Contador[5] += 1; break;
  45.                         case "ú": Contador[6] += 1; break;
  46.                         case "A": Contador[2] += 1; break;
  47.                         case "E": Contador[3] += 1; break;
  48.                         case "I": Contador[4] += 1; break;
  49.                         case "O": Contador[5] += 1; break;
  50.                         case "U": Contador[6] += 1; break;
  51.                         case "Á": Contador[2] += 1; break;
  52.                         case "É": Contador[3] += 1; break;
  53.                         case "Í": Contador[4] += 1; break;
  54.                         case "Ó": Contador[5] += 1; break;
  55.                         case "Ú": Contador[6] += 1; break;
  56.                     }
  57.                 }
  58.             }
  59.             {
  60.                 label1.Text = dato.Length.ToString(); //escribimos la frase ingresada
  61.                 label2.Text = Contador[0].ToString(); // escribimos en el label 1 El total de palabras
  62.                 label3.Text = Contador[1].ToString(); // escribimos el total de LETRAS
  63.                 label4.Text = Contador[2].ToString(); // escribimos el total de "A" mayusculas, minusculas o acentuadas
  64.                 label5.Text = Contador[3].ToString(); // igual con e
  65.                 label6.Text = Contador[4].ToString(); // igual con i
  66.                 label7.Text = Contador[5].ToString(); // igual con o
  67.                 label8.Text = Contador[6].ToString(); // igual con u
  68.             }
  69.         }
  70.     }
  71.  
  72.  
  73.  

Espero se entienda asi. Saludos

totorufo

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: explicacion de codigo
« Respuesta #2 en: Viernes 13 de Noviembre de 2009, 09:34 »
0
Hola!

Justo subiendo he visto la explicacion de tannken. Que ya es suficiente.
Pero bueno, ya la tenia preparada asi que la subo:

A ver que te parece esto:
Código: C#
  1.  
  2. private void button1_Click_1(object sender, EventArgs e)
  3.         {
  4.             int cont_letras = 0;            // total de letras
  5.             int cont_a = 0;                 // cuantas a
  6.             int cont_e = 0;                 // cuantas e
  7.             int cont_i = 0;                 // cuantas i
  8.             int cont_o = 0;                 // cuantas o
  9.             int cont_u = 0;                 // cuantas u
  10.  
  11.             string string_de_entrada;       // texto a evaluar
  12.  
  13.             string letra_a_evaluar;         // letra a evaluar
  14.  
  15.             // Insertamos el texto
  16.             string_de_entrada = textBox1.Text;
  17.  
  18.             // Calculamos cuantas letras en total tiene
  19.             cont_letras = string_de_entrada.Length;
  20.  
  21.             // Para todo el texto a evaluar
  22.             for (int i = 0; i < cont_letras; i++)
  23.             {
  24.                 // Conseguimos la letra de la posicion x
  25.                 letra_a_evaluar = string_de_entrada.Substring(i, 1);
  26.  
  27.                 // Evaluamos
  28.                 switch (letra_a_evaluar)
  29.                 {
  30.                     // Si es "a" sumamos
  31.                     case "a": cont_a++; break;
  32.                     case "A": cont_a++; break;
  33.                     case "á": cont_a++; break;
  34.                     case "Á": cont_a++; break;
  35.  
  36.                     // Si es "e" sumamos
  37.                     case "e": cont_e++; break;
  38.                     case "E": cont_e++; break;
  39.                     case "é": cont_e++; break;
  40.                     case "É": cont_e++; break;
  41.  
  42.                     // Si es "i" sumamos
  43.                     case "i": cont_i++; break;
  44.                     case "I": cont_i++; break;
  45.                     case "Í": cont_i++; break;
  46.                     case "í": cont_i++; break;
  47.  
  48.                     // Si es "o" sumamos
  49.                     case "o": cont_o++; break;
  50.                     case "ó": cont_o++; break;
  51.                     case "O": cont_o++; break;
  52.                     case "Ó": cont_o++; break;
  53.  
  54.                     // Si es "u" sumamos
  55.                     case "u": cont_u++; break;
  56.                     case "ú": cont_u++; break;
  57.                     case "U": cont_u++; break;
  58.                     case "Ú": cont_u++; break;
  59.                 }
  60.             }
  61.  
  62.             // Visualizamos informacion
  63.             label1.Text = cont_letras.ToString();
  64.             label2.Text = cont_a.ToString();
  65.             label3.Text = cont_e.ToString();
  66.             label4.Text = cont_i.ToString();
  67.             label5.Text = cont_o.ToString();
  68.             label6.Text = cont_u.ToString();
  69.         }
  70.  
  71.  

Bueno, pues si entiendes esto, lo que tu amigo a hecho es en vez de tener

Código: C#
  1.  
  2. int cont_letras = 0;            // total de letras
  3. int cont_a = 0;                 // cuantas a
  4. int cont_e = 0;                 // cuantas e
  5. int cont_i = 0;                 // cuantas i
  6. int cont_o = 0;                 // cuantas o
  7. int cont_u = 0;                 // cuantas u
  8.  
  9.  

A definido un array con toda esa informacion

Te aconsejo poner un breakpoint en tu codigo para ir mirando los valores que tienen.

Bueno.

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: explicacion de codigo
« Respuesta #3 en: Viernes 13 de Noviembre de 2009, 10:01 »
0
Cita de: "totorufo"
Hola!

Justo subiendo he visto la explicacion de tannken. Que ya es suficiente.
Pero bueno, ya la tenia preparada asi que la subo: ...

Me gusta mas tu explicación mucho mas estructurada y clara :)

Saludos

marcotulio

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: explicacion de codigo
« Respuesta #4 en: Sábado 14 de Noviembre de 2009, 01:51 »
0
GRACIAS GRACIAS Y MAS GRACIAS  :lol:  :lol:  :lol:  :lol:  :lol:  :lol:  :beer:  :beer:  :beer:  :beer:  :good:  :good:  :good:  :good: ahora le entendi y podre guiarme mas en hacer el mio