Fondamenti di Informatica (lettere

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Informatica (lettere"

Transcript

1 Strutture Dati Fondamenti di Informatica (lettere J-Z) C++: Array Prof. Francesco Lo Presti Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato a funzionale a particolari compiti Strutture Dati in C++ Array Strutture Classi Vector Code Liste Stacks Array 2 Array (Vettori) Array: : collezione finita di N variabili dello stesso tipo, ognuna identificata da in indice compreso tra e N-1N N dimensione dell array Due tipi di array in C++ array: C-style vector: : classe Standard Template Library Nel primo modulo studieremo il primo tipo di array Array (Vettori) Le variabili di un array (elementi) vengono identificate da un nome (identificatore)) a cui va aggiunto un indice tra parentesi quadre Indice compreso fra e N-1N I vari elementi sono memorizzati in locazioni successive di memoria Il numero di elementi di un array è fisso v[] v[1] v[2] array v v[n-1] Array 3 Array 4

2 Dichiarazione di un Array Sassi nometipo nomearray[espressione espressione costante]; Definisce l arrayl nomearray di tipo nometipo con numero di elementi pari ad espressione costante Dichiarazione di un Array E possibile inizializzare i valori di un array in fase di dichiarazione test[5]=-3,67,23,,5; omettendo,, volendo, la dimensione test[ ]=-3,67,23,,5; elenco[1]; double temperature[1]; Dimensione di un array: : numero di byte che l arrayl occupa in memoria numero di elementi*numero di byte per ciascun elemento Array 5 Array 6 Elementi di un Array Gli elementi di un array possono essere usati come una qualsiasi variabile del tipo dell array elenco[5]=3; elenco[9]; cin cin >> >> elenco[7]; elenco[]=elenco[1]-elenco[5]; Accesso agli Elementi di un Array L indice di un array può essere una espr.. costante era elenco[8]; o una qualsiasi espressione era for(i=;i<1;i++) elenco[i]=i*i; elenco[i]; x; x; elenco[x]=elenco[x+1]; Array 7 Array 8

3 Array: Bound Checking In C++ non è previsto nessun meccanismo di verifica che un indice di un array cada all erno dell ervallo [,,N,N-1] E possibile usare indici negativi o maggiori di N-1N si accede alle celle di memoria che precedono o seguono l area di memoria dove è allocato l arrayl elenco[-5]; elenco[11]=4; Corruzione dello spazio di memoria Crash del programma DA EVITARE!!! Lo considero un errore Array 9 Trovare il valore minimo di un array const const DIM=5; A[DIM]; minimo; // // inserimento dati datiin in A i; i; minimo=a[]; for(i=1;i<dim;i++) if(minimo>a[i]) minimo=a[i]; Il Il minimo minimo è minimo; Array 1 Array: : Assegnamento Per copiare i valori da un array ad un altro si assegnano i valori elemento per elemento Array: : Dimensione Fisica vs. Logica Un array è una collezione finita di N variabili (locazioni di memoria) dello stesso tipo const const DIM=5; A[DIM], B[DIM]; // // inserimento dati datiin in A i; i; for(i=;i<dim;i++) B[i]=A[i]; Non significa che si debbano sempre usare tutte le variabili disponibili La dimensione logica dell array (quanti elementi sono effettivamente utilizzati) può essere inferiore alla sua dimensione fisica La porzione dell array effettivamente utilizzata dipende dai dati di ingresso. Array 11 Array 12

4 Scrivere un programma che: 1. legge da tastiera delle rilevazioni di temperatura in gradi Kelvin; 2. memorizza i valori in un array 3. calcola la media dei valori inseriti Ogni serie di dati consta al più di 1 valori Si inserisce il valore -11 per indicare che la serie di valori è terminata Array 13 #include<iostream> #include<iostream> using using namespace namespace std; std; main main ( ( ) ) const const DIM=1; DIM=1; temp[dim]; temp[dim]; indice=; indice=; double double media; media; bool bool finito=false; finito=false; do do Inserire Inserire temperatura temperatura o o -1\n ; -1\n ; cin cin >> >> temp[indice]; temp[indice]; finito=temp[indice]==-1; finito=temp[indice]==-1; if( if(!finito)!finito) totale+=temp[indice]; totale+=temp[indice]; indice++; indice++; while(!finito); while(!finito); segue segue if(indice>) if(indice>) media=static_cast<double>(totale)/contatore; media=static_cast<double>(totale)/contatore; La La temperatura temperatura media media e e media; media; \n ; \n ; else else Non Non e e stato stato inserito inserito alcun alcun valore valore \n ; \n ; return return ; ; Array 14 Array come Parametri Gli array possono essere usati come parametri di una funzione Gli array sono sempre passati per riferimento Retaggio del C. L argomento L verrà ripreso in seguito Sassi Dichiarazione tipo tipoarray =tipo =tipo [] [] Definizione double media_array( [], [], ) ) parametro formale array array =tipo =tipo parametro[] all erno del corpo della funzione, i parametri formali di tipo array vengono trattati come array Array 15 double media_array( a[ a[ ], ], numero) // // Calcola al al media degli elementi // // Assume che cheilil numero di di elementi sia sia > > totale=; for( i=; i=; i<numero; i++) i++) totale+=a[i]; return (double) totale/numero; size fornisce la dimensione logica dell array array,, non altrimenti nota all erno dell array quanti sono gli elementi effettivamente utilizzati Array 16

5 Array come Parametri Array come Parametri Chiamata parametro attuale array array = nome nomearray. Vedremo in seguito il caso generale const DIM=1; temp[dim]; // // riempire parte di di temp con con valori if(indice>) media=media_array(temp,indice); Al momento della chiamata il nome del parametro formale per riferimento diventa un sinonimo (alias) del parametro attuale facente riferimento allo stesso array non si crea un nuovo array ma un riferimento ad una array esistente sicuramente più efficiente Modifica degli elementi dell array parametro formale all erno della funzione rappresenta, in realtà,, una modifica agli elementi dell array parametro attuale Array 17 Array 18 Array come Parametri Se gli elementi della funzione non devono essere modificati si può usare const nella specifica dei parametri formali double media_array(const a[ a[ ], ], numero) // // Calcola al al media degli elementi // // Assume che cheilil numero di di elementi sia sia > > totale=; for( i=; i=; i<numero; i++) i++) totale+=a[i]; return (double) totale/numero; Array 19 Array come Tipo Restituito Non è possibile usare un array come tipo restituito di una funzione double[ ]] funzione() NO! Soluzioni 1. Passare un array per riferimento 2. Restituire un puntatore ad un array (non locale) verrà visto in seguito 3. Usare classe vector verrà visto in seguito Array 2

6 Elementi di un Array come Parametro Funzione che dato un array calcola il minimo ed il massimo Il minimo ed il massimo vengono restituiti tramite un array a due elementi void void min_max(const min_max(const x[ x[ ], ], l, l, y[ y[ ]) ]) main main (()) const const DIM=1; min, max; max; a[dim], m[2], m[2], indice; // // calcola calcolaminimo minimoe e massimo massimo indice; // // riempire riempireparte parte di di a a con con valori // // e e memorizzali memorizzaliin in min min e e max max valori y[]=min; // // indice indicecontiene contieneilil numero numerodi dielementi y[]=min; y[1]=max; // // di dia a utilizzati y[1]=max; utilizzati min_max(a,indice,m); segue Array 21 segue Gli elementi di un array possono essere passati come parametro sia per valore che per riferimento come variabili qualsiasi i=; i=; x=max(temp[2],temp[5]+temp[7]); swap(temp[i],temp[i+1]); Array 22 Array di Caratteri Array di Caratteri C era una volta Array di caratteri che termina con il carattere \ - come unico modo per rappresentare una stringa \ carattere null o terminatore zero Manipolazione stringhe realizzata manipolando array di tipo char char char saluto[5]= C, i, a, o, \ ; char char saluto[5]= Ciao ; char char saluto[ ]= C, i, a, o, \ ; Array 23 char char s[1]; può memorizzare una stringa fino a 1 caratteri incluso il carattere null C i a o \ s[] s[1] s[2] s[3] s[4] s[5] s[6] s[7] s[8] s[9] Gli elementi di un array di tipo char possono essere manipolati come una variabile char s[2]= r ; s[3]; cin cin >> >> s[1]; s[1]; Array 24

7 Array di Caratteri A differenza degli altri tipi di array è possibile stampare un array di caratteri (ovvero la stringa corrispondente) char char saluto[5]= Ciao ; saluto come si può leggere da tastiera char char saluto[2]; cin cin >> >> saluto Attenzione: : la stringa inserita non deve eccedere la dimensione dell array array!! Array 25 Array di Caratteri e Stringhe Gli oggetti della classe string possono essere visti come array di caratteri di dimensione grande a piacere i singoli caratteri possono essere modificati come gli elementi di un array di tipo char string saluto= Ciao ; saluto[]= M ; saluto; La classe string fornisce una rappresentazione più astratta di una stringa è più facile lavorare con oggetti della classe string che con array di caratteri Array 26 Array Multidimensionali Lunghezza di una stringa 1. Stringa implementata con un oggetto della Classe string string saluto; i=saluto.length( ); ); 2. stringa implementata con un array di caratteri char char saluto[5]; i=; i=; while(saluto[i]!= \ ) i++; i++; Array 27 E possibile dichiarare array con più di una dimensione Sassi nometipo nomearray[dime1] ] [[dime2] [dimen]; Array a 2 dimensioni vengono solitamente detti matrici mat // // dichiarare una unamatrice //di //di 1x2 elementi double mat[1][2]; Array 28

8 Array Multidimensionali Per accedere all elemento che si trova nella riga i e nella colonna j si utilizza la notazione mat nomearray[i] ] [j]; [j]; mat[1][2]; Stesso principio si applica ad array a più di 2 dimensioni mat[1][2] 1 9 Memorizzazione Gli array multidimensionali sono memorizzati per righe in locazioni contigue mat mat[1][2] mat[][] mat[][1] mat[][19] mat[9][] mat[9][1] mat[9][19] memoria riga riga 9 Array 29 Array 3 Inizializzazione Gli array multidimensionali possono essere inizializzati con una lista di valori di inizializzazione racchiusi tra parentesi graffe nome_tipo nomearray[dim1][dim2]=riga dim2]= ]=riga,,riga 1, 11,riga dim1-1; a[4][4]=1,,,,,1,,, a=,,1,,,,,1; Elementi di un Array Multidimensionale Gli elementi di un array multidimensionale possono essere usati come una qualsiasi variabile del tipo dell array a[2][3]=3; a[2][]; cin cin >> >> a[][]; a[3][3]=a[1][3]-a[][2]; 3 1 Array 31 Array 32

