Example: biology

C array - unina.it

C array Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Non sappiamo a priori quante variabili dobbiamo definire per contenere gli interi. Algoritmo Una soluzione (non scalabile) leggi(n). consiste nel dichiarare un numero conta 0. if conta<n: m di variabli x1,x2, xm con m leggi(x1). else: sufficientemente grande. x1 0. conta conta +1. if conta<n: Per risolvere un problema molto leggi(x2). else: semplice occorrerebbe scrivere x2 0.. un programma lunghissimo anche conta conta +1. nel caso che n fosse dell'ordine if conta<n: leggi(xm). delle centinaia. else: xm 0. if xm 0: stampa(xm).. if x1 0: stampa(x1). C array Per manipolare molti elementi dello stesso tipo, linguaggi imperativi permettono l'uso della struttura dati array (o vettore).

Esercizi: 1. Assegnato un vettore a di n interi, verificare che tutti i suoi elementi sono positivi 2. Assegnato un vettore a di n interi, verificare che tutti i suoi elementi sono nulli 3. Scrivere un programma che scriva tutti i numeri interi multipli di 3 e non di 7 …

Tags:

  Esercizi

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of C array - unina.it

1 C array Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Non sappiamo a priori quante variabili dobbiamo definire per contenere gli interi. Algoritmo Una soluzione (non scalabile) leggi(n). consiste nel dichiarare un numero conta 0. if conta<n: m di variabli x1,x2, xm con m leggi(x1). else: sufficientemente grande. x1 0. conta conta +1. if conta<n: Per risolvere un problema molto leggi(x2). else: semplice occorrerebbe scrivere x2 0.. un programma lunghissimo anche conta conta +1. nel caso che n fosse dell'ordine if conta<n: leggi(xm). delle centinaia. else: xm 0. if xm 0: stampa(xm).. if x1 0: stampa(x1). C array Per manipolare molti elementi dello stesso tipo, linguaggi imperativi permettono l'uso della struttura dati array (o vettore).

2 Un array un insieme ordinato di elementi dello stesso tipo Gli elementi di un array sono detti componenti ed il loro tipo . chiamato componente-tipo dell' array . I componenti di un array sono immagazzinati in posizioni consecutive di memoria L'intero array identificato da un nome specificato secondo le regole generali degli identificatori C array La definizione di una variabile array monodimensionale : tipo-componente identificatore[espressione]. Dove: tipo-componente il tipo dei componenti, identificatore il nome dell' array e il valore dell'espressione racchiusa tra parentesi quadre ne rappresenta la dimensione (numero massimo di componenti). Si noti che la dimensione dell' array deve essere calcolata durante la fase di compilazione . pertanto in espressione possono essere presenti solo valori letterali o costanti C array Un array (o vettore) pu anche essere inizializzato in fase di definizione, nel qual caso la dimensione pu essere omessa perch calcolata implicitamente dal compilatore.

3 Indice dell' array una variabile o una espressione intera Esempio: int valori[] = {32, 53, 28, 85, 21}; ( array di 5 numeri interi). float b[]={ , ,15}; ( array di 3 numeri reali). const int max=30;. int Vet[10], vet[max]; (Vet contiene max 10 interi, vet contiene max 30 interi). int zeri[10] = {0}; (tutti i valori posti a zero). C array Per accedere ai componenti dell' array si usa l'operatore binario []: nome[espressione]. Dove: nome il nome di un array (operando sinistro) e espressione (operando destro) una qualunque espressione con risultato intero (indice dell' array ). L'operatore [] applicato ad un nome e un indice, definisce una variabile (r-value). il cui indirizzo dato dalla somma dell'indirizzo della variabile nome dell' array , sommato all'indice posto tra parentesi quadre float b[]={ , ,15}.

4 B[0], b[1] e b[2] sono tre variabili reali C array Come variabile nome[espressione] pu essere usato: per assegnare un valore ad un componente dell' array nel lato sinistro di un'istruzione di assegnazione per ricavare il valore di un componente dell' array lato destro di un'assegnazione o come operando di espressione 0 1 2 3 4 5 6 7 8 9. Esempio: 4 -2 8 45 -6 15 12 -4 0 23. Vet[3] = 45; (il numero 45 viene assegnato alla variabile identificata dall'indice 3). int i = 4; (a conterr il valore del componente identificata dall'indice 8 dell' array sommato al valore del a = Vet[i*2] + Vet[i+1];. componente identificato dall'indice 5). (l'accesso a componenti oltre la dimensione Vect[10] = 3; dell' array spesso causa di errori di a = Vect[22]; programmazione non segnalata dal compilatore).

5 C array In generale dunque se la variabile A stata definita come un array , A[espressione] a tutti gli effetti una variabile il cui tipo quello dei componenti dell' array . C array Se il valore dell'espressione maggiore o uguale alla dimensione dell' array si ha un errore logico. L'istruzione Vet[10]=2 non ha senso poich si attribuisce un valore ad una variabile che non rappresenta una componente dell' array Vet. Lo stesso pu accadere se l'espressione risulta maggiore o uguale al numero di elementi effettivamente presenti nell' array . E' pertanto compito del programmatore assicurarsi che situazioni di questo genere non si verifichino perch esse possono dar luogo ad errori difficilmente rintracciabili. C array Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso C array Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso //Riempimento e stampa inversa di un array int main ().

6 {. int const m=300;. int a[m],i, n;. printf("Quanti elementi? \n );. scanf( %d , . printf("Dammi gli elementi separati da uno spazio \n );. for (i=0;i<n;i++). scanf( %d , . printf("Lista inversa \n );. for (i=n-1; i>=0;i--). printf( %d ,a[i]);. return 0;. }. C array A stato definito come un array di interi di dimensione 300. Non detto che questo array sia sempre pieno n<m Non bisogna dunque confondere tra la dimensione dell' array ed il numero di elementi effettivamente presenti nell' array . C array Si osservi inoltre che se A e B sono due array errato scrivere A=B. Per copiare un array in un altro occorre scrivere un for che copi ogni elemento di B in A. Cio : for(i=0;i<n;i++). A[i]=B[i];. Una variabile di tipo array non pu comparire da sola in un enunciato di assegnazione o in una espressione booleana C array esercizi .))

7 Calcolo della Conversione da decimale a Binario Letti da tastiera n numeri reali positivi, stampare il piu' grande e il piu' piccolo. C array i= 0;. while ( i < 8 ) {. if (V[i]> 5 ) {. printf( V[%d]= %d \n ,i,V[i]);. }. i++;. }. Sia V=[3,5,10,34,2,12,23,5] un vettore di interi. Tenendo presente l'esempio, scrivere ci che si ritiene che apparir sul monitor i= 0;. while ( i < 8 ) {. if (V[i]>= 5) {. printf( V[%d]=%d\n ,i,V[i];. }. i+=2;. }. Sia V=[3,5,10,34,2,12,23,5] un vettore di interi. Tenendo presente l'esempio, scrivere ci che si ritiene che apparir sul monitor C array i= ____;. while (_____ ) {. if (V[i]_____) {. printf( V[%d]=%d\n ,i,V[i]);. }. i+=____;. }. Sia V=[3, 5, -10, -34, 2, 12 , 23, 5] un vettore di interi. Inserire dei termini opportuni affinch sul monitor siano stampati solo i valori positivi i= ____.)

8 While (_____ ) {. printf( V[%d]=%d \n ,i,V[i]);. i___;. }. Sia V=[3,5,-10,-34,2,12,23,5] un vettore di interi. Inserire dei termini opportuni affinch sul monitor siano stampati in ordine inverso solo gli elementi di posto pari C array i= ____;. while (_____ ) {. if (V[i]_____ ) {. printf( V[%d]=%d\n ,i,V[i]);. }. i____;. }. Sia V=[3,5,-10,-34,2,12,23,5] un vettore di interi. Inserire dei valori opportuni affinch sul monitor siano stampati solo i valori negativi scritti in ordine inverso C array esercizi : 1. Assegnato un vettore a di n interi, verificare che tutti i suoi elementi sono positivi 2. Assegnato un vettore a di n interi, verificare che tutti i suoi elementi sono nulli 3. Scrivere un programma che scriva tutti i numeri interi multipli di 3 e non di 7 inclusi tra 15 e 100 (utilizzare il ciclo while).

9 4. Scrivere un programma che calcoli la somma di tutti i numeri interi pari inclusi tra 5 e 100 escludendo i multipli di 3 e 5. (utilizzare il ciclo while). 5. Scrivere un programma che esegua la somma di tutti i numeri interi inseriti da tastiera finch tale somma non superi il valore di 150; dalla somma vanno esclusi i numeri che contengono la cifra 1. 6. Scrivere un programma che esegua il prodotto di tutti i numeri interi inseriti da tastiera finch tale prodotto non superi il valore di 15000; dal prodotto vanno esclusi i numeri che sono multipli di 3.


Related search queries