Mini-Dizionario C

Stato
Discussione chiusa ad ulteriori risposte.
L

Leonida

Premetto che sono a corto di C; purtroppo quest'anno all'università mi sono trovato un corso di Java, linguaggio che sinceramente non amo molto, anzi.
Il seguente source è un Mini-Dizionario che consente la traduzione dei termini dall'italiano in una seconda lingua.
 
Indentazione portami via xD
Ho provato a farlo partire as-is da Dev-cpp, ma mi da parecchi errori.
In function main: Passing arg 2 of Trova from incompatible pointer type
In function CaricaVettori: syntax error before ; token
At top level: conflicting types for trova [..]
[...]
Insomma... Decisamente no xD
 
Scusa la durezza, ma questo codice è uno schifo. Hai almeno provato a compilarlo?

Codice:
int ChiediDimensioni(void);
...
dim = ChiediDimensione();
Hai sbagliato a scrivere il nome.


cambia
Codice:
void Trova(char *v1[], char *v2, int d);
in
Codice:
void Trova(char **v1, char **v2, int d);
visto che come secondo argomento passi sempre un puntatore a puntatore, non un semplice puntatore.

Codice:
    scanf("%s", parola;
dio mio...

Codice:
     if (strcmp(v1[posto], termine) ==0  {
di nuovo, dio mio... almeno le parentesi...

Codice:
} while (posto<d && trovato=0);
trovato=0 è un'assegnazione....


Corretto come dico io funziona, anche se potresti renderlo utile supportando dizionari in file di testo e facendogli tradurre anche file di testo non per forza ciò che gli viene mandato in input manualmente, e magari se non si chiudesse dopo aver tradotto un singolo termine...

[ot]
Siamo chiari, questa cosa è assurda, ci sono errori banali che chiunque avrebbe trovato e corretto in 5 secondi leggendo gli errori, che tra l'altro non sono neanche stati riportati da leonida costringendo chiunque volesse provarlo a compilarselo.[/ot]

Per il resto, se non ci sono altre domande da te Leonida io chiuderei, dato il livello molto basso del thread.
 
non posso che darti ragione, tra l'altro l'ho scritto ieri sera in un momento di assoluta stanchezza credimi ne parlavo anche su irc (non voglio giustificarmi con questo) mentre codavo; per quanto riguarda la durezza, figurati di niente, era da quest'estate che non mettevo mani sul C ed ecco i risultati :)
Comunque grazie per tutte le correzzioni apportate :), soprattutto grazie di esserti disturbato :)
Per quanto riguarda le parentesi non so perchè, nel momento in cui ho incollato il source qui, sono state modificate delle cose; non so perchè, ma la disposizione del codice è cambiata, era molto più ordinato quando l'ho postato su pastebin, vabbè.

P.s. per il momento ho tolto il source, apporterò le correzzioni e cercherò di migliorarlo :p spero solo di avere un briciolo di tempo :)
 
sempre felice di essere utile, e mi rallegro che hai preso le mie critiche nel giusto modo.

Comunque il source lo potevi anche lasciare, non succede niente ;) lascio aperto se vuoi aggiornarlo, se serve aiuto chiedi.
 
Non ho visto il codice...ma per fare un piccolo dizionario non bastano solo una moltitudini di istruzioni if?
 
edo1493 ha detto:
Non ho visto il codice...ma per fare un piccolo dizionario non bastano solo una moltitudini di istruzioni if?

1) meglio un bello swicht
2)certo ma così finisce il prossimo anno se il dizionario è lungo.
 
edo1493 ha detto:
Non ho visto il codice...ma per fare un piccolo dizionario non bastano solo una moltitudini di istruzioni if?

Sei impazzito o cosa? Vuoi implementare le keyword direttamente nel programma? Anche con uno switch verrebbe fuori una cagata di proporzioni elefantiache.... quello che deve fare un programma di traduzione è prendere i dati (da un plain text, da un xml, dall'input utente o quel che ti pare) e confrontarlo con i propri dati (in un txt, in un db o xml o qualsiasiCosaTiPermettaDiMemorizzareRobba), e riportare, ove presenti, le versioni delle parole tradotte. Deve fare da motore insomma, non implementare in sè tutto l'accrocchio, anche perché poi devi riscriverlo per ogni lingua...

Poi ovvio i programmi di traduzione più avanzati, che traducono anche frasi intere implementato algoritmi più particolari, qui ci sarebbe da pensare e discutere a lungo, il codice di Leonida A livello di logica non era sbagliatissimo, erano errori stupidi quelli del source e funzionalità mancanti alle quali probabilmente lui non ha pensato...
 
Quindi alla fine il programma si riduce a poche righe di codice, il grosso dovrebbe essere il file .txt

Le istruzioni if mi eccitano di più.
 
Allora avrai parecchi orgarsmi facendo un dizionario con gli if.

Teni presente, parliamo di circa 90'000 [numero sparato, in realtà sono di più] parole solo in ita, con le corrispettive nella lingua secondaria. [ senza badare a tutte le diverse desinenze, singolare, plurale e via dicendo ]

Chiaro, qui è un mini-dizionario, ma la storia è praticamente la stessa.
 
Angelic Code ha detto:
Allora avrai parecchi orgarsmi facendo un dizionario con gli if.

Teni presente, parliamo di circa 90'000 [numero sparato, in realtà sono di più] parole solo in ita, con le corrispettive nella lingua secondaria. [ senza badare a tutte le diverse desinenze, singolare, plurale e via dicendo ]

Chiaro, qui è un mini-dizionario, ma la storia è praticamente la stessa.

veramente il mio dizionario ita-eng nn è fra i + voluminosi ed ha 100'000 voci + 3000 voci illustrate.

senza maschili femminili, genitivi sassoni, coniugazioni e passati irregolari.

@edo: quindi il tuo programma potrebbe essere scritto direttamente dalla macchina in pseudo codice così:
Codice:
file a=apri_file('w')
for ( ; ; )
{
       a.write("if"+random_word())
}

asd
 
Stato
Discussione chiusa ad ulteriori risposte.