• Non ci sono risultati.

a.a.2011/2012 AndreaMarin Array

N/A
N/A
Protected

Academic year: 2021

Condividi "a.a.2011/2012 AndreaMarin Array"

Copied!
9
0
0

Testo completo

(1)

Andrea Marin

Universit`a Ca’ Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

a.a. 2011/2012

(2)

Motivazioni

I Problema: Acquisire da standard input 100 valori int e ristamparli in ordine crescente

I Problema: Acquisire da standard input una sequenza di caratteri che termini con invio e ristamparla sostituendo le lettere minuscole con le lettere maiuscole

I Quante variabili servono per risolvere questi problemi?

(3)

Array

Definizione (Array)

Un array `e una variabile che fa riferimento a pi`u elementi dello stesso tipo

I Ad esempio un array di int `e un insieme indicizzato di interi

I Dichiarazione di un array in C:

tipo nome array[dimensione]

Dove:

I tipo: `e il tipo di dato delle celle dell’array

I nome: `e l’identificatore associato all’array

(4)

Esempi di dichiarazione ed inizializzazione

Esempi di dichiarazione:

I int array[100];

I double array[50];

Inizializzazione di array:

I Come le variabili, anche gli array possono essere inizializzati

I Esempio:

int vect[] = { 4, 2, 10, 22, 112, 96};

(5)

Accesso agli elementi di un array

I Ad ogni elemento di un array `e associato un indice

I In un array di N elementi, gli indici vanno da 0 a N − 1

I Per individuare un elemento di un array si usa la notazione:

nome array[indice]

Dove:

I nome array: `e l’identificatore associato all’array

I indice: `e unaespressionedi tipo int che identifica una posizione valida (tra 0 e N − 1) nell’array

I Nota: C non effettua controlli run-time sulla validit`a

(6)

Left-value e Right-value

I Esempio: a[2+i]

I L’elemento individuato mediante l’indice identifica una cella di memoria pertanto. . .

I Se compare in un’espressione s’intende il valore contenuto in quella cella

I vett[i+2] = 12;

I Se compare a sinistra di un assegnamento, denota la locazione di memoria in cui scrivere

I vett[i+2] = vett[0] + 5;

(7)

Passare come parametro un array

I Per passare come parametro ad una funzione un array di float:

int foo(float arr[]);

I Da notare che non si specifica la dimensione nel parametro

I Per conoscere la dimensione dell’array, possiamo usare un altro parametro:

int foo(float arr[], int dimensione)

I Nota: La modifica di un elemento dell’array all’interno della funzione `e visibile dal chiamante

I In altre parole C non copia gli elementi dell’array uno ad uno

(8)

Esempio

Scrivere una funzione che legga un array di 10 elementi da tastiera e li inserisca in un vettore

v o i d l e g g i v e t t o r e ( i n t v e t t [ ] ) { i n t i ;

i n t a ;

f o r ( i =0; i <10; i = i +1) { s c a n f ( ‘ ‘ % d ’ ’ , &a ) ; v e t t [ i ] = a ;

} }

I void `e un tipo speciale che specifica che la funzione non ritorna nulla

(9)

Problemi

1. Scrivere una funzione che decida se un array contiene solo numeri pari

2. Scrivere una funzione che stampi gli elementi di un array 3. Scrivere una funzione che stampi gli elementi di un array

dall’ultimo al primo

4. Scrivere una funzione che scriva il valore 0 al posto di ogni valore negativo contenuto in un array

5. Scrivere una funzione che decida se un array contiene valore duplicati

6. Scrivere una funzione che determini il massimo di un array di

Riferimenti

Documenti correlati

Perci` o l’u- tilizzo della disuguaglianza di Chebyshev `e limitato ai casi in cui non `e nota la forma della distribuzione della variabile casuale... Sia X la variabile

codice strumento prezzo FLT flauto 2500 VLN violino 8000. $inv_art

14.. sono punti di discontinuit`a eliminabile. a)La funzione f ha due punti angolosi in x = ±1, come si vede facilmente anche disegnandone il grafico... Si pu`o quindi applicare

I: riempimento; il valore di ciascun elemento dello array Pi: il numero degli elementi da inserire (riempimento) non può essere maggiore della cardinalità dell’array. U:

La presentazione della tesi di un laureando davanti ad una commissione di laurea pu`o essere descritta tramite il nome e la matricola del laureando, il titolo della tesi, il nome

La sessione di una conferenza pu`o essere caratterizzata dal nome della con- ferenza, dal numero di sessione, dal nome del coordinatore della sessione e dall’elenco delle

[r]

[r]