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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: ayuda con este ejercicio, por favor 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);
}
2  Programación / Programación C/C++ / Re: ayuda con este ejercicio, por favor en: 6 Enero 2014, 03:21 am
ayudame tu!!!
3  Programación / Programación C/C++ / 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ú.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines