Domande (e risposte) Varie



Qualche consiglio generale. Il form per la consegna riguarda esclusivamente il progetto. NON CONSEGNATE QUI ESERCIZI!! Come e' chiaramente scritto sul form, ogni studente deve effettuare la consegna una sola volta. Se, eccezionalmente si consegna piu' di una volta, sara' presa in cosiderazione solo l'ultima consegna.

Fate molta atttenzione all'allocazione della memoria, non usate realloc, usate solo malloc o calloc.

Per ogni parte del progetto il main che voi consegnate serve solo per vedere come avete organizzato il test. Il corso di laboratoriio non e' un corso a distanza. Sono disponibile per spiegazioni sul progetto il martedi in aula e il mercoledi nell'orario di ricevimento. Questo "forum" e' uno strumento in piu' messovi a disposizione, ma non aspettatevi risposte immediate, nemmeno nei giorni feriali. Anzi rispondero' due volte alla settimana: il lunedi' e il giovedi', verso l'ora di pranzo. Infine tutto cio' che non e' rigidamente prescritto nel progetto e' lasciato alla libera interpretazione e iniziativa dello studente e sara' valutato in quanto tale e non rispetto a qualche specifica maliziosamente o distrattamente nascosta! I progetti di laboratorio sono pensati per far sperimentare le tecniche di progettazione del codice e i costrutti del C introdotti durante le lezioni di Programmazione II. Parti del codice da sviluppare (o esempi di uso di particolari strumenti, come per esempio l'uso di funzioni come parametri) per il progetto sono state illustrate durante le lezioni e si trovano negli appunti messi in rete nella pagina di Programmazione II.




Re: inclusione

Se si seguono le specifiche del progetto, protParte2.h e funzParte2.h non dipendono da nessun altro file; ad ogni modo se inserisci altri file ciò non dovrebbe dar problemi per la correzione automatica.

Tenete presente che l'unico file che sarà sottoposto a correzione atuomatica sarà funzParte3.c che deve contenere le 5 funzioni descritte nelle specifiche: nIntToChar, verMessInt2, verTesto, leggiBig, leggiTrig, e non dovrebbe dipendere da altri file.

-- Comment added by PietroLongo on 31 May 2004


Senza titolo?

ma il testing no deve essere consegnato?

-- Comment added by DaniloDauria on 31 May 2004


Senza titolo?

Dovevate consegnare tutto ciò che era stato richiesto, testing compreso, io ho solo specificato che quella parte non sarebbe stata corretta automaticamente (visto che la professoressa non ha specificato i prototipi delle funzioni per il testing, lasciandoli alla libera interpretazione)

-- Comment added by PietroLongo on 01 Jun 2004


la funzione genRPerm

dove trovo questa funzione?in quali dispense?grazie

-- Comment added by PasqualeCarbone on 02 Jun 2004


genRPerm

Pagina di Programmazione II, diario delle lezioni, mercoledì 27/4/2004. Sarebbe utile dare un'occhiata anche agli altri lucidi delle lezioni!

-- Comment added by EmanuelaFachini on 03 Jun 2004


Ultima parte del progetto

Il testo dell'ultima parte dle progetto e' stato pubblicato nella sezione Diario delle lezioni della pagina del corso di Laboratorio di Programmazione. Chi riscontrasse delle incongruenze o delle imprecisioni e' invitato a segnalarmele anche via e-mail, in modo che possa fare gli opportuni errata corrige.

-- Comment added by EmanuelaFachini on 03 Jun 2004


genRPerm

dove posso trovare il codice della funzione scambia utilizzata dalla funzione genRPerm? Posso utilizzare un codice diverso da quello fornito nei lucidi?

-- Comment added by ElisaDomeniconi on 05 Jun 2004


"scambia"

La funzione "scambia", esegue uno scambio di posizione dei valori del vettore, o rimpiazza il primo parametro con il secondo?

-- Comment added by ElisaDomeniconi on 05 Jun 2004


quinta parte

Se non si consegna l'ultimissima parte del LabP4 diventa obbligatorio LabP5??

-- Comment added by ElisaDomeniconi on 05 Jun 2004


genRPerm

Questa funzione come gestisce il fatto che ogni numero capiti una sola volta?? Per favore aiutatemi!!! smile

-- Comment added by ElisaDomeniconi on 05 Jun 2004


Senza titolo?

se si consegna sia l'ultima parte del lab 4 che il lab 5 si avrà un piccolo bonus per il lavoro in più svolto,alcun beneficio opppure autamaticamente il lab 5 non sarà valutato?

-- Comment added by PasqualeCarbone on 06 Jun 2004


genRPerm

avrei bisogno dei chiarimenti base su questa funzione!! Qualcuno può aiutarmi smile

-- Comment added by ElisaDomeniconi on 09 Jun 2004


genRpetm

uhm anke io, soprattutto sulla funzione scambia

-- Comment added by DaniloDauria on 09 Jun 2004


Senza titolo?

anche io non ho capito come fa a gestire i numeri una sola volta comunque io l'ho testata e funziona correttamente......la funzione da te citata invoca anche la funzione scambia che ovviamente deve essere definita dall'utente,comunque sono tre righe di codice in più da aggiungere

-- Comment added by PasqualeCarbone on 09 Jun 2004


Importante: Attenetevi alle SPECIFICHE

Mentre scrivo i test per la parte 3 di laboratorio vedo che ancora molti di voi non si attengono alle specifiche del progetto della professoressa fachini, costringendo a continui interventi manuali sui vostri files che rallentano le operazioni di correzione; ne approfitto per ricordarvi che:

- dovete consegnare i files con i nomi specificati nel progetto, e ogni file deve contenere tutte le funzioni specificate, a meno che non vogliate implementarle. Non dovreste distribuire le funzioni richieste tra vari files se ciò non è stato espressamente richiesto. Per la terza parte del progetto la professoressa richiedava un solo file, funzParte3.c, nel quale dovevano esserci tutte le 5 funzioni richieste, mentre alcuni hanno pensato di creare oltre a questo, altri files, in cui hanno messo alcune delle funzioni.

- E' necessario dichiarare extern le variabili che sono definite tali. E' altrettanto importante NON definire altre variabili extern, se queste vengono poi dichiarate in files non richiesti dalla professoressa, perchè altrimenti durante la fase di linking il compilatore non troverà la definizione di queste variabili.

Confido nella buona collaborazione di tuti e vi auguro buon lavoro.

-- Comment added by PietroLongo on 09 Jun 2004


inclusione

vedo che nella funzione encSostInt e anche le altre credo, bisogna usare la funzione verMessInt. Questa funzione deve essere copiata e incollata? o come l'altra volta deve essere inclusa???? se si da quale file?? grazie :-))

-- Comment added by MorenoDeVincenzi on 09 Jun 2004


domande precedenti

La funzione scambia(int* x, int*y) scambia il contenuto di x con quello di y. Per spiegazioni su come mai genera effettivamente una permutazione dovete venire al ricevimento (non si puo' scrivere tutto...). Chi cosegna sia l'ultima parte della 4° che la 5° avra' un riconoscimento, certo! Per quanto riguarda il riuso, ormai dovreste esserne esperti. Comunque, nella 4° parte, come nella 5°, servono molte delle funzioni introdotte nella parti precedenti, quindi i relativi file header vanno inclusi opportunamente. Per indicazioni piu' dettagliate su come includere, guardate gli appunti e se avete ancora dubbi venite al ricevimento. Poiche' oggi, mercoledi non ero disponibile, potete venire domani mattina giovedi 10/6/04, dalle 10,30 alle 12,30.

-- Comment added by EmanuelaFachini on 09 Jun 2004


encSostInt

nella funzione encSostInt si capisce forse meglio il testo che l'esempio con i numeri. sembra che i vettori scritti non abbiano nessun legame anche seguendo il funzionamento della funzione (scusate il gioco di parole smile ). qualche chiarimento??? grazie.

-- Comment added by MorenoDeVincenzi on 09 Jun 2004


encSostInt

ops, ora ho capito, mi confondevo con gli indici, tutto ok ora. ma quindi quale file dobbiamo includere per la verMessInt? per lei prof non fa differenza? grazie.

-- Comment added by MorenoDeVincenzi on 09 Jun 2004


inclusione
niente ho capito da solo. credo che serva la inclusione dei file della 1° parte. scusate il disturbo. smile

-- Comment added by MorenoDeVincenzi on 09 Jun 2004


X Danilo

Hai cambiato indirizzo e-mail ?

-- Comment added by ElisaDomeniconi on 09 Jun 2004


funzione scambia

Per favore, qualcuno può farmi sapere quale è il prototipo della funzione scambia??

-- Comment added by ElisaDomeniconi on 10 Jun 2004


consegna

Il file che bisogna consegnare oltre al progetto può essere .html? Inoltre, deve contenere anche delle nostre considerazioni? Qual è il minimo numero di caratteri per ogni messaggio?

-- Comment added by ElisaDomeniconi on 10 Jun 2004


precedenti

Ricordatevi che il comando #include va usato solo per i file .h. Il prototipoi della scambia potrebbe dedurlo facilmente, altrimenti puo' trovarla negli appunti relativi al riuso del codice. Il file puo' essere in formato html, se vuole puo' aggiungere delle brevi considerazioni, non c'e' un limite sul numero di caratteri.

-- Comment added by EmanuelaFachini on 10 Jun 2004


Prenotazione esami

Vi ricordo che per sostenere l'esame di Programmazione 2 e' necessario prenotarsi. Chi ha superato gli esoneri e intende affrontare l'esame orale il 17/6/2004 deve prenotarsi su Twiki, pagina prenotazioni, per quella data. Chi deve sostenere anche la prova scritta si deve prenotare per la prova scritta, mentre non e' necessario che si prenoti per l'orale. Chi ha superato gli esoneri puo' pesentarsi anche nell'appello del 12/7/2004 per l'orale, sempre previa prenotazione.

-- Comment added by EmanuelaFachini on 10 Jun 2004


genRPerm

Per farla funzionare ho dovuto togliere *(i---+1) e mettere % al posto di /.

A qualcuno è successa la stessa cosa?? Così otteniamo una generazione di numero pseudocasuale, dobbiamo renderla casuale??

-- Comment added by ElisaDomeniconi on 10 Jun 2004


return

ho un problema nel main. quando il prog esegue il return 0 alla fine mi va in segment fault. non capisc qualcuno sa' cosa possa fare?

-- Comment added by MorenoDeVincenzi on 10 Jun 2004


return

Prova a ricontrollare tutte le allocazioni di memoria che hai fatto.

-- Comment added by ElisaDomeniconi on 10 Jun 2004


main

lo sto facendo. ma se mi volessi fermare alle 5 funzioni il testing non e' incluso? e poi i file testParte4.c e testParte4.h sono inutili?

-- Comment added by MorenoDeVincenzi on 10 Jun 2004


testParte4

in quei file io ci ho messo le funzioni di controllo degli input e degli output di qualche funzione. Ho sbagliato?

-- Comment added by ElisaDomeniconi on 10 Jun 2004


errore con la genRPerm

quando avvio il programma, si blocca sulla genRPerm. Allora faccio ctrl---+c per uscire e mi scrivd questo: " l'istruzione a "0x77f436f7" ha fatto riferimento alla memoria a "0x067e0000". la memoria non poteva essere "written". Fare clic su OK per terminare l'applicazione ". qualcuno mi aiuti!!! le allocazioni fatte sembrano tutte giuste.

-- Comment added by MorenoDeVincenzi on 10 Jun 2004


int* genRPerm(unsigned int n);

1) Volevo un chiarimento sul parametro n. Credo che debba essere necessariamente uguale a DIMALF---+1, o sbaglio? Se fosse diverso (quindi sia maggiore che minore) non funzionerebbe la encSostInt.

2) nella encSostInt(int* testo,int* randVett) come faccio a sapere la dimensione di randVett visto che n non è globale,nè è passato come parametro? Se vado a senso, questo varrà sempre DIMALF---+1...o dobbiamo calcolarci la dimensione scorrendo l'array? (cosa parecchio più complicata soprattutto per i controlli)

