elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con este ejercicio, por favor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con este ejercicio, por favor  (Leído 3,001 veces)
alexandra.vargas

Desconectado Desconectado

Mensajes: 3


Ver Perfil
ayuda con este ejercicio, por favor
« en: 5 Enero 2014, 22:50 pm »

Hola, soy alexandra vargas y tengo  que hacer este ejercicio en lenguaje c,  utilizando "archivos de texto", si alguien pudiera a ayudarme apelando a su sabiduría en la programación.  El ejercicio dice asi:


Por favor ayuda, tengo que entregarlo el jueves 9 de enero del 2014
en el dev-c


Se lee un archivo de texto, cuyo tamaño tiene como mínimo 200 palabras distintas y como máximo 300 palabras distintas. Todas las palabras distintas son reconocidas y almacenadas en una matriz
E   S   T   O            
E   S                  
U   N                  
E   J   E   M   P   L   O   
                     

SE TIENE  además un segundo archivo de texto, que es la copia del primero, salvo que tiene  100 a 150 apalabras con errores ortográficos, estos errores oscilan entre 1 y n caracteres mal escritos por palabras (siendo n el largo de alguna de las palabras).
Su programa deberá autocorregir el segundo archivo de texto considerando que el primero las tiene correctas. Cuando una palabra con error puede ser corregida con más de una del texto original (el primero de los archivos), se deberá consultar al usuario mostrando la palabra con el error, y todas las alternativas posibles. De esta manera el usuario podrá elegir la alternativa que debe quedar en el texto corregido.
El programa deberá imprimir todas las palabras distintas del original, el texto con errores, y el texto corregido, permitiendo al usuario elegir entre estas alternativas mediante un menú.


En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: ayuda con este ejercicio, por favor
« Respuesta #1 en: 6 Enero 2014, 00:01 am »

Solo te quedan tres días y no sabes por donde empezar. Suerte. Por cierto, no se hacen trabajos. Si no pones el código que llevas hecho no podemos decirte donde tienes los errores.

Además, faltan datos. ¿Que tipo de errores hay en el segundo fichero? ¿ transposicion? ¿sustitucion? ¿inserción?  ¿deleción? ¿Cualquiera de los anteriores?

¡Saludos!


En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
alexandra.vargas

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda con este ejercicio, por favor
« Respuesta #2 en: 6 Enero 2014, 03:21 am »

ayudame tu!!!
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: ayuda con este ejercicio, por favor
« Respuesta #3 en: 6 Enero 2014, 14:18 pm »

ayudame tu!!!

¡¡¡Y encima con esas!!!

¿Y un cafetito también no se te apetece?

Perdona, igual no lo sabes por no haberte leído las reglas del foro: no se hacen tareas desde cero, sólo se resuelven dudas sobre un código que previamente has tenido que hacer tú. ¿Lo pillas?.

:rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:

Y para cuando postees el código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!



En línea

dato000


Desconectado Desconectado

Mensajes: 3.033



Ver Perfil
Re: ayuda con este ejercicio, por favor
« Respuesta #4 en: 6 Enero 2014, 16:02 pm »

ayudame tu!!!

mujeres verdad??

En línea


do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: ayuda con este ejercicio, por favor
« Respuesta #5 en: 7 Enero 2014, 00:19 am »

ayudame tu!!!

Igual en carne y hueso tienes escote suficiente como para pedir así las cosas y que las hagan. Lastima que en el foro no podamos apreciarlo.

Volviendo al tema:
ayudame tu!!!

Deja que me lo piense... uhm.... NO

Buenas noches y suerte con tu trabajo.

¿Y un cafetito también no se te apetece?

Ya que insistes tanto con el tema, vale. C/Falsa Nº 123 (Que grandes Los Simpson)
Un cortadito con leche del tiempo, por favor, y un solo azucarillo si puede ser.

¡Saludos!
« Última modificación: 7 Enero 2014, 00:22 am por do-while » En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
jaxoR

Desconectado Desconectado

Mensajes: 93

?


Ver Perfil WWW
Re: ayuda con este ejercicio, por favor
« Respuesta #6 en: 7 Enero 2014, 18:13 pm »

Igual en carne y hueso tienes escote suficiente como para pedir así las cosas y que las hagan. Lastima que en el foro no podamos apreciarlo.

Apoyo la moción, con toda violencia.
En línea

alexandra.vargas

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda con este ejercicio, por favor
« Respuesta #7 en: 9 Enero 2014, 19:05 pm »

Muchas gracias, por su buena buena onda y comentarios, ha sido muy lindo leerlos, pero miren esto es lo que llevo

LA IDEA QUE EL PROGRAMA EN UN ARCHIVO DE TEXTO TENGO 200 PALABRAS ESCRIBAS CORRECTAMENTE Y EN OTRO ARCHIVO DE TEXTO TENGO 150 PALABRAS MAL ESCRITAS Y BIEN ESCRITAS Y QUE ESTE ME CORRIJA LAS PALABRAS MAL ESCRITAS.

#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#include <conio.h>

char pbueno[300];
char pmalo[300];

void deletrearcorre(char[], char[]);//deletrear letra por letra
int noletra(char c);// caracter que no correspondfa
void remover(char pmalo[]);// remover puntuaciones ,.
void mayuscula( char pmalo[]);// mayuscula
void minusculabueno( char pbueno[]); //parecido
int largomalo( char pmalo[]);//medir palabra delñ articulo
void nextpmaloWord(char pmalo[], char pmaloWord[],  int pmaloLength, char dictionaryWord[], char pbueno[]);

int main(void) {
    FILE* palabras;//llamo los textos el bueno y el malo
    FILE* palabras2;
    int bytes_read;
    char* p;
    char* z;
    char caracter, caracter2;
    char mat1[300][40], mat2[300][40];

    palabras = fopen("palabras.txt", "r");
    if (palabras == 0) {
        printf("no se puede abrir archivo  \"palabras.txt\"\n");
        return -1;
    }

    palabras2 = fopen("palabras2.txt", "r");
    if (palabras2 == 0) {
        printf("no se puede abrir archivo  \"palabras2.txt\"\n");
        return -1;
    }

   
   
   /* leo el diccionario */
    z = pbueno;
    printf("                palabras bien escritas \n\n");
    printf("%s", z);
    z = fgets(z, 1000, palabras);
    printf("%s", z);
   
   
   
    while (z != 0) {
        z = fgets(z, 1000, palabras);
       printf("%s", z);
   
       while (*z != '\0') {
      z += 1;
        }
        z = fgets(z, 1000, palabras);
       
    }
   
   

    /* read pmalo */
    p = pmalo;
    bytes_read = fread(p, 1, 1000, palabras2);
    printf("\n               palabras mal escritas \n");
    printf("%s", p);
   
    p += bytes_read;
    while (bytes_read != 0) {
        bytes_read = fread(p, 1, 1000, palabras2);
        p += bytes_read;
    }
    *p = 0;

    deletrearcorre(pmalo, pbueno);
}   



int pmaloPosition =0; //posisicoon la palanbra del articulo
int dictionaryPosition = 0;




void deletrearcorre(char pmalo[], char pbueno[]) {
    char pmaloWord[50];
    char dictionaryWord[50];
    int pmaloLength = largomalo(pmalo);
    remover(pmalo);
    mayuscula(pmalo);
    minusculabueno(pbueno);
    nextpmaloWord(pmalo, pmaloWord, pmaloLength, dictionaryWord, pbueno);
   

}

void nextDictionaryWord(char pbueno[], char dictionaryWord[]){
    int i;
    for(i =0; pbueno[dictionaryPosition] != '\n'; i++){
        dictionaryWord = pbueno[dictionaryPosition];
        dictionaryPosition++;
    }
}
int noletra(char c){
    if ( (c>='a'&&c<='z') || (c>='A'&&c<='Z'))
        return 1;
    return 0;
}

void remover(char pmalo[]){
    int i, j=0;
    for ( i =0; pmalo != 0; i++){
        if (noletra(pmalo)){
            pmalo[j] = pmalo;
            j++;
        }
        else if (!noletra(pmalo)){
            pmalo[j] = ' ';
            j++;
        }       
    }
}

void mayuscula( char pmalo[]){
    int i=0;
    for( i; pmalo != 0; i++){
        if ( pmalo >= 'A' && pmalo <='Z')
            pmalo = pmalo + 32;
    }
}

void minusculabueno( char pbueno[]){
    int i=0;
    for(i; pbueno != 0; i++){
        if (pbueno >= 'A' && pbueno <= 'Z'){
            pbueno = pbueno + 32;
        }
    }
}


int largomalo( char pmalo[] ){
    int count=0;
    while (pmalo[count] != 0)
        count++;
    return count;
}

void nextpmaloWord(char pmalo[], char pmaloWord[],  int pmaloLength, char dictionaryWord[], char pbueno[]){
    int j, i;
comienzo:
    while(!noletra(pmalo[pmaloPosition])){
        if (pmalo[pmaloPosition] == 0){
            return;
        }
        pmaloPosition++;
    }
    for(j=0; pmalo[pmaloPosition] != ' ' || pmaloPosition == pmaloLength; j++){
        pmaloWord[j] = pmalo[pmaloPosition];
        pmaloPosition++;
    }   

    if (strlen(pmaloWord)<2){
        goto comienzo;
    }
    pmaloWord[j+1] = 0;
    //dictionary search
        while (!strncmp(pmaloWord, dictionaryWord,strlen(pmaloWord))){
            nextDictionaryWord(pbueno, dictionaryWord);
        }
        if(strncmp(pmaloWord, dictionaryWord,strlen(pmaloWord)))
           
        printf(pmaloWord);
}
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines