Fondamenti di Informatica II 7. Array e Strutture in C++
|
|
- Giorgiana Fabiani
- 5 anni fa
- Visualizzazioni
Transcript
1 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 II 7. Array e Strutture in C++ Strutture Dati tipiche in C++ Array Matrici Strutture Classi Vector Code (queues) Liste Pile (stacks) ecc Corso di Laurea in Ingegneria Informatica A.A. 8-9 Semestre Corso (A-M) Prof. Giovanni Pascoschi Array (vettori) Array (vettori) Un array è un insieme finito di N variabili dello stesso tipo, ognuno identificata da un indice compreso tra e N-1 Le variabili di un array (elementi) vengono identificate da un nome a cui va aggiunto un indice tra parentesi quadre (che parte da ) Memoria In C++ ci sono due tipi di array array (come nel C) vector (classe Standard Template Library) (nel secondo modulo) sintassi tipo nomearray[espressione costante] p.e. int voti[1]; double temperature[]; I vari elementi sono memorizzati in locazioni di memoria successive Il numero di elementi di un array è fisso il numero di byte che l array occupa in memoria = numero di elementi * numero di byte per ciascun elemento voti[] voti[1] voti[]
2 Elementi di un Array Dichiarazione di un Array Gli elementi di un array possono essere usati come una qualsiasi variabile del tipo dell array Esempi: voti[3] = 8; cout << voti[13]; cin >> voti[3]; voto_diff = voti[] voti[18]; E possibile inizializzare i valori di un array in fase di dichiarazione Esempi: int temp[] = {-5, -1, 3, 1, 15, 1 ; oppure int temp[ ] = {-5, -1, 3, 1, 15, 1 ; 5 Accesso agli elementi di un Array Bound checking L indice di un array puo essere una espressione costante intera o comunque una qualsiasi espressione intera Esempio: for (i=; i< 5; i++) { cin >> voti[i]; cout << voti[i]; Il linguaggio C++ non prevede nessun meccanismo di controllo che un indice di un array cada all interno dell intervallo [,...,N-1] dove N è la dimensione dell array (bound checking) In teoria è possibile anche usare indici negativi In questi casi di fuoriuscita dell indice dall intervallo si accede a celle di memoria che precedono o seguono l area di memoria dov è allocato l array si sporca l area di memoria producendo in alcuni casi anche il crash del programma o comunque effetti indisiderati nell elaborazione del programma Esempio: cout << voti[ -3]; 7 8
3 Esempio 1 (algoritmo di massimo con gli array) Passaggio di array come parametri #include <iostream> using namespace std; int main () { int temp[1];...caricamento dei dati nell array... int i, max; for(i=; i<1; i++) { if(i == ) max = temp[i]; else { if( temp[i] > max) max = temp[i]; cout << Il valore piu grande è << max; return ; Gli array possono essere usati come parametri di una funzione Gli array sono sempre passati per referenza (riferimento) Esempio: float media( int [ ], int); float media( int a [ ], int num) media ( temp, numero); // dichiarazione prototipo // definizione della funzione // chiamata della funzione N.B.: bisogna fornire la dimensione dell array alla funzione perchè altrimenti non è nota 9 1 Esempio di passaggio di un array in una funzione Array come parametri #include <iostream> using namespace std; float media(int [ ], int); // prototipo della funzione const int MAX = 1; float med; int main () { int temp[ MAX ]; int num;...caricamento parziale dei dati nell array... med = media( temp, num);... return ; float media(int a[ ], int numero) { int somma = ; for (int i=; i<numero; i++) { somma += a[i]; return somma/numero; Al momento della chiamata il nome del parametro formale passato per riferimento diventa un sinonimo (alias) del parametro attuale facente riferimento allo stesso array (non si crea un nuovo array ma un riferimento ad un array esistente) Ogni modifica degli elementi dell array parametro formale all interno della funzione rappresenta, in effetti, una modifica agli elementi dell array parametro attuale 11 1
4 Array come parametri Come avere un array come tipo restituito da una funzione? Se gli elementi della funzione non devono essere modificati si puo usare const nella specifica dei parametri formali Non è possibile usare un array come tipo restituito da una funzione: float[ ] funzione(...) // errore: non è possibile float media(const int a[ ], int numero) { int somma = ; for (int i=; i<numero; i++) { somma += a[i]; return somma/numero; Soluzioni: passare un array per riferimento (dove passera l insieme dei dati) restituire un puntatore ad un array (non locale) vedremo in seguito usare la classe vector (vedremo nel. modulo) 13 1 Elementi di un array come parametro Array di caratteri Gli elementi di un array possono essere passati come parametro sia per valore che per riferimento come delle semplici variabili: p.e.: nel main swap( temp[i], temp[j] ); Definizione della funzione swap(int& a, int& b) la stringa è un array di caratteri con il terminatore \ (carattere nullo) la manipolazione delle stringhe si puo realizzare manipolando array di char Esempi equivalenti: char citta = { M, i, l, a, n, o ; char citta[ ] = { M, i, l, a, n, o ; char citta[7] = Milano ; 15 1
5 Array di caratteri Array di caratteri e stringhe (differenza) A differenza degli altri tipi di array è possibile stampare ed acquisire un array di caratteri globalmente (stringa): Gli oggetti della classe string possono essere considerati come array di caratteri di dimensione grande a piacere char citta[7] = Milano ; cout<< citta; I singoli caratteri possono essere modificati come gli elementi di un array di tipo char oppure cin>>nome; Esempio string citta = Roma ; citta[1] = i ; cout<<citta; La classe string fornisce una rappresentazione piu astratta di una stringa ed è piu facile lavorare con oggetti della classe string che con array di caratteri Array di caratteri e stringhe (differenza) Array multidimensionali Ad esempio per copiare una stringa: E possibile dichiarare array con piu dimensioni string citta1, citta; citta1 = citta; // oggetto della classe string Sintassi : tipo nomearray[dim1][dim]...[dimn]; char citta1[1], citta[1]; strcpy(citta1, citta); // array di caratteri Gli array a dimensioni si chiamano matrici Esempio: float mat[1][5]; // matrice di 1 righe e 5 colonne 19
6 Matrici Memorizzazione di Matrici Per accedere all elemento che si trova nella riga i e nella colonna j si utilizza la seguente notazione: Gli array multidimensionali sono memorizzati per righe in locazioni contigue Memoria mat[i][j] Esempio: cout<< mat[][3]; // stampa l elemento della matrice di coordinate e 3 gli indici di riga e colonna partono entrambi dal valore i j 3 mat[][]... mat[][] mat[1][]... mat[1][]... riga riga Inizializzazione di Matrici Esempio con matrici Gli array multidimensionali possono essere inizializzati con una lista di valori di inizializzazione racchiusi tra parentesi graffe: Memorizzazione di una tavola pitagorica int mat[3][3]= { {1,,, {,1,, {,,1 ; i 1 1 j const int ROW=1, COL=1; int mat[row][col]; int i,j; for(i=; i<row; i++) for(j=; j<col; j++) mat[ i ] [ j ] = (i+1) * (j+1);... 3
7 Array multidimensionali come parametri Array multidimensionali come parametri (esempio 1) Nel caso di passaggio di array multidimensionali nella dichiarazione bisogna specificare: tutte le dimensioni oppure tutte le dimensioni dalla seconda in poi (il compilatore ha bisogno di conoscere queste informazioni per poter accedere agli elementi nella memoria) void stampa(int mat[row][col]) { int i, j; for(i=; i<row; i++) for(j=; j<col; j++) cout << mat[ i ] [ j ] << endl; 5 Array multidimensionali come parametri (esempio ) Algoritmi fondamentali sugli array Ricerca sequenziale Scrivere una funzione che dato in input un array di interi serie[ ] ed un numero find, restituisca vero o falso a seconda che il numero find sia presente o meno nell array void stampa(int mat[ ][COL], int n) { int i, j; for(i=; i<n; i++) for(j=; j<col; j++) cout << mat[ i ] [ j ] << endl; bool ricerca(int serie[ ], int n, int find) { bool trovato = false; int i = ; while(i<n &&!trovato) { if(serie[i] == find) trovato = true; i++; return trovato; 7 8
8 Algoritmi fondamentali sugli array Ricerca binaria(dicotomica) Algoritmi fondamentali sugli array Ricerca binaria (dicotomica) 9 Scrivere una funzione che dato in input un array ordinato di interi serie[ ] ed un numero find, restituisca vero o falso a seconda che il numero find sia presente o meno nell array Supponiamo che l array sia ordinato in senso crescente: serie[]<=serie[1]<=...serie[n-1] Passi dell algoritmo 1.sx=, dx=n-1, med=(sx+dx)/.si confronta l elemento cercato find con l elemento mediano serie[med] 3.se find=serie[med] il numero è presente.altrimenti, se il vettore ha almeno due elementi se find<serie[med] si ripete la ricerca nella prima metà del vettore (da serie[] a serie[med-1] si aggiornano dx e med e si va al passo se find>serie[med] si ripete la ricerca nella seconda metà del vettore (da serie[med+1] a serie[dx] si aggiornano sx e med e si va al passo 3 bool ricerca(int serie[ ], int n, int find) { bool trovato = false; int sx =, dx = n-1, med = (sx + dx)/; while(sx<=dx &&!trovato) { if(serie[med] == find) trovato = true; else if (find<serie[med]) dx=med-1; else sx=med+1; med=(sx+dx)/; return trovato; Algoritmi fondamentali sugli array Ordinamento Algoritmo di Ordinamento Bubblesort Dato un array di elementi (interi, float, stringhe,...) serie[ ] ordinare gli elementi dell array in ordine crescente o decrescente, ossia in maniera tale che: serie[]<= serie[1]<= serie[]<=...<= serie[n-1] Esistono diversi algoritmi di ordinamento (Bubblesort, Insertion sort, Quicksort, Mergesort, Heapsort, ecc) si scandisce la lista degli elementi confrontando coppie di elementi successivi: serie[] con serie[1] serie[1] con serie[]... serie[n-] con serie[n-1] Per ogni coppia, se i due elementi non sono in ordine p.e. serie[i]>serie[i+1] scambiare gli elementi Ripetere fintanto che si effettua almeno uno scambio (al massimo n ripetizioni) 31 3
9 Algoritmo di Ordinamento Bubblesort : esempio Ordinamento Bubblesort passo 1 passo passo 3 void bubblesort(int serie[ ], int n) { int i; bool swapped; do { swapped=false; for(i=;i<n-1;i++) { if (serie[i]>serie[i+1]) { swap(serie[i],serie[i+1]); swapped=true; while(swapped); 33 3 Strutture di dati Strutture di dati Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna identificata con un nome l insieme dei campi è denominato record sintassi struct nome_struttura { tipo1 nome_variabile1;... tipon nome_variabilen; Dopo aver definito 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 esempio: cd.prezzo=1; cout<<cd.titolo; cd.copie++; La struttura definisce un nuovo tipo di dato 35 3
10 Strutture di dati Esempi strutture di dati Una volta definito un tipo dati struttura, essa si comporta come un qualsiasi altro tipo di dati. Si puo ad esempio: assegnare una variabile struttura ad un altra far si che una funzione restituisca una struttura alla funzione chiamante passare strutture sia per valore che per referenza (riferimento) daticd cd1 = { Toccata e fuga, Bach, 3, sinfonia ; daticd cd = cd1; //uguaglianza tra strutture void stampa_cd(daticd x) { // passaggio per valore cout<< x.autore<<x.titolo<<x.prezzo<<x.genere<<endl; void prezzo_scontato(daticd& x) { x.prezzo=x.prezzo * 8/1; // passaggio per referenza Tabelle di dati Istruzione typedef 39 La tabella di dati è un array di strutture struct giorno { int gg; int mm; int aa; struct daticd { string titolo; string autore; float prezzo; string genere; struct giorno giorno_vendita; struct daticd CD[1]; // tabella costituita da 1 CD per poter descrivere in maniera piu concisa un tipo struttura si puo usare la parola chiave typedef struct giorno { int gg; int mm; int aa; struct daticd { string titolo; string autore; float prezzo; string genere; struct giorno vendita; typedef struct daticd cddata; //non definisce un nuovo tipo, ma un sinonimo!!!! cddata CD[1]; // tabella costituita da 1 CD
11 Riepilogo della lezione Fine della lezione Funzioni in C++ Array in C++ Array come parametro nelle funzioni Array di caratteri Matrici (array multidimensionali) Algoritmi fondamentali sugli array Strutture di dati Tabelle di dati Domande? 1
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
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
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
DettagliLaboratorio 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
DettagliFondamenti 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
DettagliInformatica (A-K) 19. Linguaggio C -6
Informatica (A-K) 19. Linguaggio C -6 Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna identificata con un nome l insieme dei campi è denominato
DettagliFondamenti di Informatica (lettere
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
DettagliELEMENTI 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
DettagliNel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni
INTRODUZIONE A C++ Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice, cioè più istruzioni Istruzione - Esempi Significato int a; float f; double d; char c; int x=0; variabile =
DettagliFondamenti di Informatica
Programmazione modulare (top-down) Fondamenti di Informatica 15. Funzioni in C++ (parte 1) Problemi complessi Conviene suddividere il programma in sottoprogrammi piu semplici mediante la metodologia di
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
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
DettagliFondamenti 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
Dettaglicout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;
Funzioni int n, ris; cout n; ris = n*2; cout
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
DettagliInformatica (A-K) 12. Linguaggio C -3
Introduzione alle funzioni in C Informatica (A-K) 12. Linguaggio C -3 int main() int i,n, fattoriale=1; printf( Inserire Numero: ); scanf( %d, &n); for (i =2; i
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.
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
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
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
DettagliLinguaggio 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
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;
DettagliLezione 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
DettagliFondamenti di Informatica
Strutture dati complesse Esempi di strutture dati complesse analizzate in questa lezione: Fondamenti di Informatica 21. Strutture di dati complesse in C++ Array di puntatori Pila (Stack) Coda (queue) Liste
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à
DettagliArray 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
DettagliElementi di Informatica
Corso di Laurea triennale in Ingegneria Chimica in condivisione con Corso di Laurea triennale in Ingegneria Navale e Scienze dei Materiali Elementi di Informatica A.A. 2016/17 prof. Mario Barbareschi Tipi
DettagliQuicksort 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.
DettagliCorso 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
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
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
Dettagli1) 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++:
DettagliQualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
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
DettagliStrutture 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
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
DettagliLaboratorio di Informatica
Liste semplici (semplicemente linkate) Una lista semplice e costituita da nodi Laboratorio di Informatica 7. Strutture complesse di dati in C++ Ogni nodo e una struttura che contiene : Dati Un riferimento
DettagliLezione 6 Struct e qsort
Lezione 6 Struct e qsort Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Struct Struct Fino ad ora abbiamo utilizzato
DettagliC++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW
C++ funzioni Alberto Ferrari http://en.cppreference.com FUNZIONI le funzioni caratterizzate da nome, parametri (numero, ordine e tipo) e tipo di ritorno le funzioni hanno un prototipo il prototipo non
DettagliEsercizio 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
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
DettagliLa 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
DettagliAmbienti di Programmazione per il Software di Base
Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base
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
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
DettagliFondamenti 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
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
DettagliLezione 8: Stringhe ed array multidimensionali
Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si
DettagliInformatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliLinguaggio C: Strutture e Liste Concatenate Valeria Cardellini
Linguaggio C: Strutture e Liste Concatenate Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica
DettagliCorso di Fondamenti di Informatica Algoritmi su array / 1
Corso di Informatica Algoritmi su array / Anno Accademico 200/20 Francesco Tortorella Algoritmi su array Quando si usano gli array, si eseguono frequentemente alcune operazioni tipiche : inizializzazione
DettagliLe funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni: la dichiarazione
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliTipi strutturati - struct
Fondamenti di Programmazione A Appunti per le lezioni Gianfranco Rossi Tipi strutturati - struct Struttura dati (concreta) struct: sequenza di n elementi (n 0), rispettivamente di tipo t1,,tn (non necessariamente
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
DettagliEsercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018
Esercitazioni di Fondamenti di Informatica - Lez. 30/10/018 Esercizi sulle funzioni in C I codici e le soluzioni degli esercizi sono nella cartella parte1 1. Scrivere i prototipi delle seguenti funzioni.
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Operatore? Tipo di dato: struct La ricorsione Funzioni ricorsive Esercizi proposti 26/04/2012 2 Operatore? L'operatore? può essere
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
DettagliTipi 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
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.10 Strutture Antonio Arena antonio.arena@ing.unipi.it Ripresa esercizio per casa Fondamenti di Informatica - Esercitazione n.10 2 Scrivere una funzione
DettagliUniversità 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
DettagliCorso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Strutture e Unioni DD Cap. 10, pp. 379-391, 405-406 KP Cap. 9, pp. 361-379 Strutture Strutture Collezioni di variabili correlate (aggregati)
DettagliArray. 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
DettagliIl 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
DettagliBreve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
DettagliFondamenti di Informatica II 3. Funzioni in C++ (parte 1)
Introduzione alle funzioni in C++ Fondamenti di Informatica II 3. Funzioni in C++ (parte 1) Corso di Laurea in Ingegneria Informatica A.A. 2008-2009 2 Semestre Corso (A-M) int main() int n, fattoriale=1;
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
Dettagli#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliInformatica 7. appunti dalle lezioni del 20 e 22/10/2010
Informatica 7 appunti dalle lezioni del 20 e 22/10/2010 Tipi di dato Nelle celle di memoria di un calcolatore ci sono solo 0 e 1, fisicamente realizzati tramite due diversi livelli di tensione elettrica
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
DettagliRipasso R1. Dati strutturati. Esempi. Array. Dichiarazione di un array. Dichiarazione di un array in C
Ripasso R1 Dati strutturati Aggregazione di dati omogenei: gli array Spesso gli algoritmi lavorano su insiemi di dati omogenei. o l insieme dei valori reali che rappresentano le temperature medie delle
DettagliOgni 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
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
DettagliAlgoritmi e Strutture Dati. Lezione 1
Algoritmi e Strutture Dati Lezione 1 www.iet.unipi.it/a.virdis Antonio Virdis antonio.virdis@unipi.it 1 Ma io so già programmare! Fondamenti I Sia dato un array contenente delle frasi. Scrivere un programma
DettagliA. Veneziani - Le variabili puntatore
A. Veneziani - Le variabili puntatore I puntatori Una variabile puntatore è atta a contenere un indirizzo di memoria. Questo, quindi, è il tipo di dato contenuto in una variabile puntatore. A seconda dell
DettagliFondamenti 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
DettagliGli array Libro cap. 6 Moreno Marzol a Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna
Gli array Libro cap. 6 Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Array 2 Ringraziamenti prof. Stefano Mizzaro, Università
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;
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014
Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Immagini Struttura dati: typedef struct{ int R; int G; int B; } pixel pixel img[0][24]; Ma quanto è grossa
DettagliAlgoritmo di ordinamento sul posto che ha tempo di esecuzione :
QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : - O(n 2 ) nel caso peggiore - O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior
DettagliVariabili. 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
DettagliEsercizi. La funzione swapint() primo tentativo
Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include
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 2016
DettagliIngegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo
Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo In C++ è possibile distinguere due aree distinte di memoria: memoria stack e memoria heap E
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
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using
DettagliCorso di Fondamenti di Informatica Tipi strutturati: Stringhe
Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Anno Accademico Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri
DettagliElementi di Informatica
Corso di Laurea triennale in Ingegneria Chimica in condivisione con Corso di Laurea triennale in Ingegneria Navale e Scienze dei Materiali Elementi di Informatica A.A. 2016/17 prof. Mario Barbareschi Puntatori
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ò
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione
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
DettagliEsercizi. Filtraggio
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia Filtraggio L utente inserisce un array di numeri reali non negativi (un numero negativo indica la fine della fase di inserimento)
DettagliCorso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.9 Stringhe & Algoritmi di ordinamento Antonio Arena antonio.arena@ing.unipi.it Stringhe Fondamenti di Informatica - Esercitazione n.9 2 In C++ non
Dettagli