-- Comment added by LivioDellaCorte on 10 Jun 2004


E-mail

Il mio indirizzo è sempre dnlo@inwind.it.

-- Comment added by DaniloDauria on 10 Jun 2004


Casualità

Ma la genRperm deve generare un vettore casuale diverso ad ogni esecuzione? A me da sempre lo stesso. Mi ricordo un esercizio in cui la funzione rand veniva inizializzata cosi srand(time(NULL)); in modo da tirare fuori numeri diversi ad ogni esecuzione. Bisogna farlo anke qui?

-- Comment added by DaniloDauria on 10 Jun 2004


esame prog2

Scusi prof,se supero la prova scritta del 15 posso sostenere l'orale nell'appello di luglio???

-- Comment added by DiegoCammarano on 11 Jun 2004


int* genRPerm(unsigned int n);

il randVett credo che sia di dimensioni DIMALF---+1 anche perche c'e' scritto all'inizio... e come dici tu nella encSostInt anche io ho usato DIMALF+1 per il ciclo dell vettore randVett. però rimane il fatto che a me non funziona cmq. frown

-- Comment added by MorenoDeVincenzi on 11 Jun 2004


Casualità

credo che la genPerm dia sempre lo stesso risultato ad ogni lancio del programma se chiamata una volta sola. se invece la richiamiamo nel programma più volte allora ne genera di diversi... credo... smile

