Gli array Libro cap. 6 Moreno Marzol a Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna
|
|
- Albino Monaco
- 5 anni fa
- Visualizzazioni
Transcript
1 Gli array Libro cap. 6 Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna
2 Array 2
3 Ringraziamenti prof. Stefano Mizzaro, Università di Udine Array 3
4 Scalare Gli array Un nome a cui è associato un singolo valore di un determinato tipo Array Un nome a cui sono associati più valori dello stesso tipo Ogni valore ha una sua posizione all'interno dell'array Un array di N elementi ha posizioni etichettate come 0, 1, N - 1 Il primo elemento dell'array si trova in posizione 0. x è una variabile scalare di tipo double il cui valore è x a E a è un array di 6 elementi di tipo double, le cui posizioni Array sono etichettate come 0, 1,
5 Esempio Programma che deve memorizzare 10 valori di temperatura Uso 10 variabili double temperatura1, temperatura2,..., temperatura10?? No, uso un array temperature di 10 elementi di tipo double Posso accedere ad ogni singolo valore tramite la posizione temperature Array 5
6 #include <stdio.h> In C int main( void ) { double temperature[10]; temperature[0] = 20.5; temperature[1] = 20.0; temperature[2] = 19.8; temperature[3] = 19.4; temperature[4] = 20.4; /* */ printf("%f\n", temperature[4]); /* */ temperature[5] = temperature[1]; temperature[6] = temperature[5]+1; temperature[7] = temperature[5+1]; /* */ return 0; temperature Array
7 Vantaggio degli array Gestione uniforme Ad es., per azzerare tutte le temperature temperature[0] = 0.0; temperature[1] = 0.0; temperature[2] = 0.0;... temperature[9] = 0.0; Anziché fare questo... int i; for (i=0; i<10; i++) { temperature[i] = 0.0;...possiamo fare questo Array 7
8 Gestione uniforme Calcolare la media delle temperature double temperature[10]; double somma = 0.0; int i;... for (i = 0; i < 10; i++) { somma = somma + temperature[i]; printf("media=%f\n", somma/10); Fatelo con le 10 variabili e poi fatelo per 100 NB: la dimensione dell'array compare più volte (il letterale 10...); vedremo più avanti come migliorare Array 8
9 Variable-length arrays C99 consente di dichiarare array la cui dimensione è contenuta in una variabile La variabile deve essere dichiarata (quindi visibile) prima della dichiarazione dell'array Una volta creato l'array, la sua dimensione rimane fissa /* OK sia in C99 che in ANSI C: a e' un array di 20 int, b e' un array di 10 int; il contenuto iniziale degli array e' indefinito */ int a[20], b[10]; /* OK in C99 (non ammesso in ANSI C): c e' un array di 20 elementi; il suo contenuto iniziale e' indefinito */ int N = 20; int c[n]; /* OK in C99 (non ammesso in ANSI C): d e' un array di 30 elementi; il suo contenuto iniziale e' indefinito */ const int K = 30; int d[k]; Array 9
10 Dichiarazione A differenza di altri linguaggi (es., Java), la lunghezza di un array in C non è associata all'array Non c'è un modo generale per ricavare la lunghezza di un array sapendo il suo nome In certi casi si può usare l'idioma seguente: int giorni[] = {31,28,31,30,31,30,31,31,30,31,30,31; const int ngiorni = sizeof(giorni)/sizeof(giorni[0]); /* OK: ngiorni vale 12 */ Come soluzione migliore, può essere utile usare un simbolo per tenere traccia della dimensione dell'array Array 10
11 Esempio Avete scritto un programma per gestire un array di 10 elementi #include <stdio.h> int main( void ) { int v[10], i; for (i=0; i<10; i++) { v[i] = i*i; /* */ for (i=0; i<10; i++) { printf("v[%d]=%d\n", i, v[i]); return 0; Array 11
12 Esempio...Poi, un bel giorno, qualcuno vi chiede di modificare il programma per funzionare con un array di 20 elementi #include <stdio.h> int main( void ) { int v[20], i; for (i=0; i<20; i++) { v[i] = i*i; /* */ for (i=0; i<10; i++) { printf( v[%d]=%d\n, i, v[i]); return 0;...così dovete andare a caccia di tutti i punti nel codice in cui usate il vecchio valore, per sostituirlo con il nuovo (che succede se ve ne dimenticate qualcuna?) Array 12
13 Soluzione Memorizzo la lunghezza di un array in un simbolo N N non è né una costante né una variabile Il compilatore vero e proprio non vede N: il simbolo viene sostituito prima della compilazione con la sua definizione Questa soluzione funziona sia con ANSI C che con C99 #include <stdio.h> #define N 10 int main( void ) { int v[n], i; for (i=0; i<n; i++) { v[i] = i*i; /* */ for (i=0; i<n; i++) { printf("v[%d]=%d\n", i, v[i]); return 0; Array 13
14 Fasi di compilazione #define N 10 int main( void ) { int a = N - 1; int v[n]; return 0; Preprocessore GCC int main( void ) { int a = 10-1; int v[10]; return 0; Compilatore Linker Array 14
15 Inizializzazione /* OK: pero' il contenuto iniziale dell'array e' indefinito */ int giornimese[12]; /* OK: calcola la lunghezza automaticamente */ int giornimese[] = {31,28,31,30,31,30,31,31,30,31,30,31; /* OK: lunghezza data esplicitamente */ int giornimese[12] = {31,28,31,30,31,30,31,31,30,31,30,31; /* OK: pero' giornimese[2], giornimese[11] sono inizializzati a 0 */ int giornimese[12] = {31,28; /* NON OK: warning: excess elements in array initializer */ int prova[3] = {10, 30, 20, 20; /* NON OK: errore: i variable-length arrays non possono essere inzializzati */ const int n = 3; int prova[n] = {10, 20, 30;.. Array 15
16 Uso Per accedere all'elemento si usano le [] e l'indice (posizione) dell'elemento L'indice deve essere una espressione di tipo int Ricordare che l indice del primo elemento è 0 (zero) /* Cosa fa questo frammento di codice? */ int a[] = {3, 1, 7, 2, 2; int i; for (i=1; i<5; i++) { a[i] = a[i-1] + a[i]; Array 16
17 Gli esseri umani contano partendo da uno I computer contano partendo da zero Array 17
18 Esempi / 1 Dato un array a[n] di int: Azzerare a[] (assegnare zero a tutti gli elementi di a) for (i = 0; i < N; i++) { a[i] = 0; Assegnare 0, 1, 2, agli elementi di a[] for (i = 0; i < N; i++) { a[i] = i; Incrementare di 1 ogni elemento di a[] for (i = 0; i < N; i++) { a[i] = a[i] + 1; Array 18
19 Esempi / 2 Assegnare 1 agli elementi di a[] di indice dispari e 2 a quelli di indice pari for (i = 0; i < N; i++) [ if (i % 2!= 0) { a[i] = 1; else { a[i] = 2;...oppure... for (i = 0; i < N; i++) { a[i] = ( (i % 2!= 0)? 1 : 2 ); Array 19
20 Attenzione... Attenzione alle soluzioni troppo "astute" for (i = 0; i < N; i = i+2) { a[i] = 2; a[i+1] = 1; SBAGLIATO for (i = 0; i < N-1; i = i+2) { a[i] = 2; a[i+1] = 1; SBAGLIATO for (i = 0; i < N; i = i+2) { a[i] = 2; if ( i+1<n ) { a[i+1] = 1; CORRETTO ma contorto... Array 20
21 Esercizi [Facile] Dato un array di interi di lunghezza N 2, determinare i due valori più piccoli Dato un array di interi di lunghezza N 1, determinare se esiste un valore che compare esattamente 3 volte. Dato un array di interi di lunghezza N 1, determinare se l'array è ordinato in senso crescente oppure no Array 21
22 Array bidimensionali (matrici) Dichiarazione usando doppie parentesi quadre double t[13][32] Il primo è il numero di righe, il secondo il numero di colonne Doppio indice t[12][2] Il primo è indice di riga, il secondo di colonna Primo indice (indice di riga) Secondo indice (indice di colonna) t[12][2] Array 22
23 Lavorare su matrici Data una matrice m[10][30] di int, assegnare 1 a tutti gli elementi int m[10][30]; int i, j; for (i = 0; i < 10; i++) { for (j = 0; j < 30; j++) { m[i][j] = 1; Array 23
24 Array multidimensionali Array di array di array di Si usa una coppia di [] per ogni dimensione Es.: double a[10][100][1000]; a[0][0][0] a[9][99][999] Utilità Temperature di tutte le ore double t[13][32][24];... t[12][25][0]... Array 24
25 Array multidimensionali È possibile inizializzare gli array multidimensionali durante la dichiarazione int x[4]={11,12; /* OK, {11,12,0,0 */ int y[4]; /* OK, {?,?,?,? */ int z[] = {3, 5; /* OK, lunghezza 2 */ int m[3][2]={{11,12,{21,22,{31,32; /* OK */ int n[3][2]; /* OK, {{?,?,{?,?,{?,? */ int p[][] = {{1,2, {4,5; /* ERRORE */ int q[][2] = {{1,2, {4,5; /* OK */ Array 25
26 Esempi con matrici Azzerare la riga k-esima di una matrice m[r][c] #define R 20 #define C 30 k int main( void ) { int m[r][c]; int j, k =...; /* */ for (j = 0; j < C; j++) { m[k][j] = 0; return 0; Array 26
27 Esempi con matrici Azzerare la colonna k-esima di una matrice m[r][c] k #define R 20 #define C 30 int main( void ) { int m[r][c]; int i, k =...; /* */ for (i = 0; i < R; i++) { m[i][k] = 0; return 0; Array 27
28 Esempi con matrici (3/3) Porre a 1 gli elementi della diagonale di una matrice m[n][n], e 0 tutti gli altri #define N 30 int main( void ) { int m[n][n]; int i, j; for (i=0; i<n; i++) { for (j=0; j<n; j++) { if (i==j) { m[i][j] = 1; else { m[i][j] = 0; return 0; Array 28
29 Esempi con matrici (3/3) Porre a 1 gli elementi della diagonale di una matrice m[n][n], e 0 tutti gli altri /* soluzione alternativa, usando l'operatore ternario? (forse meno chiara, ma comunque corretta) */ #define N 30 int main( void ) { int m[n][n]; int i, j; for (i=0; i<n; i++) { for (j=0; j<n; j++) { m[i][j] = (i==j? 1 : 0); return 0; Array 29
30 Esercizio Realizzare programmi per porre a 1 gli elementi evidenziati in giallo di matrici m[n][n], 0 tutti gli altri Array 30
31 Funzioni e parametri di tipo array In C si possono passare parametri di tipo array alle funzioni senza specificarne la dimensione Se si modifica il contenuto di un parametro di tipo array viene modificato anche il parametro attuale! Vedremo il motivo nelle successive lezioni In C non è consentito che una funzione restituisca un risultato di tipo array Soluzione: si passa alla funzione un ulteriore parametro di tipo array, che viene riempito con il risultato Array 31
32 Passaggio di parametri di tipo array void f1( int a[5] ); /* OK, dimensione prefissata */ void f2( int a[] ); /* OK, ma devo sapere per altre vie la dimensione di a */ void f3( int a[], int n ); #define C 40 void f4( int v[][c], int r ); void f5( int v[4][3] ); /* OK, dimensioni prefissate */ void f6( int n, int a[n] ); /* OK C99, non ammesso in ANSI C */ Array 32
33 /* iniz-stampa-array.c: inizializza e stampa il contenuto di un array */ #include <stdio.h> #define N 10 Esempio void inizializza(int a[], int n) { int i; for (i=0; i<n; i++) { a[i] = i; void stampa(int a[], int n) { int i; for (i=0; i<n; i++) { printf("%d ", a[i]); printf("\n"); int main( void ) { int v[n]; inizializza(v, N); stampa(v, N); return 0; Array 33
34 E i parametri di tipo matrice? Passare parametri di tipo matrice è un po' più complicato Nell'intestazione della funzione occorre tassativamente indicare il numero di colonne Il numero di righe può restare non specificato Se la funzione deve conoscere il numero di righe, è necessario passare tale informazione mediante un ulteriore parametro intero, o in qualche altro modo Array 34
35 /* parametro-matrice.c: dimostrazione dell'uso di una matrice come parametro di una funzione */ #include <stdio.h> #define R 3 #define C 4 void inizializza(int m[][c], int r) { int i, j, k = 0; for (i = 0; i < r; i++) { for (j = 0; j < C; j++) { m[i][j] = k++; void stampa(int m[][c], int r) { int i, j; for (i = 0; i < r; i++) { for (j = 0; j < C; j++) { printf("%d ", m[i][j]); printf("\n"); int main( void ) { int matrice[r][c]; inizializza(matrice, R); stampa(matrice, R); return 0; Array 35
36 Quindi, riassumendo I parametri di tipo predefinito (int, float, double, char) vengono passati per valore Le modifiche non si riflettono sul parametro attuale I parametri di tipo array e matrice sono passati per riferimento Modifiche su parametro formale si riflettono sul parametro attuale Array 36
Linguaggio C: Array Valeria Cardellini
Linguaggio C: Array Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Array in C q Dichiarazione
DettagliAlgoritmi su Array. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna
Algoritmi su Array Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Algoritmi su Array 2 Ringraziamenti prof. Stefano Mizzaro,
DettagliAlgoritmi su Array. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna
Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Ringraziamenti prof. Stefano Mizzaro, Università di Udine http://users.dimi.uniud.it/~stefano.mizzaro/
Dettaglidefinisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)!
" Non ci sono vincoli sul tipo degli elementi di un vettore " Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere (allocata
DettagliTipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna
Tipi e Valori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Tipi e Valori 2 / 26 Ringraziamenti prof. Mirko Viroli, Università
DettagliNon ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di
ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere
DettagliARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori
ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere
DettagliIntroduzione al C. Unità 7 Array. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 7 Array S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Sommario Unità
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
DettagliProgrammazione strutturata IV e Gli array. Dove siamo. Un esercizio. Oggi. Schema 1. Prima idea. 7. Programmazione strutturata 4 & Array
Programmazione strutturata IV e Gli array Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 7 18/10/2013
DettagliARRAY E TYPEDEF. A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C
A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C Es typedef ; typedef char stringa[10]; dichiara che il tipo stringa è un array
Dettagli7. Programmazione strutturata 4 & Array. ! No lezione il marzo. ! Lab.? ! Esempio. ! Introduzione agli array
Programmazione strutturata IV e Gli array Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 7 16/03/2015
DettagliIl linguaggio C Puntatori
Il linguaggio C Puntatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - puntatori 2 Ringraziamenti Questi
DettagliConcetti chiave. Gli Array o Vettori. Array Elementi dell array Indici e lunghezza dell array Inizializzazione di vettori Array multidimensionali
Concetti chiave Gli Array o Vettori Array Elementi dell array Indici e lunghezza dell array Inizializzazione di vettori Array multidimensionali Fino ad ora abbiamo utilizzato variabili scalari, ossia riferite
DettagliTipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna
Tipi e Valori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - Tipi e Valori 2 Ringraziamenti prof. Mirko Viroli,
DettagliI tipi strutturati e i record in C++
I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi
DettagliArray. Aggragati di variabili omogenee...
Array Aggragati di variabili omogenee... Cosa è un array È un insieme di variabili omogenee identificato da un indice, ad esempio Se devo leggere 1 numeri dallo standard input e memorizzarli all'interno
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 / 34 Ringraziamenti prof. Mirko Viroli, Università
DettagliGli array. slides credit M. Poneti
Gli array slides credit M. Poneti Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome e lo
DettagliIl linguaggio C Puntatori
Il linguaggio C Puntatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Copyright Mirko Viroli Copyright 2016 2018 Moreno
DettagliIl sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.
Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme
DettagliIl linguaggio C Strutture
Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C -- Strutture 2 Ringraziamenti Questi
DettagliMatrici. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliArray di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa Array di array A. Miola Febbraio 8 http://www.dia.uniroma.it/~java/fondinf/ Array di array Contenuti Array bidimensionali creazione
DettagliGli array. impone al programma, in fase di esecuzione, di riservare dello spazio in memoria per 10 variabili di tipo int
Gli array Gli array rappresentano una modalità molto compatta per accedere ad un gruppo di variabili; tale gruppo è identificato dal nome dell'array; i tipi delle variabili appartenenti al gruppo devono
DettagliArray. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliIntroduzione al C. Lez. 2. Funzioni e Puntatori
Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se è solo
DettagliTipi derivati. Strutture Matrici typedef enum
Tipi derivati Strutture Matrici typedef enum Le strutture Una struttura, o struct, è un tipo di dato derivato che permette di aggregare un insieme di elementi, detti campi, all'interno di un unica entità
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Una funzione per i numeri di Fibonacci
DettagliMatrici (array bidimensionali)
Matrici (array bidimensionali) Un array bidimensionale, anche detto matrice, è una variabile strutturata tale che: gli elementi sono tutti dello stesso tipo e il meccanismo di accesso (diretto) ai suoi
DettagliFondamenti di Informatica 12. Linguaggio C -4
Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati
DettagliLezione 6: Array e puntatori
Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci
Dettagliarray: vettori, matrici e stringhe
array: vettori, matrici e stringhe Vettori Un vettore (array) è una sequenza di variabili tutte dello stesso tipo che occupano locazioni di memoria contigue. Dichiarazione di un vettore di oggetti del
DettagliIl linguaggio C Strutture
Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Copyright Mirko Viroli Copyright 2017, 2018 Moreno
DettagliLinguaggio C: strutture di controllo
Linguaggio C: strutture di controllo Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C: strutture di controllo
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliGli Array. Dichiarazione di un array
Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato
DettagliStruttura dei programmi e Variabili
Linguaggio C Struttura dei programmi e Variabili 1 La struttura generale dei programmi! Struttura del programma: Direttive Funzioni Dichiarazioni Istruzioni Di assegnamento direttive Di ingresso e uscita
DettagliArray. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere
DettagliI puntatori /2. Ad esempio. // inizio codice. #include <stdio.h> void mostra(int); int main() {int a = 10; mostra(a); return 0;}
I puntatori /2 In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta il parametro stesso nel
DettagliIntroduzione al C. Lez. 2 Funzioni e Puntatori
Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se e solo
DettagliIntroduzione al linguaggio C Funzioni
Introduzione al linguaggio C Funzioni Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati
DettagliArray. Unità 7. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliStrutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.
Operatori di incremento e decremento ++ e -- Esempi y=x++ il contenuto della variabile x viene inizialmente usata per l assegnazione y, e solo dopo incrementata y=--x il contenuto della variabile x viene
DettagliDichiarazioni e tipi predefiniti nel linguaggio C
Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:
DettagliPROGRAMMAZIONE AVANZATA JAVA E C
PROGRAMMAZIONE AVANZATA JAVA E C Massimiliano Redolfi Lezione 3: C puntatori, funzioni, array multidim Voglio realizzare una funzione che dato un array di interi ne restituisca la somma come fare? Prima
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.8 Matrici Antonio Arena antonio.arena@ing.unipi.it Fondamenti di Informatica - Esercitazione n.8 2 Matrici In C++ viene trattata come array multi-dimesionale.
DettagliPuntatori e array. Violetta Lonati
Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array
DettagliLinguaggio C. Vettori, Puntatori e Funzioni Stringhe. Università degli Studi di Brescia. Prof. Massimiliano Giacomin
Linguaggio C Vettori, Puntatori e Funzioni Stringhe Università degli Studi di Brescia Prof. Massimiliano Giacomin SCHEMA DELLA LEZIONE RELAZIONE TRA VETTORI E PUNTATORI (e le stringhe letterali come caso
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Array, matrici. Marco D. Santambrogio Ver. aggiornata al 21 Marzo 2013
Array, matrici Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2013 WAT? Questa volta non ce ne sono WAT 2 Obiettivi Gli array, questi sconosciuti Gli array in C Array n-dimensionali
DettagliFunzioni. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna
Funzioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Funzioni 2 Ringraziamenti prof. Stefano Mizzaro, Università di Udine
DettagliInformatica (A-K) 14. Linguaggio C -4
Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Informatica (A-K) 14. Linguaggio C -4 Strutture Dati tipiche
DettagliArray multidimensionali e stringhe
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Array Anno Accademico 2010/2011 Francesco Tortorella Gli array In alcuni casi, l informazione che bisogna elaborare consiste di un aggregazione di valori, piuttosto
DettagliUnità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.
Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;
DettagliRICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio
RICORSIONE, PUNTATORI E ARRAY Quarto Laboratorio 16 DICEMBRE 2011 SCADENZA TERZA ESERCITAZIONE FUNZIONI RICORSIVE ESERCIZIO Scrivere una funzione ricorsiva che, assegnati due interi N1 ed N2, restituisca
DettagliI Vettori (Array) Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
I Vettori (Array) Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Variabili I tipi di variabili che abbiamo usato finora hanno la caratteristica comune di non essere strutturate: ogni
DettagliLaboratorio di informatica Ingegneria meccanica
Interi in complemento a 2 () Laboratorio di informatica Ingegneria meccanica Lezione 5 29 ottobre 2007 Con N bit sono rappresentabili tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit,
DettagliParametri by reference. Funzioni. Passaggio dei parametri. Parametri by reference. Soluzione. Problemi
Funzioni Introduzione Operatori & e * Passaggio by reference Passaggio di vettori Esercizio strcpy 2 Passaggio dei parametri Il linguaggio C prevede il passaggio di parametri by value Il chiamato non può
DettagliCostruiamo un'immagine o qualcosa di simile.
Costruiamo un'immagine...... o qualcosa di simile. Se consideriamo la C che si trova in fondo a destra, ci accorgiamo che un'immagine non è altro che una tabella di valori. Nel caso in cui si consideri
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Puntatori a funzioni 1 Funzioni che restituiscono puntatori Il valore di ritorno restituito da una funzione può essere di qualsiasi tipo, compreso il tipo puntatore.
DettagliCapitolo 11. Puntatori
1 Capitolo 11 Puntatori 2 Variabili puntatore Cerchiamo di capire come le informazioni sono memorizzate nella memoria del computer La memoria è un sequenza di byte Ogni byte è composto da 8 bit: Ogni byte
DettagliIntroduzione al linguaggio C
Linguaggio C Introduzione al linguaggio C Sistemi di sviluppo integrati Noti anche come IDE: Integrated Development Environment Un pacchetto software che permette di scrivere, preprocessare, compilare,
DettagliLaboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2007/2008
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2007/2008 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 24/04/08 Nota Questi lucidi sono tratti
DettagliPuntatori : idea di base
Puntatori 2 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo dell'area di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50; /* una var intera */ Puntatori
DettagliMatrici. Unità 7. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene
DettagliPuntatori : idea di base
Puntatori 2 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo dell'area di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50; /* una var intera */ Puntatori
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018-2019 Programmazione Lezione 10 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Abbiamo
DettagliEsercizio 1: media di numeri reali (uso funzioni e struct)
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 5 Esercitazione: 2 novembre 2005 Esercizi sulle funzioni Esercizio 1: media di numeri reali (uso funzioni e struct) Le
DettagliI Dati Strutturati ed il Linguaggio C
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Dati Strutturati Esigenze Vettori
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene
DettagliLaboratorio di Matematica e Informatica 1
Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliPassaggio dei parametri
Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment
DettagliFondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
DettagliEsercizio 1: calcolo insieme intersezione
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 3 Esercitazione: 19 ottobre 2005 Esercizi su array e matrici Esercizio 1: calcolo insieme intersezione Problema: *******************************************************************
DettagliLinguaggio C: strutture di controllo
Linguaggio C: strutture di controllo Libro cap. 3 e 4 Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof.
DettagliCorso di Programmazione I
Corso di Programmazione I I puntatori in C e C++ I puntatori in C Il C prevede puntatori a funzione e puntatori a dati di qualsiasi natura, semplici o strutturati. In particolare il puntatore viene utilizzato
DettagliSi possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).
Operatori di incremento e decremento: ++ e -- ++ e -- sono operatori unari con la stessa priorità del meno unario e associatività da destra a sinistra. Si possono applicare solo a variabili (di tipi interi,
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene
DettagliIntroduzione al C Lez. 4. Allocazione Dinamica della memoria
Introduzione al C Lez. 4 Allocazione Dinamica della memoria Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso l allocazione esplicita di blocchi di memoria
DettagliIntroduzione al C Lez. 4
Introduzione al C Lez. 4 Allocazione Dinamica della memoria http://www.di.unipi.it/~rossano/algo1/lez4.pdf Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso
DettagliEsercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
DettagliLe strutture /2. Iniziamo ora a progettare il codice per la gestione del database. Quali sono le funzionalità da implementare?
Le strutture /2 Iniziamo ora a progettare il codice per la gestione del database. Quali sono le funzionalità da implementare? Per ora è possibile gestire l'elenco dei libri (e quindi delle strutture) mediante
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare
DettagliArray e puntatori in C
Array e puntatori in C Diapositive adattate dalle omonime create dalla Dottoressa di Ricerca Giovanna Melideo per il corso di Laboratorio di Algoritmi e Strutture Dati 10/05/2005 LP2-04/05 - Appunti di
DettagliArray in C. Emilio Di Giacomo
Array in C Emilio Di Giacomo Limite delle variabili L utilizzo di variabili semplici come quelle viste fino ad ora non è sufficiente per risolvere problemi in cui si debbano gestire collezioni di dati
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018 2019 Programmazione Lezione 8 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Informazioni Docente di supporto
Dettagli