Autore |
Discussione |
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 14/01/2010 : 18:08:23
|
Ciao ragazzi, qualcuno che ha già sostenuto l'esame mi potrebbe dare delle informazioni tecniche riguardo il progetto (già svolto)? :-) Grazie
|
tommy |
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 09:43:50
|
Allora nessuno? |
tommy |
|
|
Lawliet L
Utente medio
Prov.: Bari
|
Inserito il - 21/01/2010 : 13:45:11
|
Che informazioni vuoi? Praticamente se hai dato programmazione ed hai capito bene il C, non avrai nessun problema a fare il progetto che chiede fabio abbattista come esame finale. |
Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." ... ovvero ... niente pappa pronta ...! |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 16:49:03
|
Ho già svolto il progetto...avrei qualche problema sulle costanti, nel senso che, se dichiaro un enum {...varie costanti...}nome all'interno di una struttura, la chiamata di tali costanti (ovviamente tramite l'operatore . dato che si tratta di una struttura) provoca errori su tali costanti. |
tommy |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 16:50:19
|
ovviamente le richiamo nelle varie funzioni. |
tommy |
|
|
Lawliet L
Utente medio
Prov.: Bari
|
Inserito il - 21/01/2010 : 17:29:28
|
Non ho capito bene per cosa intendi, posta il codice e vediamo un pò dove hai l'errore. |
Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." ... ovvero ... niente pappa pronta ...! |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 18:37:00
|
Posto il codice !!!
typedef struct StringPool { int identifiers[DIMENSIONE]; /*vettore identificatori*/ String strings[DIMENSIONE]; /*vettore stringhe*/ int foundPos; /* campo utilizzato da getString che conterrà la posizione dell'identificatore */ enum {SUCCESS,KO_DUPLICATE_FOUND,KO_NULL_STRING,ID_NOT_VALID,KO_FULL_POOL,ID_NOT_FOUND,KO_DUPLICATE_FILE,KO_NO_DATA,KO_FILE_NOT_EXIST,KO_OPEN_FILE} error; } stringpool; stringpool sp; /* contenitore di dati di tipo Stringool */
int costante_errore;
poi se prendo un pezzo di funzione:
int aggiungere (int identifier, String str) { int posizione_libera; /* conterrà la posizione libera restituita da firstFreePos */ /* se l'identificatore non è valido restituisce il valore appropriato */ if (identifier <= 0 ) costante_errore = sp.ID_NOT_VALID; ****** ... }
l'errore è il seguente:
****: structure has no member named `ID_NOT_VALID'
e questo per tutte le costanti enum.
|
tommy |
|
|
Lawliet L
Utente medio
Prov.: Bari
|
Inserito il - 21/01/2010 : 19:10:06
|
Ma è ovvio che ti segnala errore anzi te lo dice direttamente il compilatore che tipo d'errore perchè effettivamente tu non hai mica dentro la struttura, ma dentro la enum errore. Quindi o fai sp.errore = ID_NOT_VALID; che poi copi il valore nella costante_errore = sp.errore oppure fai direttamente costante_errore = ID_NOT_VALID; ;) |
Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." ... ovvero ... niente pappa pronta ...! |
Modificato da - Lawliet L in data 21/01/2010 19:11:28 |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 19:30:23
|
Sì ho provato a scrivere costante_errore = ID_NOT_VALID, ma dice ID_NOT_VALID undeclared; |
tommy |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 19:38:14
|
No è bugia, scusami. Quell'errore me lo dà nel main se richiamo quelle costanti. |
tommy |
|
|
Lawliet L
Utente medio
Prov.: Bari
|
Inserito il - 21/01/2010 : 19:54:58
|
Sicuro? Hai riprovato a fare Reibuild All? Solitamente questi errori compaiono perchè non fai reibuld all, prova e dimmi. |
Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." ... ovvero ... niente pappa pronta ...! |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 19:59:23
|
Sìsì ho fatto Rebuild All...me li dà perchè nel main ho richiamato quelle costanti. |
tommy |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 20:03:17
|
Provando con il main del prof. dovrebbe andare bene... |
tommy |
|
|
Lawliet L
Utente medio
Prov.: Bari
|
Inserito il - 21/01/2010 : 20:10:00
|
Aspe!!! Non ci sto capendo più niente. Tu hai creato la libreria come chiede la documentazione? Se si, vuole dire che hai creato un header .h (dati pubblici e prototipi pubblici) e .c (dati privati, corpo delle funzioni dei prototipi pubblici e funzioni privati) giusto? Se hai fatto come ho detto io, è ovvio che nel main NON puoi utilizzare quelle costanti perchè sono appunto dati privati. |
Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." ... ovvero ... niente pappa pronta ...! |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 20:18:34
|
Sìsì ho creato il .h (dati pubblici, prototipi delle funzioni pubbliche) e il .c (dati privati, scrittura di tutte funzioni pubbliche e private). |
tommy |
|
|
Lawliet L
Utente medio
Prov.: Bari
|
Inserito il - 21/01/2010 : 20:35:50
|
Citazione: Messaggio inserito da tom
Sìsì ho fatto Rebuild All...me li dà perchè nel main ho richiamato quelle costanti.
E allora scusa nel main come fai a richiamare le costanti se sono appunto privati? :) |
Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." ... ovvero ... niente pappa pronta ...! |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 21/01/2010 : 21:59:23
|
E sì infatti...appunto per quello è errato !!! Ecco perchè poi ho testato soltanto quello del prof. Dovrei richiamare ad esempio la funzione aggiungere... Per non modificare un pò ho evitato e ho testato solo quello del prof. Mi sa che dovrebbe andare bene. Speriamo !!! Nel mio main ho creato uno switch che mi permette di scegliere le varie opzioni (aggiungere, rimuovere, sostituire, ottenere stringa e visualizzare il contenitore). L'output delle funzioni aggiungere, ... è la costante di errore (quindi ID_NOT_VALID, ...). Come faccio a controllare (per ogni opzione switch del main) il tipo di errore restituito per la gestione dell'output?
|
tommy |
|
|
Lawliet L
Utente medio
Prov.: Bari
|
Inserito il - 21/01/2010 : 23:35:57
|
Citazione: Come faccio a controllare (per ogni opzione switch del main) il tipo di errore restituito per la gestione dell'output?
Se non lo sai che le costanti enum, restituiscono in base alla posizione che si trova un intero. Quindi, se restituisce che ne so un ID_NOT_VALID aspettati che nel main ti arriva 3 come intero.
Esempio... nel main scrivi: risultato = aggiungere(-5, "Ciao"); se hai svolto bene la funzione come nelle specifiche allora, vedrai che risultato ti risulterà 3 ed è così che deve essere.
Altra cosa, il professore ovviamente deve usare i prototipi tuoi dichiarati nell'header e basta, tramite il main verificherà se gli opportuni output sono corretti. Come nel mio esempio di prima, se ti esce 3 è corretto e così vale per le altre funzioni, SE non esce 3.. beh questo è un'altra storia allora :P |
Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." ... ovvero ... niente pappa pronta ...! |
|
|
tom
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Putignano
|
Inserito il - 22/01/2010 : 09:47:48
|
Sì cmq l'avevo già aggiustato...soltanto che stava un altro errore "fesso"...ora funziona anche con il mio main. E restituisce 3, se inserisco input non validi, oppure 1 se già esiste (duplicato !!!). Quindi dovrebbe andare tutto bene ora...sia con il mio main che con quello del prof. E non dovrebbe dare più errori sulle costanti come la volta scorsa se faccio Rebuild All. Cmq grazie !!! :-) Gentilissimo... ;-) |
tommy |
|
|
|
Discussione |
|