Aiuto gestione dei file in c (programma)

di
Anonimizzato6437
il
2 risposte

Aiuto gestione dei file in c (programma)

Qlc saprebbe risolvermi questo programma io cio provato ma nn ci salto fuori
Indice analitico completo.
Dato un testo memorizzato su memoria di massa, realizzare un programma che costruisca il
suo indice analitico completo: elenco ordinato delle parole e per ogni parola la sua
frequenza. L’uscita del programma è da produrre su memoria di massa e, su richiesta, a
video.
o solo questa parte che
 per ogni parola la sua
frequenza

thx

2 Risposte

  • Re: Aiuto gestione dei file in c (programma)

    Ci vuole del tempo per programmare utilizzando i file....

    se si tratta di "correggerti" il codice te lo faccio volentieri qui sul sito, altrimenti, se si tratta di farti il programmino "da zero" possiamo sentirci per mail.... io lo faccio come lavoro....
  • Re: Aiuto gestione dei file in c (programma)

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<stdlib.h>
    
    
    int main (){
    FILE *fp;
    FILE *fp1;
    
    //dichiarazione variabili
    
    char stringa[30][20],nome[30],nome2[30];
    int f[30],i=0,j=0,cont=0;
    
    //azzero il vettore "f" e il vettore di stringhe "stringa"
    
     for (j=0;j<30;j++){
            f[j]=0;
         stringa[j][0]='\0';
     }
    
    system("color 0b");
    
    //inserisco il nome del file da aprire
    
    printf("\n\t\tINSERISCI NOME FILE : ");
    gets(nome);
    
    //apro il file
    
    fp=fopen("nome","r");
                    if(fp){
                           while(!feof(fp)){
                                            fscanf(fp,"%s",stringa[i]);
                                            for (j=0;j<30;j++){
    
                                            //quando trovo parole uguali aggiorno la frequenza
    
                                            if((!strcmp(stringa[i],stringa[j]))&&(j!=i)){
                                                      f[j]=f[j]+2;
                                                      cont=1;
                                                      break;
                                            }
                           }
    
                              //aumento indice se parola viene letta la prima volta
    
                              if (cont==0){
                                  i++;
                                      }
    
                                          }
    
                    //chiudo il file
    
                     fclose(fp);
                          }
               else{
                   printf ("\n\t\terrore durante l'apertura del file.") ;
                   }
    
    
         //chiedo il nome del file dove salvare l'elenco
    
    
         printf("\n\t\tINSERISCI NOME FILE DOVE SALVARE L'ELENCO: ");
         gets(nome2);
    
         //apro il file
    
         fp1=fopen("nome2","w");
    
         //Salvo l'elenco delle parole con le loro frequenze
    
         for (i=0;i<30;i++){
                          fprintf(fp1,"\n\t\t %s %d",stringa[i],f[i]);
                           }
    
    
        //chiudo il file
    
         fclose(fp1);
    
    
    system("cls");
    printf("\n\\t\tINDICE ANALITICO");
    
    //stampo l'indice non ordinato
    
    for (i=0;i<30;i++){
                      printf("\n\t\t %s %d",stringa[i],f[i]);
                      }
    
    getch();
    
    
    }
    ecco il programma che ho provato a fare io

    non funziona correttamente in pratica non conta correttamente la frequenza delle parole nel testo
    e non so come ordinare lindice alla fine :///

    qlc mi aiuta?
Devi accedere o registrarti per scrivere nel forum
2 risposte