9 Accesso agli Elementi di un Array Multidimensionale Gli indicii di un array mult.. possono essere espr. costanti ere a[2][3]; o una qualsiasi espressione era for(i=;i<1;i++) a[][i]=i*i; a[][i]; x; x; a[1][x]=a[][x+1]; Impostare tutti gli elementi di un array ad 1 const RIGHE=5, COLONNE=2; a[righe][colonne]; i,j; i,j; for(i=;i<righe;i++) for(j=; j<colonne; j++) j++) a[i][j]=1; Array 33 Array 34 Memorizzare la Tavola Pitagorica const RIGHE=1, COLONNE=1; a[righe][colonne]; i,j; i,j; for(i=;i<righe;i++) for(j=; j<colonne; j++) j++) a[i][j]=(i+1)*(j+1); Modificare gli elementi di una riga Impostare gli elementi della riga 3 con il relativo numero di colonna const RIGHE=5, COLONNE=2; a[righe][colonne]; j; j; for(j=; j<colonne; j++) j++) a[3][j]=j; Array 35 Array 36

10 Modificare gli elementi di una colonna Copiare gli elementi della colonna 3 sulla colonna const RIGHE=5, COLONNE=2; a[righe][colonne]; i; i; for(i=; i<righe; i++) i++) a[i][]=a[i][3]; Array Multidimensionali come Parametri Nel caso di passaggio di array multidimensionali nella dichiarazione bisogna specificare 1. Tutte le dimensioni void void stampa( mat[nrighe][ncolonne]) i,j; i,j; for(i=; i<nrighe; i++) i++) for(j=; j<ncolonne; j++) j++) setw(1) mat[i][j]; \n ; \n ; Array 37 Array 38 Array Multidimensionali come Parametri : Prodotto Matrici Quadrate 2. tutte le dimensioni dalla seconda in poi nel caso di matrici il numero di colonne è essenziale perché il compilatore sappia come accedere agli elementi in memoria void void stampa( mat[ mat[ ][NCOLONNE], n) n) i,j; i,j; for(i=; i<n; i<n; i++) i++) for(j=; j<ncolonne; j++) j++) setw(1) mat[i][j]; \n ; \n ; Array 39 const const N=5; void void prodotto(double prodotto(double [[][N], ][N], double double [[ ][N], ][N], double double [[][N]); ][N]); main main (()) double double A[N][N]; A[N][N]; double double B[N][N]; B[N][N]; double double C[N][N]; C[N][N]; // // inserire inseriredati datiin in A, A, B prodotto(a,b,c); prodotto(a,b,c); // // C=AxB C=AxB void void prodotto(double prodotto(doublex[ X[ ][N], ][N], double double Y[ Y[ ][N], ][N], double double Z[ Z[ ][N]); ][N]); i,j,k; i,j,k; double double somma; somma; for(i=; for(i=; i<n; i<n; i++) i++) for(j=; for(j=; j<n; j<n; j++) j++) somma=; somma=; for(k=;k<n; for(k=;k<n; k++) k++) somma+=x[i][k]*y[k][j]; Z[i][j]=somma; Z[i][j]=somma; Array 4

