Strumenti Utente

Strumenti Sito


fisica:informatica:201617:esercitazione7

Esercitazione: Array e puntatori

Esercizio 1: Ricerca in un array

Scrivere una funzione di prototipo

int cerca (int * vec, int lung, int x);

che cerca se l'elemento x e' presente nell'array vec di lung elementi e restituisce 1 se lo trova e 0 se non lo trova.

Verificare la correttezza della funzione utilizzando un opportuno main().

Esercizio 2: Ricerca del massimo in un array

Scrivere una funzione di prototipo

void max (double * vec, int lung, double* pmax, int* pind);

che cerca l'elemento massimo nell'array vec di lung elementi. La funzione restituisce in *pind e *pmax l'indice dell'elemento massimo ed il suo valore rispettivamente.

Verificare la correttezza della funzione utilizzando un opportuno main().

Esercizio 3: Funzione swap

Scrivere una funzione di prototipo

void swap (int *a, int *b);

che ha l'effetto di scambiare i valori di due variabili, ad esempio:

int a=5;
int b=63;
swap(&a,&b);
printf("a = %d, b = %d \n", a, b);
....

deve stampare

a = 63, b = 5

Sarebbe stato possibile ottenere lo stesso effetto utilizzando una funzione di prototipo

void swap (int a, int b);

? Perche' ?

Esercizio 4: Somma e prodotto di matrici

Scrivere un programma C costituito da un main() che legge da standard input due matrici quadrate, le somma, calcola il prodotto e stampa i risultati sullo standard output.

Esercizio 5: MSS, Maximum Segment Sum

Dato un array di interi positivi e negativi, il segmento di somma massima e' la porzione contigua dell'array in cui la somma degli elementi ha valore piu' alto. Ad esempio l'array

[2,-4,2,-1,6-3] 

ha come SSM il segmento [2,-1,6] di valore 7. Si chiede di definire due funzioni per la stampa e per il calcolo di SSM, con i seguenti prototipi :

/** stampa l'array s di lunghezza n */
void print_array(int s[], int n); 
/** calcola SSM sull'array s di lunghezza lung 
 \param s array
 \param n lunghezza 
 \param s_init puntatore alla variabile che conterra' la posizione di inizio dell'SSM
 \param s_lung puntatore alla variabile che conterra' la lunghezza del segmento di somma massima
 
 \retval k la somma degli elementi dell' SSM
 */
int ssm (int s[], int n, int * s_init, int * s_lung);

Esercizio 6: Stampa del triangolo di Tartaglia

Il triangolo di Tartaglia è una disposizione geometrica dei coefficienti binomiali, ad esempio:

          1
        1 2 1
       1 3 3 1
      1 4 6 4 1
    1 5 10 10 5 1
   .......

Scrivere un programma C che legge un intero n da standard input e stampa il triangolo di Tartaglia sullo standard output fino all riga n-esima.

fisica/informatica/201617/esercitazione7.txt · Ultima modifica: 03/04/2017 alle 09:59 (7 anni fa) da Susanna Pelagatti