-- Comment added by MorenoDeVincenzi on 11 Jun 2004


funzione effSost

Scusi prof ma il prototipo della effSost non dovrebbe essere int*effSost(int*codInt,int m,int i,int base) poiche viene richiesta la sostituzione in codInt??

-- Comment added by DiegoCammarano on 11 Jun 2004


vettore decInd

il vettore decInd deve avere le stesse dimensioni di codInt??

-- Comment added by DiegoCammarano on 11 Jun 2004


decSost e charToInt

il programma si pianta sulla 2° chiamata della charToInt (cioè quando chiamo la decSost) precisamente quando alloco memoria. non capisco. perché allora la prima volta va liscio e la seconda si blocca? (questo sotto winxp xché se compilo sotto linux mi cancella il file funzParte1.c quando faccio gcc -o ... e non so xché). help frown

-- Comment added by MorenoDeVincenzi on 12 Jun 2004


decSost e charToInt

scusate volevo dire che il programma termina e non che si pianta.

-- Comment added by MorenoDeVincenzi on 12 Jun 2004


genRPerm

ho notato una strana anomalia. quando leggo dal file il vettore e lo trasformo in stringa e la stampo è tutto ok. quando però faccio randVett=genRPerm(DIMALF---+1); la stringa di prima si dimezza. come se una parte venga sovrascritta quando si alloca memoria per il vettore delle permutazioni. usando nel file la stringa: "questa e la citta piu bella del peru ", dopo che uso la genRPerm la stringa è: "questa e laq" quindi diciamo dimezzata e con un carattere che non c'era prima. qualcuno sa dirmi se ha lo stesso problema? grazie.

