====== 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.