-per Julinda- domande Esercizio 3

1 view
Skip to first unread message

valerio

unread,
Nov 21, 2007, 2:28:04 AM11/21/07
to Programmazione1 pz 07-08
La matrice M viene passata già completa o dobbiamo leggere in input i
valori nella funzione?
Nel caso in cui non c'è acqua cosa si deve ritornare?

Julinda

unread,
Nov 21, 2007, 7:59:12 AM11/21/07
to Programmazione1 pz 07-08
Anche in questo caso dovete scrivere solo una funzione, non un
programma.

La matrice e' uno dei parametri di input della funzione, ma nel senso
che quando
la funzione verra' chiamata, gli verra' passata una matrice.
Voi la funzione non la dovete chiamare da nessuna parte, soltanto la
dovete
scrivere e mettere in un file .c insieme agli appropriati include.
Anche qui' come nell'esercizio 2, niente main.

Riguardo alla sua seconda domanda, la funzione, per una data matrice M
di dimensioni nxn
e per un dato k deve ritornare il numero di caselle di distanza k
dall'acqua.
Ovviamente, se non c'è acqua da nessuna parte, tali caselle non
esistono, quindi,
in questo caso, il numero di caselle che stanno a distanza k
dall'acqua e' 0.

Mi faccia sapere se ha altri dubbi
Saluti
Julinda

Daniele

unread,
Nov 23, 2007, 9:33:02 AM11/23/07
to Programmazione1 pz 07-08
Rilegendo l'intestazione della funzione relativa all'esercizio 3 mi
sono accorto di non aver ben chiara una cosa:
la funziona accetta come parametro un puntatore a puntatore a int
ovvero int** M ma da quello che abbiamo studiato un'array
multidimensionale non è un puntatore a puntatore ma bensì un puntatore
ad array ed infatti c'è la necessita di specificare sempre tutte le
dimensioni successive alla prima quando la si passa come parametro di
una funzione ed infatti se si prova a compilare il programma passando
alla funzione un'array multidimensionale precedentemente dichiarata il
programma compila con:
"[Warning] passing arg 1 of `terre_distanti' from incompatible pointer
type."

Quindi teoricamente l'intestazione della funzione dovrebbe essere o
int terre_distanti (int n, int M[][n], int k) oppure int
terre_distanti (int n, int (*M)[n], int k)!
Quindi immagino che ci sia qualche cosa che mi sfugge

Grazie per l'attenzione

Daniele


Julinda ha scritto:

> Anche in questo caso dovete scrivere solo una funzione, non un
> programma.
>
> La matrice e' uno dei parametri di input della funzione, ma nel senso
> che quando
> la funzione verra' chiamata, gli verra' passata una matrice.
> Voi la funzione non la dovete chiamare da nessuna parte, soltanto la
> dovete
> scrivere e mettere in un file .c insieme agli appropriati include.
> Anche qui' come nell'esercizio 2, niente main.
>
> Riguardo alla sua seconda domanda, la funzione, per una data matrice M
> di dimensioni nxn
> e per un dato k deve ritornare il numero di caselle di distanza k
> dall'acqua.
> Ovviamente, se non c'� acqua da nessuna parte, tali caselle non
> esistono, quindi,
> in questo caso, il numero di caselle che stanno a distanza k
> dall'acqua e' 0.
>
> Mi faccia sapere se ha altri dubbi
> Saluti
> Julinda
>
> On Nov 21, 8:28 am, valerio <valerio...@hotmail.it> wrote:
> > La matrice M viene passata gi� completa o dobbiamo leggere in input i
> > valori nella funzione?
> > Nel caso in cui non c'� acqua cosa si deve ritornare?

valerio

unread,
Nov 23, 2007, 2:47:13 PM11/23/07
to Programmazione1 pz 07-08
nel main la matrice deve essere dichiarata come int** e allocata con
la dimensione (int* * n) perchè al suo interno ha i valori dei
puntatori a vettori che rappresentano le righe.
per iniziallizzarla si deve allocare un vettore di interi per ogni
riga e assegnare a M[i] il puntatore allocato

Julinda

unread,
Nov 24, 2007, 1:41:29 PM11/24/07
to Programmazione1 pz 07-08
Salve,

Non so se la sua risposta e' legata al momento di testing della vostra
funzione
da parte di voi stessi: ossia prima della consegna, per questo vorrei
ri-specificare la
seguente cosa per essere sicura: nel file che consegnate a me la
matrice non deve essere allocata da nessuna parte,
anche perche' voi dovete mandarmi solo e unicamente la funzione, poi
mi occupo
io della creazione della matrice e di chiamare la vostra funzione per
testarla.

Per quato riguarda il resto della sua risposta, e' tutto giusto :-)

Saluti
Julinda
> > > > Nel caso in cui non c'� acqua cosa si deve ritornare?- Hide quoted text -
>
> - Show quoted text -

Daniele

unread,
Nov 25, 2007, 1:25:02 PM11/25/07
to Programmazione1 pz 07-08
Sì era legata al testing! Grazie per la risposta.
Volevo sapere ancora una cosa che vale anche per l'esercizio 2:
se utiliziamo delle funzioni ausiliarie dobbiamo dichiararne i
prototipi, inserirle
prima della funzione in cui vengono utilizzate o non possiamo proprio
usarle?

Grazie
Daniele

Julinda

unread,
Nov 26, 2007, 4:40:29 AM11/26/07
to Programmazione1 pz 07-08
Salve,

certo che potete usare funzioni ausiliarie. Che ovviamente (mi
immagino)
verranno chiamate dentro la funzione terre_distanti.
Anche queste funzioni (almeno che non siano di libreria) dovete
inserirle
nel file che manderete a me, altrimenti, nel momento del testing la
vostra funzione
non compilerebbe!!!

saluti
Julinda
Reply all
Reply to author
Forward
0 new messages