-- Comment added by MorenoDeVincenzi on 12 Jun 2004


consegna

i messaggi per i test devono essere in forma numerica o alfabetica?

-- Comment added by ElisaDomeniconi on 13 Jun 2004


consegna

...cioè, devono essere riportati nel file di testo sotto forma numerica, o trasformati con la intToChar?

-- Comment added by ElisaDomeniconi on 13 Jun 2004


Inclusioni

Scusi professoressa, per le funzioni dei progetti precedenti lei ha scritto che dobbiamo includerle, ma chi le copia e incolla sbaglia? Perchè nelle parti precedenti di progetto presentavano degli errori. Quindi le riscriviamo oppure le modifichiamo nei progetti precedenti per poi includerle? Grazie, scusi ancora, arrivederci.

-- Comment added by DanielBuccarella on 13 Jun 2004


inclusioni e altro

Dovete correggere i progetti precedenti e riutilizzare il codice corretto, evitando copia e incolla. Per ogni discussione sulla genRVett venite al ricevimento, ripeto che non si puo' scrivere tutto e i motivi di certi "strani" comportamenti risiedono certamente altrove e non nella definizione della funzione. La divisione e il prodotto per i---+1 servono a generare un numero, ovviamente pseudocasuale, compreso tra 0 e i. I test sui file di testo vanno accompagnati dai file di testo usati, non sui vettori numerici corrispondenti.

-- Comment added by EmanuelaFachini on 14 Jun 2004


genRPerm --- modifiche

Se non sostituisco il diviso / con la percentiuale %, e se non tolgo *(i---+1) ottengo o Segmentation fault oppure dei vettori del tipo: 0, . . . ,0, 1, 0, . . . , 3, 0, 9.

E' possibile che cio' accada per problemi in fase di compilazione del gcc?

Posso consegnare la genRPerm con le modifiche?

-- Comment added by ElisaDomeniconi on 14 Jun 2004


progetto 5 uso di genTperm

scusi ma nel progetto 5 quale funzione di generazione di permutazioni dobbiamo usare la int genRPerm oppure la void genTPerm??

-- Comment added by DiegoCammarano on 16 Jun 2004


progetto 5 uso di genTperm

scusi ma nel progetto 5 quale funzione di generazione di permutazioni dobbiamo usare la int genRPerm oppure la void genTPerm??

-- Comment added by DiegoCammarano on 16 Jun 2004


progetto5:vettore decInd

il vettore decInd rappresenta gli indici della permutazione corrente e deve essere dichiarato globale??

-- Comment added by DiegoCammarano on 16 Jun 2004


progetto5:vettore decInd

il vettore decInd rappresenta gli indici della permutazione corrente e deve essere dichiarato globale??

-- Comment added by DiegoCammarano on 16 Jun 2004


progetto 5

decInd non deve essere globale, e' legato alla permutazione corrente. La funzione da considerare e modificare opportunamente e' la genTPerm, che appunto genera tutte le permutazioni, mentre genRperm genera una permutazione casuale. Quanto ai problemi di Elisa Domeniconi, mi mandi per posta elettronica la versione di genRperm che usa, e anche la sua chiamata, altrimenti non posso risponderle.

-- Comment added by EmanuelaFachini on 16 Jun 2004


orale prog2

Scusi prof,ho superato la prova scritta del 15,l'orale lo posso sostenere'nell'appello di luglio??grazie

-- Comment added by DiegoCammarano on 16 Jun 2004


file testParte4.c e testParte.h

scusate la domnda ma sti file li avevte usati? a me sono praticmente vuoti io ho scritto tutte le funzioni che sono nel testo del progetto in funzParte4. in questa altri due file (testParte4.c e testParte.h) credo ci vadano le funzioni ausiliarie se le utilizziamo vero??? si si vale per tutti i progetti vero? help! smile

-- Comment added by MorenoDeVincenzi on 16 Jun 2004


Testing

non capisco il testing qualcun sa dirmi di piu? grazie

-- Comment added by MorenoDeVincenzi on 16 Jun 2004


Particella di sodio in acqua lete

C'è nessuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuunooooooo

-- Comment added by DaniloDauria on 16 Jun 2004


vettore booleano val

Scusi prof. ma non ho capito che elementi contiene il vettore booleano val.Contiene gli indici del vettore cifrato codInt???

-- Comment added by DiegoCammarano on 18 Jun 2004


Vettore booleano val

Se lei controlla la funzione genTPerm vede che il vettore in oggetto e' utilizzata per gestire i valori nella generazione di una nuova permutazione, infatti tiene memoria dei valori gia' "usati" consentendo di prendere il primo non usato. Bisogna capire bene il comportamento della genTPerm prima di proseguire con il progetto.

-- Comment added by EmanuelaFachini on 19 Jun 2004


panico totale!

in genTPrem cosa rappresentano i vettori vett, val e i due interi k e n? il programma prende in input il vettore codInt da decifrare da tastiera? da file(bisogna includere il file protParte1.h)? é gia nel programma? il programma prende in input il testo in italiano da tastiera? da file? é gia nel programma? la ordfreq calcola e ordina le frequenze delle lettere dei due testi, quindi bisogna includere anche il file protPartre2.h e restituisce i due vettori freqV e freqVIt. la genTPerm incomincia a generare tutte le permutazioni possibili con 26 caratteri e passa ogni permutazione nel vettore "sostVett" di lunghezza 26 a rottSost. in rottSost k da cosa è deciso? rappresenta l'indice da modificare del vettore sostVett o codInt? poi si controlla se codInt è un messaggio leggibile ....

-- Comment added by PaoloCanaletti on 22 Jun 2004


panico totale

Effettivamente vedo che e' in preda al panico! Con calma, si studi bene la genTPerm, che era stata illustrata a lezione, per val veda il messaggio precedente, vett e' il vettore che rappresenta la permutazione, come e' scritto nel progetto e k e' l'indice di avanzamento nella costruzione della permutazione. Questa non e' una funzione banale e per questo che era stata presentata a lezione, deve capire bene come funziona prima di affrontare il progetto. La quinta parte delprogetto riusa tutte le parti precedenti, quindi codInt e' il vettore che lei ottiene dal suo file di testo che contiene il messaggio da decifrare applicando le funzioni della parte prima. La gentPerm non va utilizzata come e', ma e' lo schema base per la rottSost . Se esce dal suo stato confusionale e si pone un obiettivo alla volta forse riuscira'. Si ricordi che questa parte del progetto e' opzionale.

-- Comment added by EmanuelaFachini on 23 Jun 2004


effSost

salve prof, non ho capito come vanno usati i parametri "i" e "m" della funzione effSost....dobbiamo fare un doppio ciclo che prenda tutti i valori di "i" e tutti i valori di "m" ???????? grazie

-- Comment added by CristianoCasciotti on 24 Jun 2004


vFreq o freqV ???

nel pdf lei fa riferimento prima a vFreq, poi a freqV.....sono la stessa cosa? qual'e' il nome giusto da usare???

-- Comment added by LorenzoCroce on 24 Jun 2004


effSost e freqV

Sono gli indici su cui basare la sostituzione: lei deve rimpiazzare l'i-simo "carattere" nel vettore delle frequenze del suo messaggio, freqV (che e' un numero tra 0 e DIMALF) con l'm-simo carattere nel vettore delle frequenze del testo in italiano, freqVIt, nel suo messaggio da decifrare. Non vedo cosa centrino i cicli cui fa riferimento.

-- Comment added by EmanuelaFachini on 24 Jun 2004


effSost

per il testo dice: "sostituie in codInt ogni occorrenza...", quidni c'è da fare un ciclo su codInt? ma quanto è grande codInt????

-- Comment added by MorenoDeVincenzi on 28 Jun 2004


decInd e codInt

la grandezza di decInd dipende dalle sostituzioni; allora come lo creiamo questo vettore? allochiamo memoria prima, per la lunghezza di codInt? e codInt la sua lunghezza ce l'ha nella prima posizione???? help. frown la funzione effSost è un pò vaga secondo me.

-- Comment added by MorenoDeVincenzi on 28 Jun 2004


Note per la consegna finale del Progetto

Vi ricordo che consegnando la quinta ed ultima parte del progetto dovrete consegnare anche la versione definitiva delle parti precedenti in modo che possano essere sottoposte nuovamente ai tests.

E' importante che vengano rispettate le seguenti regole:

- includere in ogni file gli header di libreria (come stdlib.h, stdio.h, ecc, ecc...);

- includere gli header dei vostri files (come protParte5.h, protParte2.h, ecc, ecc...);

- usare negli header le direttive ifndef, define e endif. Ad esempio, il file protParte5.h dovrebbe iniziare con:

#ifndef PROTPARTE5_H #define PROTPARTE5_H

e l'ultima riga dovrebbe essere:

#endif

Analoghe modifiche dovrebbero essere fatte in TUTTI i vostri file header che consegnerete con l'ultima parte (compresi cioè quelli delle parti precedenti).

- mandare tutti i file in un file compresso .zip.

-- Comment added by PietroLongo on 30 Jun 2004


Note per la consegna finale del Progetto

cioe quindi l'ultima consegna comprende tutti il progetto messo insieme? in tutte le sue parti?

-- Comment added by MorenoDeVincenzi on 30 Jun 2004


Note per la consegna finale del Progetto

poi io gli header di libreria li metto nei miei file header in modo da importare una sola cosa. è giusto?

-- Comment added by MorenoDeVincenzi on 30 Jun 2004


verBiTriG

non capisco perchè bisogna aggiungere il codice di questa funzione al file contenente leggiBig e leggiTrig e hai suoi prototipi. ma fino ad ora che abbiamo incluso a fare?

-- Comment added by MorenoDeVincenzi on 30 Jun 2004


effSost

Se per lei la funzione non e' chiara, forse dovrebbe rileggere il testo in cui e' spiegato il suo funzionamento con piu' attenzione: La funzione di prototipo

int * effSost( int m, int i, int base)

sostituisce in codInt ogni occorrenza di freqV[i] -> car con freqVIt[m] -> car---+ base, restituendo il vettore degli indici delle entrate in cui sono state effettuate le sostituzioni. Per decInd conviene adottare lo stesso formato utilizzato per codInt, cioé inserire nella prima posizione il numero -1 degli elementi del vettore stesso. (Cosi' come vede non c'e' nessun mistero su se codInt e decInt devono contenere la loro dimensione meno uno nella prima entrata) Se decInd[0] = 0, allora non sono state fatte sostituzioni. La frase che non le piace e' la seguente: "Conviene aggiungere il codice di questa funzione al file che contiene leggiBig e leggiTrig, e conseguentemente il suo prototipo al file dei prototipi di leggiBig e leggiTrig." Dopodiche lei include il file header opportuno dov ene ha bisogno. Se pensa che sia megliio fare altrimenti nessuno la obbliga. Poi mi spieghera' il suo dubbio a proposito delle inclusioni fatte fino ad ora e che le sembrano inutili.

-- Comment added by EmanuelaFachini on 30 Jun 2004


Re: Note per la consegna finale del Progetto

> cioe quindi l'ultima consegna comprende tutti il progetto messo insieme? in tutte le sue parti?

Si, in modo da poter testare le versioni definitive di tutte le varie parti.

> poi io gli header di libreria li metto nei miei file header in modo da importare una sola cosa. è giusto?

Se il compilatore ti compila tutto è giusto, se seguite l'accortezza delle direttive #ifndef, #define e #endif è meglio, perche altrimenti potebbe essere necessario aggiunerle in fase di correzione.

-- Comment added by PietroLongo on 30 Jun 2004


effSost
1-non non volevo dire che sono inutili. era per dire: allora perche abbiamo incluso fino ad oa se dobbiamo aggiungere il codice su un altro file? pero da quanto ho capito allora la verBiTrig non deve essere nella parte5 ma nella parte3 mi sembra e quindi la importiamo. lei voleva dire questo? 2-per il vettore decInd volevo sapere che tipo di allocazione bisognava fare (quanto era grande). io ho allocato per la grandezza di codInt e poi gestivo la prima posizione in modo da usarne solo la parte che mi interessava (per esempio decInd era grande quanto codInt pero la prima posizione indicava la lunghezza effettiva quindi diciamo non utilizzo la parte co non serve). ho fatto bene?

-- Comment added by MorenoDeVincenzi on 30 Jun 2004


copia cartacea progetto

Scusi prof,ma anche nella copia cartacea della quinta parte devono essere riportatte di nuovo tutte le funzioni di tutte le parti anche se sono state gia consegnate con la 4 parte??grazie

-- Comment added by DiegoCammarano on 30 Jun 2004


copia cartacea progetto

Scusi prof,ma anche nella copia cartacea della quinta parte devono essere riportatte di nuovo tutte le funzioni di tutte le parti anche se sono state gia consegnate con la 4 parte??grazie

-- Comment added by DiegoCammarano on 30 Jun 2004


annSost?

che cosa è h? da dove ce lo ricaviamo?

-- Comment added by PaoloCanaletti on 30 Jun 2004


effSost + consegne + annSost

Si, e' evidente che se alloca tanta memoria quanto e' lungo codInt le bastera'. Poi volendo puo' liberare la memoria in eccesso (ma non e' determinante, decInd ha vita breve). E' evidente che non dovete riconsegnare stampe gia' consegnate, ma in tal caso scrivete una nota per segnalarmelo. Il parametro h e' l'entrata di freqV[h] il cui carattere, freqV[h] -> car, e' stato sostituito con freqVIt[h]->car in codInt (tramite la effSost). Dovete quindi semplicemente sostituire ogni entrata di codInt, indicata in decInd, con il "vecchio"carattere freqV[h] -> car.

-- Comment added by EmanuelaFachini on 30 Jun 2004


VerBiTriG

non mi è chiara questa VerBiTriG, la dobbiamo mettere dve c'è leggiBig e leggiTrig ed importarla, quindi non deve stare nella quinta parte giusto? se si perchè questa modalità? a che ci serve questa funzione nella parte già fatta? illuminatemi grazie.

-- Comment added by MorenoDeVincenzi on 30 Jun 2004


VerBigTrig

Rilegga la risposta al suo quesito analogo.

-- Comment added by EmanuelaFachini on 01 Jul 2004


VerBigTrig?
quindi non si deve scrivere nella 5° parte. Ho capito così. Ma c'è un motivo preciso? Cosi per curiosità. smile

-- Comment added by MorenoDeVincenzi on 01 Jul 2004


4 domande

salve

avrei quattro domande da porLe:

1) non capisco a cosa serva esattamente il vettore sostVett..insomma mi chiedevo se e' un elemento essenziale oppure se e' solo un modo per evitare di lavorare direttamente sul vettore codInt (cosa che magari potrebbe risultare poco...diciamo..."pulita")

2) nel caso in cui troviamo un bigramma/trigramma impossibile bisogna chiaramente chiamare la annSost pero' poi Lei scrive che bisogna "attribuire a n il valore di i---+1, in modo che si cerchi il nuovo valore tra i maggiori di i"...ma questo non viene gia' fatto dal ciclo for stesso? insomma la "i" (indice del vettore) viene incrementata da sola..di conseguenza non basterebbe solamente chiamare la annSost, mettere a zero il valore val[i] e lasciare che l'incremento venga fatto dal for? anche perche' penso che se si mette una condizione del tipo for(i=n;<=DIMALF;i---++) e poi all'interno del for stesso si cambia il valore di n non cambia niente. forse sono completamente fuori strada?

3) come bisogna comportarsi nel caso in cui una chiamata di effSost non esegue alcuna sostituzione?

4) mi chiedo se bisogna in qualche modo (non me ne e' venuto in mente nessuno) sfruttare il fatto che le funzioni leggiBig/Trig tornano l'indice dell'elemento iniziale del bigramma/trigramma impossibile.

grazie.

marco

-- Comment added by MarcoValerioBarbera on 01 Jul 2004


Note per la consegna finale del Progetto

Purtroppo in questi giorni non sono a casa, che succede se non riesco a consegnare di nuovo il progetto, o se lo consegno senza le modifiche?

-- Comment added by ElisaDomeniconi on 02 Jul 2004


4 domande

1.SostVett non e' codInt, e' il vettore che contiene di volta in volta la permutazione che guida la sostituzione di "caratteri" in codInt. 2. in caso che si debba interrompere la generazione "normale" della successiva permutazione il prossimo valore da attribuire deve essere uno maggiore di quello tentato con insuccesso (per via dei bigrammi o trigrammi impossibili), ma bisogna azzerare in val l'entrata relativa al valore usato, perche' sia disponibile in seguito, e annullare la sostituzione fatta in codInt. La sostituzione voluta, sull'albero delle permutazioni, corrisponde a quella relativa al nodo fratello. Ma e' vero che e' inutile l'uso della variabile n. 3. Lei puo' ignorare l'eventualita' che la effSost non faccia sostituzioni o sfruttare questo per rendere il programma piu' veloce. 4. No in effetti qui serve solo verificare se il valore e' diverso da zero. Le funzioni erano costruite cosi' per facilitare il testing sulle stesse.

$ Comment


This topic: Labprog2ad > DomandeVarie
Topic revision: r403 - 2004-07-09 - EmanuelaFachini
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback