Traduttore di lingua in C

di il
12 risposte

Traduttore di lingua in C

Salve ragazzi, devo sviluppare un programma in C che traduca una frase dall'inglese all'italiano, vi posto di seguito la traccia del programma:
Si vuole simulare la gestione di un dizionario che permette di tradurre un vocabolo
dalla lingua Inglese a quella Italiana. Il dizionario è indicizzato tramite le lettere
dell’alfabeto e ad ogni vocabolo è associato il corrispondente termine in Italiano.
Permettere all’utente di:
Inserire una frase in Italiano (i termini sono separati da uno spazio). Il
programma riconosce i termini e se presenti nel dizionario li traduce in
Inglese.
Qualcuno può darmi una dritta?
Grazie a tutti dell'aiuto!

12 Risposte

  • Re: Traduttore di lingua in C

    Secondo me devi implementare una struttura dati chiamata trie
    http://en.wikipedia.org/wiki/Tri
    questo ti semplifica molto la struttura del dizionario e velocizza anche il sistema di ricerca. Se poi non devi fare delle cose avanzate anche un vettore di stringhe può bastare anche se non è il + immediato.
  • Re: Traduttore di lingua in C

    Ciao grazie della risposta, perdonami ma sto alle prime armi, un sintassi del genere è corretta? La posso implementare in una function?
    char a[]={'a'=='in una'};
    char f[]={'floor'=='piano'};
    char h[]={'house'=='casa'};
    char i[]={'I'=='A me', 'in'=='in'};
    char t[]={'three'=='tre'};
    char w[]={'with'=='con', 'would'=='piacerebbe'};
    
  • Re: Traduttore di lingua in C

    No, credo che ti serve una struttura dove devi tenere la corrispondenza tra le due stringhe.
    
    struct
    {
       char ita[30];
       char eng[30];
    }
    
    questo è il modo semplice ma non quello efficace. Creando poi un vettore di strutture di quel tipo avrai il tuo vocabolario.
  • Re: Traduttore di lingua in C

    Nelle stringhe che hai postato tu devo inserire valori preimpostati da me (come ho fatto sopra io) oppure c'è un altro procedimento?
  • Re: Traduttore di lingua in C

    Tu metti le stringhe in ita e in eng. Poi fai la ricerca nelle strutture per vedere se c'è la stringa immessa in input. Una volta trovata hai anche la corrispondenza.
  • Re: Traduttore di lingua in C

    skynet ha scritto:


    tu metti le stringhe in ita e in eng. Poi fai la ricerca nelle strutture per vedere se c'è la stringa immessa in input. Una volta trovata hai anche la corrispondenza.
    ho capito la tua idea, ma la traccia dice che i vocaboli devono essere indicizzati secondo l'alfabeto italiano. Questo non vuol dire che devo creare un array per ogni lettera dell'alfabeto immettendoci i vari termini da analizzare singolarmente?
  • Re: Traduttore di lingua in C

    Questo è l'inizio di un dizionario in italiano, indicizzato proprio secondo l'alfabeto.
    
    a
    abaca
    abache
    abachi
    abacista
    abaciste
    abacisti
    abaco
    abaliena
    abalienando
    abalienano
    abalienare
    abalienarono
    abalienato
    abalienava
    abalienavano
    abalienazione
    
    Non significa che devi creare un array x agni lettera ma un array grande dove dentro ci sono tutte le parole del dizionario.

    Se proprio vuoi fare l'indicizazzione puoi tenere un array di 21 puntatori dove ognuno punta alla prima parola che inizia con una lettera diversa.
  • Re: Traduttore di lingua in C

    Sei gentilissimo grazie! continuerò sulla strada che mi hai consigliato
  • Re: Traduttore di lingua in C

    Perdonami, io ho creato due array contenente sia i termini in italiano che in inglese, ora come faccio a "tradurre" i termini? come creo la corrispondenza tra i termini in inglese e quelli in italiano? Grazie
  • Re: Traduttore di lingua in C

    Tu hai una struct del tipo che ti ha spiegato Skynet , quindi ad ogni parola italiano hai la paroal inglese corrispondente . Quindi , data una parola italiano devi cercarla nel tuo array di struct , quindi trovare la posizione in cui si trova :
    
    esempio la parola ciao si trova nella posizione i quindi la parola corrispondente sarà 
    Dizionario[i].eng  ( dove dizionare è un array di struct , statico o dinamico che sia ) 
    
  • Re: Traduttore di lingua in C

    Scusa perchè utilizzare una struct per dati omogenei? un array contenente tutti i vocaboli non è meglio?
  • Re: Traduttore di lingua in C

    Così che la corrispondente parola inglese si troverà nella stessa posizione di quella italiana.
Devi accedere o registrarti per scrivere nel forum
12 risposte