Dizionario Inglese-Italiano in C

di il
30 risposte

30 Risposte - Pagina 2

  • Re: Dizionario Inglese-Italiano in C

    Ancora nulla sono a scambiare parentesi da un po ma l'errore e sempre lo stesso ed e puntato a indice=ricerca_binaria(word,parole,n); e indice=ricerca_binaria(word,parole2,n);
  • Re: Dizionario Inglese-Italiano in C

    Vuol dire che non fai attenzione...

    Prendi la funzione e separala dal main ... posta il main senza la funzione e controlliamo insieme le parentesi.

    TOGLI tutti i commenti e controlla solamente il codice.

    Se non fai attenzione a queste cose, l'esame lo vedo duro...
  • Re: Dizionario Inglese-Italiano in C

    Int ricerca_binaria (char word[], char *parole[], int n);
    void main ()
    {
    char chiave[50];
    int n,indice;
    char *parole[]={"Abbattere","Abitante del sud","Affamato","Alzato","Avventura","Cane","Compleanno","Fondere","Gamba","Incontrare","Intenso","Maiale","Misto","Nota","Passeggiata","Potere","Quantità","Ristampa","Ritornare","Tempestivo","Vivace","Vuoto"};
    char *parole2[]={"abbattere","abitante del sud","affamato","alzato","avventura","cane","compleanno","fondere","gamba","incontrare","intenso","maiale","misto","nota","passeggiata","potere","quantitò","ristampa","ritornare","tempestivo","vivace","vuoto"};
    char *vocab[]={"Overthrow","Southerner","Hungry","Up","Adventure","Dog","Birthday","Found","Leg","Encounter","Intense","Pig","Mixed","Note","Walk-over","Can","Quantity","Reprint","Go back","Timely","Zippy","Void"};
    char testo[20],finepar[3];
    n=22;

    printf("Inserisci la frase da tradurre : ");
    gets(chiave);
    char *word = strtok(chiave," .");

    while (word != NULL)
    {

    indice= ricerca_binaria (word,parole,n);
    if (indice<0)
    {
    indice=ricerca_binaria (word,parole2,n);
    }
    if(indice>=0)
    {



    printf("%s: %s\n",word,vocab[indice]);
    }
    else


    {


    printf("Chiave non trovata\n");


    word = strtok (NULL," .");
    }};
    }
  • Re: Dizionario Inglese-Italiano in C

    Qui sembrerebbe tutto apposto erro?
  • Re: Dizionario Inglese-Italiano in C

    Il main che hai appena postato termina con 3 parentesi. Ma prima il main terminava con una sola parentesi, quindi prima era sbagliato.

    Per favore, puoi postare usare i tag CODE ? E indentando il codice?
  • Re: Dizionario Inglese-Italiano in C

    
    int ricerca_binaria (char word[], char *parole[], int n);
    {
    int mediano, primo=0, ultimo=n-1;
     
    while (primo<=ultimo)
    {
     
    mediano=(primo+ultimo)/2;
    if(strcmp(word,parole[mediano])==0) {
    return mediano; }
    else if(strcmp(word,parole[mediano])<0) {
     
    ultimo=mediano-1;}
    else{
     
    primo=mediano+1;
    }
     
    }
     
    }
    


    avendo stabilito dunque che il main é esatto ti ho appena postato anche la function della ricerca binaria che a mio parere dovrebbe essere anch'essa giusta ...
  • Re: Dizionario Inglese-Italiano in C

    C'è un ; di troppo in

    int ricerca_binaria (char word[], char *parole[], int n);

    Nella funzione, alla fine, manca una

    return -1;

    E nel main mi sono accorto che la linea

    word = strtok (NULL," .");

    è messa all'interno di una else e invece deve stare fuori ...

    Se non INDENTI CORRETTAMENTE il codice, non te ne accorgi.

    La funzione la devi scrivere così
    
    int ricerca_binaria (char word[], char *parole[], int n)
    {
    	int mediano, primo=0, ultimo=n-1;
    	
    	while (primo<=ultimo)
    	{
     		mediano=(primo+ultimo)/2;
     		
    		if(strcmp(word,parole[mediano])==0) 
    			return mediano; 
    		else if(strcmp(word,parole[mediano])<0)
    			ultimo=mediano-1;
    		else
    			primo=mediano+1;
    	}
    
    	return -1;
    }
    
  • Re: Dizionario Inglese-Italiano in C

    Questo e il mio main
    
    int ricerca_binaria ( char parola [ ] , char * parole [ ] , int n )
    vuoto principale ( )
    {
    char chiave [ 50 ] ;
    int n, indice ;
    char * parole [ ] = { "Abbattere" , "Abitante del sud" , "Affamato" , "Alzato" , "Avventura" , "Cane" , "Compleanno" , "Fondere" , "Gamba" , "Incontrare" , "Intenso" , "Maiale" , "Misto" , "Nota" , "Passeggiata" , "Potere" , "Quantità" , "Ristampa" , "Ritornare" , "Tempestivo" , "Vivace" , "Vuoto" } ;
    char * parole2 [ ] = { "abbattere" , "abitante del sud" , "affamato" , "alzato" , "avventura" , "cane" , "compleanno" , "fondere" , "gamba" , "incontrare" , "intenso" , "maiale" , "misto" , "nota" , "passeggiata" , "potere" , "quantitò" , "ristampa" , "ritornare" , "tempestivo" , "vivace" , "vuoto" } ;
    char * vocab [ ] = { "Overthrow" , "Southerner" , "Hungry" , "Up" , "Adventure" , "Dog" , "Birthday" , "Found" , "Leg" , "Encounter" , "Intense" , "Pig" , "Mixed" , "Note" , "Walk-over" , "Can" , "Quantity" , "Reprint" , "Go indietro " , " tempestivo " , " Zippy " , " vuoto " } ;
    char testo [ 20 ] , finepar [ 3 ] ;
    n = 22 ;
    
    printf ( "Inserisci la frase da Tradurre:" ) ;
    ottiene ( chiave ) ;
    char * word = strtok ( chiave, "." ) ;
    
    mentre ( parola ! = NULL )
    {
    
    Indice = ricerca_binaria ( parola, parole, n ) ;
    se ( indice < 0 )
    {
    Indice = ricerca_binaria ( parola, parole2, n ) ;
    }
    se ( indice > = 0 )
    {
    
    
    
    printf ( "% s:% s \ n " , parola, vocab [ Indice ] ) ;
    }
    altro
    
    
    {
    
    
    printf ( "Chiave non trovata \ n " ) ;
    
    
    }
    parola = strtok ( NULL , "." ) ;
    } ;
    
    }
    
    [ / code] 
    
    questa invece la mia function :
    [ code]
    int ricerca_binaria ( char Parola [ ] , char * parole [ ] , int n )
    {
    int mediano , primo = 0 , Ultimo = n - 1 ;
    
    mentre ( primo <= Ultimo )
    {
    mediano = ( primo + Ultimo ) / 2 ;
    
    se ( strcmp ( Parola , parole [ mediano ] ) == 0 )
    Tornare mediano ;
    altrimenti se ( strcmp ( Parola , parole [ mediano ] ) < 0 )
    Ultimo = mediano - 1 ;
    Altro
    Primo = mediano + 1 ;
    }
    
    restituire - 1 ;
    }
    


    continuo ad avere problemi di parentesi pero -.-''
  • Re: Dizionario Inglese-Italiano in C

    Ma cosa scrivi

    vuoto principale ( )

    ??

    se ( indice > = 0 )

    ???

    ???
  • Re: Dizionario Inglese-Italiano in C

    Ho messo void main perché non restituisce nulla
    se indice é minore di 0 passa alla ricerca su *parola2
    se maggiore uguale scrivi il vocabolo corrispondente alla word
    altrimenti scrivi chiave non trovata
    cosa c'é di sbagliato ??
  • Re: Dizionario Inglese-Italiano in C

    Non hai capito ... hai scritto proprio

    vuoto principale()

    e non

    void main()

    !!!
  • Re: Dizionario Inglese-Italiano in C

    Nono non so perche mi e stato tradotto cosi durante il copia incolla ma ti assicuro che é void main () !!
    il problema sta da qualche altra parte :@
  • Re: Dizionario Inglese-Italiano in C

    Sì ... ma fino ad ora non avevi avuto il problema e io non posso "tradurre" il programma ... non ho il tempo ...

    Vedi di risolvere ...
  • Re: Dizionario Inglese-Italiano in C

    Figurati ... sei stato già troppo gentile a starmi dietro tutto questo tempo ti ringrazio davvero di cuore se riesco ti faccio sapere ....
  • Re: Dizionario Inglese-Italiano in C

    Per farla breve, il codice corretto e funzionante dovrebbe essere
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int ricerca_binaria(char chiave[], char *parole[], int n);
    
    int main ()
    {
    	char chiave[50];
    	int n=22, indice;
    	char *parole[]={"Abbattere","Abitante del sud","Affamato","Alzato","Avventura","Cane","Compleanno","Fondere","Gamba","Incontrare","Intenso","Maiale","Misto","Nota","Passeggiata","Potere","Quantità","Ristampa","Ritornare","Tempestivo","Vivace","Vuoto"};
    	char *parole2[]={"abbattere","abitante del sud","affamato","alzato","avventura","cane","compleanno","fondere","gamba","incontrare","intenso","maiale","misto","nota","passeggiata","potere","quantitò","ristampa","ritornare","tempestivo","vivace","vuoto"};
    	char *vocab[]={"Overthrow","Southerner","Hungry","Up","Adventure","Dog","Birthday","Found","Leg","Encounter","Intense","Pig","Mixed","Note","Walk-over","Can","Quantity","Reprint","Go back","Timely","Zippy","Void"};
    
    	printf("Inserisci la frase da tradurre : ");
    	gets(chiave);
    	
    	//*Questa funzione da quel che ho appena approfondito mi "spacchettera" la frase in parole *//
    	char *word = strtok(chiave," .");
    
    	//*questo procedimento verrà effetuato fino a che la frase non sia terminata *//
    	while (word != NULL)
    	{
    		indice= ricerca_binaria (word,parole,n);
    
    		if (indice<0)
    			indice=ricerca_binaria (word,parole2,n);
    
    		if(indice>=0)
    			printf("%s: %s\n",word,vocab[indice]);
    		else
    			printf("%s: (Parola non trovata)\n",word);
    
    		word = strtok (NULL," .");	
    	}
    
    	return 0;
    }
    
    
    int ricerca_binaria(char chiave[], char *parole[], int n)
    {
    	int mediano, primo=0, ultimo=n-1;
    
    	while (primo<=ultimo)
    	{
    		mediano=(primo+ultimo)/2;
    
    		if(strcmp(chiave,parole[mediano])==0)
    			return mediano;
    		else if(strcmp(chiave,parole[mediano])<0)
    			ultimo=mediano-1;
    		else
    			primo=mediano+1;
    	}
    
    	return -1;
    }
    
Devi accedere o registrarti per scrivere nel forum
30 risposte