Resultados 1 al 4 de 4

ayuda programa en C!!!

  1. #1 ayuda programa en C!!! 
    Iniciado
    Fecha de ingreso
    Oct 2007
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    Hola soy nueva en todo esto de la programacion y necesito que alguien me ayude! Tengo que realizar un programa que capture un texto, que imprima un histograma en el que se refleje la proporción de palabras que hay en él. En el histograma, tengo que mostrar las proporciones de palabras de una a diez letras, considerando como de diez letras todas aquellas palabras mayores de 10 letras. Para realizar las barras del histograma, debo utilizar cualquier caracter distintivo. Un caracter indica un 1 por ciento del total, por lo que la cantidad total de caracteres deberá ser de 100. Así, la salida podría tener la siguiente apariencia:

    N Histograma
    = ====================
    1 **
    2 ***
    3 **********
    4 *****************
    5 ******************
    6 *****************
    7 **************
    8 **********
    9 ******
    10 ***

    El programa no es tan dificil, pero no puedo usar ni arreglos, ni cadenas...

    La verdad no se como hacerle :S:S:S:S
    Citar  
     

  2. #2  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Bueno, puedes empezarlo e ir colgando (nopaste.com, por ejemplo) tus resultados para ir obteniendo así comentarios y sugerencias por parte de los usuarios del foro. Así es más probable que obtengas ayuda, comprenderás mejor lo que se está haciendo y avanzarás más rápidamente.

    Salu2


    Keep on Rollin'

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
    Citar  
     

  3. #3  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicación
    Galiza
    Mensajes
    3.919
    Descargas
    8
    Uploads
    1
    Hola a_itt:

    no se si entendi bien, pero intentare responderte, teniendo en cuenta las limitaciones que comentas y alguna que me imagino que no comentaste, queda un diseño de programa muy patetico pero hace lo que pides:

    sea como sea el texto capturado acabara en una cadena o será un archivo, realmente no importa tanto sea cual sea la opción:

    necesitas 1 variable para acumular (de aqui en adelante acumulador) temporalmente el largo de la cadena, inicializada a 0.

    necesitas 10 variables inicializadas a 0, una para acumular la cantidad de palabras con x tamaño (1 variable para las palabras de una letra, 1 varible para las palabras de 2 letras...)

    necesitas un bucle que recorra todas los caracteres de la cadena o caracteres del archivo.

    con una una construcción interativa if-else compruebas si el carcter es una letra o no, si es una letra sumas uno a una variable acumulador, si no lo es significa que es fin de palabra (sea este caracter una:como, punto, espacio en blanco, salto de linea...), con una sentencia switch y usando de valor la variable acumulador: más o menos algo así:

    if ((entrada[i]>75 && entrada[i]<105)||(entrada[i]>55 && entrada[i]<70)) { /*son 2 rangos, mayusculas y minusculas, no lo se de memoria miralo en tabla ascii*/
    acumulador++;
    }
    else {
    switch (acumulador) {
    0: break;
    1: palabrade1letra++; break;
    2: palabrade2letra++; break;
    ...
    9: palabrade9letra++; break;
    default: palabrade10letra++; //asi tienes las de 10 letras o más
    }
    acumulador=0;
    }

    bien con eso ya tienes en variables la cantidad de apareciciones del tamaño de cada palabra, ahora toca mostrar los resultados...

    Llegados a este punto la cosa es simple y ya finalizado el búcle, hacer un bucle para cada tamaño usando de contador el valor de la variable acumuladora de palabras de ese tamaño:
    printf("\nN Histograma");
    printf("\n= ===========================");

    printf("\n1 ");
    for(i=1; i>palabrade1letra; i++)
    printf("*");

    printf("\n2 ");
    for(i=1; i>palabrade2letra; i++)
    printf("*");

    ...

    printf("\n10 ");
    for(i=1; i>palabrade10letra; i++)
    printf("*");

    Espero que te sirva las indicaciones que te di, ya hace un buen tiempo que no toco el lenguaje C y estás es solo una idea... si te sirve completa el código y ponlo un poco bonito

    Un Saludo
    He conocido muchos dioses. Quien niegue su existencia está tan ciego como el que confía en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
    Citar  
     

  4. #4  
    Iniciado
    Fecha de ingreso
    Oct 2007
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    muuchas gracias!!!

    Tuve que reemplazar par de cositas, y terminarlo obviamente . Muchas muchas gracias!!!
    Citar  
     

Temas similares

  1. Ayuda Programa CMD
    Por somadarkcruz en el foro GENERAL
    Respuestas: 1
    Último mensaje: 03-02-2016, 20:48
  2. Ayuda con programa
    Por christian_79 en el foro GENERAL
    Respuestas: 1
    Último mensaje: 28-12-2013, 20:51
  3. Programa en C++ (AYUDA)
    Por flatron en el foro PROGRAMACION DESKTOP
    Respuestas: 9
    Último mensaje: 09-01-2008, 16:24
  4. Ayuda con programa en VB
    Por martinss en el foro PROGRAMACION DESKTOP
    Respuestas: 2
    Último mensaje: 29-03-2006, 17:22
  5. Ayuda con 1 programa
    Por dares6 en el foro APLICACIONES
    Respuestas: 10
    Último mensaje: 13-12-2004, 02:27

Marcadores

Marcadores