11 Ordinamento Ordinamento Una delle operazioni più comune nell elaborazione elaborazione dati Problema: Data una sequenza di elementi a a 1 a n-1 a i eri, double,, stringhe, e un relazione di ordinamento totale tra gli elementi trovare una permutazione degli indici j, j 1,,, j n-1 tale che a j a j1 a jn-1 è ordinata, ovvero tale che a j a j1 a j2 a jn-1 Array 41 Nostra formulazione Problema: Dato un array di, double,, stringhe, etc. a[] a[1] a[2] a[n-1] riorganizzare i valori dell array in modo tale che al termine gli elementi rispettino una relazione di ordinamento (non decrescente) a[] a[1] a[2] a[n-1] eri, double: : crescente, non decrescente, stringhe: lessicografico (del dizionario) altro: da definire volta per volta Array 42 Ordinamento Ordinamento: Bubblesort 34,12,78,9,4,2,45,23,12,1,21 Algoritmo di diordinamento 1,2,4,12,12,21,23,34,45,78,9 Esistono diversi algoritmi di ordinamento Bubblesort, Insertion sort, Quicksort, Mergesort, Heapsort, etc Noi vedremo uno dei più sempici: Bubblesort Ordinamento a bolle Array 43 Si scandisce la lista di elementi confrontando coppie di elementi successivi a[] <-> < > a[1] a[1] <-> < > a[2] a[n-2] <-> < > a[n-1] Per ogni coppia: se i due elementi non sono in ordine (a[i]>a[i+1]) scambiare gli elementi Ripetere fanto che si effettua almeno uno scambio al più n ripetizioni pass 3 pass 2 pass 1 Array 44

12 Bubblesort Ricerca void void bubblesort( a[ a[ ], ], n) n) i; i; bool boolswapped; do do swapped=false; for(i=; i<n-1; i++) i++) if(a[i]>a[i+1]) swap(a[i],a[i+1]); swapped=true; while(swapped); Array 45 Array 46 Scrivere una funzione che dato un array di eri a ed un numero x restituisce vero o falso a seconda che x occorra o meno in a bool boolricerca(a[ a[ ], ], n, n, x) bool booltrovato=false; i=; i=; while(i<n and and!trovato) if(a[i]==x) trovato=true; return return trovato; Ricerca Ricerca Binaria L algoritmo di ricerca precedente ha complessità lineare il numero di operazioni richieste è in media proporzionale alla metà del numero di elementi dell array Se il vettore è ordinato, è l algoritmo di ricerca può essere notevolmente migliorato Algoritmo di Ricerca Binaria il numero di operazioni richieste è in media proporzionale al logaritmo (in base 2) del numero di elementi dell array numero di elementi N=1.. N/2=5. log 2 N 2 Array 47 Si assuma che l arrayl sia ordinato in senso non decrescente a[] a[1] [1] a[n] Algoritmo 1. first=, last=n-1, med=(first+last first+last)/2 2. Si confronta l elemento l cercato x con l elemento l mediano del vettore a[med med] 3. Se x=a[med med], ho terminato 4. Altrimenti, se il vettore ha almeno due elementi se x<a[med med] ] si ripete la ricerca nella prima metà del vettore (da a[] a a[med-1]) aggiornare last e med,, andare al passo 2 se x>a[med med] ] si ripete la ricerca nella seconda metà del vettore (da a[med+1] a a[last last]) aggiornare first e med,, andare al passo 2 Array 48

13 Ricerca Binaria Strutture bool boolricerca_binaria( a[ a[ ], ], n, n, x) x) bool booltrovato=false; first=, last=n-1, med=(first+last)/2; while(first<=last && &&!trovato) if(a[med]==x) trovato=true; else else if(x<a[med] )) last=med-1; else else first=med+1; med=(first+last)/2; return return trovato; è possibile scrivere l algoritmo l in forma ricorsiva Array 49 Una struttura è una collezione finita di variabili dette campi - non necessariamente dello stesso tipo, ognuna identificata da un nome presente anche nel C Sassi struct nome_struttura tipo1 tipo1 nome_variabile1; tipon tiponnome_variabilen; Definisce un nuovo tipo di dato. Differentemente da una classe tutte le variabili sono pubbliche non ci sono funzioni membro associate ad una struttura Array 5 Archivio libri di una biblioteca Un libro è caratterizzato da: titolo, autore, numero copie, ci sono copie disponibili? struct structdatilibro Definizione Struttura string string titolo, titolo, autore; num_copie; bool boolprestito; ; ; Dichiarazioni variabili Struttura datilibro libro1, libro1, libro2, libro2, libri[2]; datilibro libro3= Divina Commedia, Dante, 3, 3, true; true; Strutture Una volta definita una variabile struttura, si accede ai singoli campi mediante la notazione punto I campi di una struttura possono essere usati come qualunque variabile dello stesso tipo libro1.num_copie=2; libro1.titolo; libro2.nun_copie++; Array 51 Array 52

14 Strutture Una volta definito, un tipo dati struttura si comporta come un qualsiasi altro tipo di dati (che non sia un tipo array di ) In particolare, è possibile: 1. assegnare una variabile struttura ad un altra 2. che una funzione restituisca una struttura 3. passare strutture sia per valore che per riferimento Assegnare una variabile struttura ad un altra datilibro libro1= I Promessi Sposi, Sposi, Manzoni, 2, 2, true; true; datilibro libro2=libro1; che una funzione restituisca una struttura datilibro funzione() Array 53 Array 54 passare strutture sia per valore che per riferimento void void stampa_libro(datilibro x) x) Autore: x.autore \n \n Titolo: x.titolo \n ; \n ; Copie CopieDisponibili: x.num_copie Prestito: x.prestito \n ; \n ; void void aggiungi copia(datilibro& x) x) x.num_copie++; Array 55

Laboratorio di Informatica

Laboratorio di Informatica Strutture Dati in C++ Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Laboratorio di Informatica 4. Array e strutture in C++ Strutture

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

ARRAY E TYPEDEF. A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C

ARRAY 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

Dettagli

Il linguaggio C. Puntatori e dintorni

Il 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;

Dettagli

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non 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

Dettagli

ESERCIZIO: Lettura/Scrittura Array

ESERCIZIO: Lettura/Scrittura Array ESERCIZIO: Lettura/Scrittura Array Non è possibile leggere/scrivere un intero vettore con un unica operazione (a parte il caso particolare delle stringhe); occorre leggere/scrivere ognuno dei suoi componenti

Dettagli

Anche se due variabili vettore sono dello stesso tipo, NON è possibile l assegnamento diretto:

Anche se due variabili vettore sono dello stesso tipo, NON è possibile l assegnamento diretto: ESERCIZIO: Lettura/Scrittura Array Non è possibile leggere/scrivere un intero vettore con un unica operazione (a parte il caso particolare delle stringhe); occorre leggere/scrivere ognuno dei suoi componenti

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Array e puntatori in C

Array 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

Dettagli

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono

Dettagli

C: panoramica. Violetta Lonati

C: 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

Dettagli

Array k-dimensionali

Array k-dimensionali Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per

Dettagli

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano Scope delle variabili e passaggio parametri Danilo Ardagna Politecnico di Milano 1-4-2014 Introduzione! Con le funzioni è stato introdotto un meccanismo per definire dei piccoli programmi all interno di

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Strutture di dati Laboratorio di Informatica 5. Strutture / Array di oggetti / Pila&Coda in C++ Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna

Dettagli

Lezione 8 Struct e qsort

Lezione 8 Struct e qsort Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

La classe std::vector della Standard Template Library del C++

La classe std::vector della Standard Template Library del C++ La classe std::vector della Standard Template Library del C++ Alberto Garfagnini Università degli studi di Padova 23 Ottobre 2013 Programmazione generica in C++ : i Template I templates sono probabilmente

Dettagli

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate

Dettagli

Array multidimensionali e stringhe

Array 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

Dettagli

Quicksort e qsort() Alessio Orlandi. 28 marzo 2010

Quicksort e qsort() Alessio Orlandi. 28 marzo 2010 Quicksort e qsort() Alessio Orlandi 28 marzo 2010 Intro Quicksort è l algoritmo di ordinamento più implementato, insieme con Mergesort. Tutte le librerie standard UNIX ne prevedono una implementazione.

Dettagli

Esercizi C su array e matrici

Esercizi C su array e matrici Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]

Dettagli

array: strumento per costruire rappresentazioni di tipi strutturati omogenei

array: strumento per costruire rappresentazioni di tipi strutturati omogenei array: strumento per costruire rappresentazioni di tipi strutturati omogenei ogni elemento è un aggregato di componenti elementari tutti dello stesso tipo (caso tipico: sequenze di numeri, nomi, ) ogni

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o

Dettagli

Linguaggio C - Array. Array: tipo nome_array[num_elementi]

Linguaggio C - Array. Array: tipo nome_array[num_elementi] Linguaggio C - Array Array: Gli array o vettori sono delle strutture dati in grado di contenere un insieme di valori tutti dello stesso tipo. Un array lo possiamo immaginare come un contenitore suddiviso

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi 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

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array e funzioni 2. Array e funzioni ricorsive 3. Array e confronto di array 2 Esercizio 1 Creare un programma che legga da

Dettagli

Le 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? 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

Dettagli

Multidimensionali. Array Multidimensionali. Tipi di array. Matrice: array bidimensionale. Array multidimensionale. Dichiarazione di una matrice

Multidimensionali. Array Multidimensionali. Tipi di array. Matrice: array bidimensionale. Array multidimensionale. Dichiarazione di una matrice Tipi di array Array Multidimensionali Antonella Santone Monodimensionali (vettore) Multidimensionali Array multidimensionale Un array multidimensionale è un array, i cui elementi sono a loro volta degli

Dettagli

I Vettori (Array) Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

I 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

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Algoritmi di ordinamento Gli ordinamenti interni sono fatti su sequenze in memoria centrale Fondamenti di Informatica 18. Algoritmi di ordinamento in C++ Gli ordinamenti esterni sono fatti su sequenze

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:

Dettagli

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore

Dettagli

Unità 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. 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;

Dettagli

Gli Array. Dichiarazione di un array

Gli 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

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

Esercizio 1: funzione con valore di ritorno di tipo puntatore Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio

Dettagli

Complessità degli algoritmi. Obiettivi: Calcolare (valutare) la complessità di un algoritmo Confrontare algoritmi risolutivi del medesimo problema

Complessità degli algoritmi. Obiettivi: Calcolare (valutare) la complessità di un algoritmo Confrontare algoritmi risolutivi del medesimo problema Complessità degli algoritmi Obiettivi: Calcolare (valutare) la complessità di un algoritmo Confrontare algoritmi risolutivi del medesimo problema 1 Algoritmo Sequenza logica di istruzioni elementari (univocamente

Dettagli

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Introduzione alla sintassi C++ Array a una dimensione Array a due dimensioni Array multidimensionali Funzioni standard della libreria

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti

Dettagli

Programmazione I - Laboratorio

Programmazione 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

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Strutture di dati Fondamenti di Informatica 11. Linguaggio C - Strutture / Tabelle / Puntatori Strutture /Tabelle Corso di Laurea in Ingegneria Informatica e dell Automazione A.A. 2012-2013 2 Semestre

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. 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

Dettagli

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde vers.0 in lavorazione Docente SAFFI FABIO Contenuti Struttura del file sorgente...2 Organizzazione della directory di lavoro...2 Esercizi sulle funzione

Dettagli

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti

Dettagli

Parametri by reference. Funzioni. Passaggio dei parametri. Parametri by reference. Soluzione. Problemi

Parametri 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ò

Dettagli

Il linguaggio C Strutture

Il 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

Dettagli

LE STRUTTURE DATI PARTE 2: RECORD. Prof. G. Ciaschetti

LE STRUTTURE DATI PARTE 2: RECORD. Prof. G. Ciaschetti 1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOJ LE STRUTTURE DATI PARTE 2: RECORD Prof. G. Ciaschetti Abbiamo visto nella prima dispensa sulle strutture dati che una struttura dati è una collezione di dati in

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 07/02/07 Nota Questi lucidi sono tratti

Dettagli

Il linguaggio C. Puntatori e dintorni

Il 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;

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

IEIM Esercitazione X Ripasso: array, puntatori, ricorsione. Alessandro A. Nacci -

IEIM Esercitazione X Ripasso: array, puntatori, ricorsione. Alessandro A. Nacci - IEIM 2015-2016 Esercitazione X Ripasso: array, puntatori, ricorsione Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Ripasso su array e puntatori 1 Ripasso su array e puntatori

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Gli array, le stringhe e le strutture

Gli array, le stringhe e le strutture INFORMATICA B Ingegneria Elettrica Gli array, le stringhe e le strutture Limiti dei tipi di dato semplici Utilizzare solo i tipi di dato semplici può essere limitante e rendere il programma poco flessibile

Dettagli

ALGORITMI E STRUTTURE DATI

ALGORITMI E STRUTTURE DATI ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Introduzione al C + Array

Dettagli

Problema. Vettori e matrici. Vettori. Vettori

Problema. Vettori e matrici. Vettori. Vettori e matrici Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Problema Si vuole un programma che chieda 10 numeri dalla tastiera e li visualizzi dall ultimo al primo Soluzione attuale (con le

Dettagli

Allocazione Dinamica. Allocazione Statica. malloc() La funzione malloc()

Allocazione Dinamica. Allocazione Statica. malloc() La funzione malloc() Allocazione Statica Finora abbiamo visto che le variabili sono sempre definite staticamente. Questo è un limite perché la loro esistenza deve essere prevista e dichiarata a priori. In particolare per variabili

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione 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 2016

Dettagli

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Array 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

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

4 GLI ARRAY E LE STRINGHE

4 GLI ARRAY E LE STRINGHE 13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella

Università 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

Dettagli

Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,...

Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,... Vettori (array) Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,...) I vettori sono caratterizzati da dimensione tipo Es.

Dettagli

Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica B [079904]

Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica B [079904] Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale Informatica B [079904] Prof. P. Plebani Allievi Ingegneria Civile e Ambientale II prova in itinere (04 Febbraio 2009) Cognome

Dettagli

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare

Dettagli

Linguaggio C. Aggregati di dati

Linguaggio C. Aggregati di dati Linguaggio C Aggregati di dati Limiti delle variabili semplici Come elaborare e salvare grandi quantità di dati? Ad esempio, un sensore invia un dato ogni intervallo di tempo, la sequenza va poi conservata

Dettagli

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length); Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Università di Roma Tor Vergata L12-1

Università di Roma Tor Vergata L12-1 Università di Roma Tor Vergata L12-1 soluzione di un problema fl 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Introduzione a Matlab

Introduzione a Matlab INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion

Dettagli

Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

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

Dettagli

Ottenere una modifica del parametro attuale

Ottenere una modifica del parametro attuale Ottenere una modifica del parametro attuale Le variabili passate come parametri a una funzione, se alterate durante l esecuzione, non cambiano valore all uscita dalla funzione (parametri passati per valore)

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Cicli annidati ed Array multidimensionali

Cicli annidati ed Array multidimensionali Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un

Dettagli

Linguaggio 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 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

Dettagli

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione

Dettagli

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 α=&a Esistono in C particolari variabili dette puntatori che possono

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Tipi Strutturati: Introduzione >> Sommario Sommario Panoramica Alcuni Esempi

Dettagli

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p

Dettagli

Stringhe in C. Alessandra Giordani Lunedì 23 aprile 2012

Stringhe in C. Alessandra Giordani Lunedì 23 aprile 2012 Stringhe in C Alessandra Giordani agiordani@disi.unitn.it Lunedì 23 aprile 2012 http://disi.unitn.it/~agiordani/ Stringhe Sono particolari array: Ogni elemento del vettore è di tipo char La stringa è terminata

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Algoritmi di ordinamento

Algoritmi di ordinamento Algoritmi di ordinamento! Selection Sort! Quick Sort! Lower bound alla complessità degli algoritmi di ordinamento Ordinamento 1 Selection Sort SelectionSort(dati[]) { for (i=0; idati.length-1; i++) { min

Dettagli

Array ( vettore/matrice Un dato strutturato. indice Accesso diretto

Array ( vettore/matrice Un dato strutturato. indice Accesso diretto Array (vettore/matrice) Un dato strutturato. Un insieme di variabili tutte dello stesso tipo identificate con un nome comune. Uno specifico elemento è referenziato tramite un indice (funzione di accesso)

Dettagli

Tipi di dato e Strutture dati elementari

Tipi di dato e Strutture dati elementari Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia

Dettagli

Cicli annidati e matrici di variabili

Cicli annidati e matrici di variabili Linguaggio C Cicli annidati e matrici di variabili 1 Cicli annidati! 2 cicli FOR annidati richiedono 2 differenti variabili contatori! Il contatore del ciclo interno può dipendere dal contatore del ciclo

Dettagli

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Variabili. Unità 2. 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

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Informatica 1. Prova di recupero 21 Settembre 2001

Informatica 1. Prova di recupero 21 Settembre 2001 Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Esercizi Strutture dati di tipo astratto

Esercizi Strutture dati di tipo astratto Salvatore Cuomo Esercizi Strutture dati di tipo astratto Lezione n. 20 Parole chiave: Strutture dati, pile code, liste Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio

Dettagli

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

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

Dettagli

Lezione 3 Tipi di Dato Derivati

Lezione 3 Tipi di Dato Derivati Lezione 3 Un tipo di dato derivato è ottenuto a partire da tipi di dato predefiniti attraverso gli operatori *, &, [] definendo enumerazioni definendo struct I tipi di dato derivati non sono tipi di dati

Dettagli