• Blog
  • Acerca
  • Autor
  • Contacto
  • Aprender inglés, ¿¡en C++!?

    Me contó SetRoot a través de un comentario que se le ocurrió hacer un programa en C++ que nos ayudará a aprender palabras en inglés, en sus propias palabras:
    Se me ocurrio hacer un programa para aprender ingles y creo que los tiros tambien van por ahi corrígeme:
    1 llenar 1000 palabras
    2 agruparlas por alguna relacion como emociones articulos y otros(para esto quisiera usar una matriz para acceder a ella mas facil aunque 2 matrices tambien creo q me van :s con punteros y eso ,s)
    3 ejecucion: con un par de cases hacer un menu que me permita lanzar 20 palabras al azar(con sran o ran creo + time) con su significado
    y despues que me permita hacer un tipo de examen o test con esas mismas palabras desordenadas que cada acierto valga algo para ganar puntos y asi involucrar a los amigos y familiares

    Me gustó la idea de hacer un pequeño ‘bosquejo’ de su idea porque precisamente se necesita usar el código de mi último post: Números aleatorios sin repetir en C++. Así que mi algoritmo es algo así:

    1. Crear una matriz tipo string de N filas y 2 columnas, la primera columna son las palabras en inglés; la segunda, en español.
    2. Pedir el número de palabras que el usuario quiera memorizar.
    3. Obtener ese número de palabras aleatoriamente y mostrarlas.
    4. Borrar las palabras y empezar a preguntar el significado de cada una.
    5. Comparar la respuesta del usuario con la respuesta correcta.
    6. Calcular su calificación y mostrarla.

    El código es este:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    
    #include<cstdlib>
    #include<ctime>
    #include<iostream>
    using namespace std;
     
    int nofw;
    #define N 8 // numero de pares de palabras en la matriz
     
    bool checkrep(int n, int num[])
    {
        for(int i=0; i<nofw; i++)
            if(n == num[i])
                return true;
        return false;
    }
     
    int main()
    {
        srand(time(NULL));
        string ans, words[N][2] = {{"hi", "hola"}, {"house", "casa"}, {"water", "agua"}, 
          {"roof", "techo"}, {"chair", "silla"}, {"loudspeaker", "bocina"}, 
          {"screen", "pantalla"}, {"money", "dinero"}};
        int n, correct=0, wrong=0;
        cout << "Numero de palabras?: "; cin >> nofw;
        // obtener 'nofw' palabras aleatoriamente de nuestra matriz
        int num[nofw];
        for(int i=0; i<nofw; i++)
        {
            do
                n = rand() % N;
            while(checkrep(n, num));
            num[i] = n;
            cout << words[n][0] << " -> " << words[n][1] << endl;
        }
        cin.get(); cin.get();
        system("cls");
        // preguntar el significado de cada palabra
        for(int i=0; i<nofw; i++)
        {
            cout << words[num[i]][0] << " = "; cin >> ans;
            if(ans == words[num[i]][1])
            {
                correct++;
                cout << ">> Bien :)\n\n";
            }
            else
            {
                wrong++;
                cout << ">> Mal :(\n\n";
            }
        }
        cout << "Tuviste un " << (float)correct / (float)nofw * 100 << 
                    "% de respuestas correctas.";
        cin.get(); cin.get();
    }

    Como dije antes, es sólo un bosquejo, pero tal vez sea el punto de partida para un buen proyecto. Para optimizarlo creo que se deberían agregar algunas cosas:

    • Obtener los pares de palabras desde una base de datos
    • Ordenarlas por categorías
    • Que no importe si la respuesta está en mayúsculas o minúsculas
    • Mejorar la interacción con el usuario
    1. Omar ascencio Saavedra dice:

      oyes disculpa me podrías decir como puedo hacer para subir mis propios programas en mi blog así como tu los publicas con colores y todo eso?
      esque la verdad aun no se casi nada de html y pues me gustaria una ayuda

    2. Cristian Llanos dice:

      Me gusto su programa… =) ahora lo editaré un poquito para comprenderlo mejor xD.

    3. proto dice:

      yotambien he leido alnas publicaciones tuyas. dejame tu correo electronico para hacerte preguntas.. por fa

    4. LISBETH dice:

      hola les pido porfavor me ayuden tengo que crear un progrma con la funcion void contar para saber cuantas listas tengo en ese programa y no se como hacer plis ayudenme

    5. anonimo dice:

      Quiero saber como se usa System(“pause”) en Codeblocks

    6. Anairt dice:

      Hola thebatzuk, me podrias pasar tu mail, es que tengo unas dudas de como acer un programa me estoy practicando para un parcial y hay uno de los ejercicios que no me sale! desde ya muchas Gracias

    7. vlady dice:

      hola me podrias ayudar con un programa tengo muchas dudas acerca de como hacer un diccionario en c++ agradesco muchisimo tu tiempo concedido

    8. rocio dice:

      hola, espero estés bien. Oye me dio curiosidad probar este programa de ingles. pero no me quiere correr, sale un error en “int num[nofw];” dice que es una expresión constante requerida. le he acomodado pero igual no corre. me podrías decir cual es el error.? disculpa y gracias.

    9. sharysce dice:

      Ahh! que buen chiste, ironico, ¿no?

    Hola, escribe aquí tu comentario: