Esercitazioni
del
corso
di Laboratorio di Calcolo
n. 6
25 maggio 2006
puntatori
- scaricate
il file main.cc
nel vostro direttorio ex6. Leggetelo, compilatelo, giratelo... inserite
quindi nel file dei vostri commenti che illustrino i risultati
ottenuti:
chi sono &Dim, punt, *punt? cos'e` Vett? Di quanti bytes si sposta
un puntatore ad un double quando gli si somma 1?
- scaricatevi
i files parametri.h e
parametri.cc. In
parametri.h troverete
i prototipi di una serie di funzioni. La loro implementazione e` in
parametri.cc.
Includete il file parametri.h all'inizio di main.cc. A
questo punto procedete con una funzione per volta con le seguenti
operazioni:
- g++
-c
parametri.cc
- provate a
chiamare la funzione dal vostro
programma passandole
il vettore e la dimensione del vettore (prima dell'istruzione
delete!).
Compilate con
g++ main.cc parametri.o
Se ci sono errori cercate di capirli e
di
correggerli
(potrebbero essere dovuti al tipo di argomento che passate alla
funzione:
alcuni parametri sono valori, altri indirizzi!)
- editate
parametri.cc e all'interno della
funzione in esame,
dopo una stampa che dica in che funzione vi trovate, stampate
l'indirizzo
del primo elemento del vettore e l'indirizzo della variabile che
contiene
la dimensione del vettore. Confrontateli con gli indirizzi stampati in
precedenza dal programma principale.
- modificate
all'interno della funzione un
elemento del
vettore A (ad esempio il primo) ponendolo uguale ad un valore diverso
da
quello usato per l'inizializzazione e caratteristico della funzione in
cui vi trovate (ad esempio A[0]=11.11 in test1...) e ponete N uguale ad
un valore anch'esso diverso da quello impostato in main (ad esempio
1111
in test1...), e stampate qualcosa del tipo
in test1 poniamo A[0] uguale a 11.11 e
N
uguale a
1111 - nel
programma principale, dopo la chiamata
alla funzione
stampatevi Vett[0] e Dim con una scritta del tipo "dopo la chiamata a
test1
troviamo..."
- Cosa
osservate? scrivete i vostri commenti
su ogni funzione
nel file header vicino al prototipo di ogni funzione
(NB: se fate le
cose per
bene
test3 e test4 quando date il comando g++ -c parametri.cc non
compileranno:
commentate l'istruzione che provoca l'errore e spiegate perche'!)
(NB2: in alcuni
casi
vedrete
cambiare il valore di Dim: questo non ha effetto sulla dimensione di
Vett
perche' e` gia` stato dimensionato, e` solo la variabile Dim che cambia!)