Cesare Rota. Programmare con C++ EDITORE ULRICO HOEPLI MILANO

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Cesare Rota. Programmare con C++ EDITORE ULRICO HOEPLI MILANO"

Transcript

1 Cesare Rota Programmare con C++ EDITORE ULRICO HOEPLI MILANO

2 Copyright Ulrico Hoepli Editore S.p.A via Hoepli 5, Milano (Italy) tel fax Tutti i diritti sono riservati a norma di legge e a norma delle convenzioni internazionali ISBN Ristampa: Realizzazione editoriale ART Servizi Editoriali S.p.A. - Bologna Coordinamento editoriale: Monica Monari Redazione: Barbara Megali Progetto grafico: Marina Baldisserri Impaginazione: Sonia Bertusi Copertina: MN&CG S.r.l., Milano Stampa: Art Grafiche Franco Battaia S.r.l. - Zibido San Giacomo (MI) Printed in Italy

3 Indice Presentazione 5 Sezione 1 - Premesse 7 U.D. 1 - Sistemi di numerazione Sistema di numerazione decimale Notazione polinomiale Numeri decimali Sistema di numerazione binario Conversione da base 2 a base Somma e sottrazione nel sistema binario Sistema di numerazione esadecimale Conversione da binario a esadecimale e viceversa 16 Esercizi 18 U.D. 2 - Codifica delle informazioni Introduzione Rappresentazione dei caratteri Rappresentazione interna dei numeri interi Rappresentazione dei numeri reali 28 Esercizi 31 Sezione 2 - Primi elementi di programmazione 33 U.D. 3 - Introduzione a C Primo programma Analisi del codice Definizione e assegnazione Tipi di dato Tipo di dato intero Tipo char Numeri in virgola mobile Casting Tipo booleano Costanti 49 Esercizi 51 U.D. 4 - Visualizzazione e acquisizione Acquisizione delle informazioni: il metodo cin Output formattato Caratteri di escape Uso di \\ e del 63 Esercizi 64 U.D. 5 - Operatori Operatori aritmetici Operatori aritmetici composti Operatori relazionali Operatori logici 80 Esercizi 86 Sezione 3 - Organizzazione degli algoritmi 89 U.D. 6 - Algoritmi e pseudocodifica Analisi del problema Primo esempio Algoritmi Dati e istruzioni Istruzioni di assegnamento Istruzioni di ingresso e di uscita dei dati Teorema di Jacopini-Böhm Struttura di alternativa Struttura di ripetizione Considerazioni sulla pseudocodifica 107 Esercizi 109 U.D. 7 - Istruzioni di selezione Istruzione if Istruzione if..else If nidificati Istruzione switch (selezione multipla) Raggruppamento dei case 122 Esercizi 125 U.D. 8 - Istruzioni di ripetizione Istruzione while Tabulazione Istruzione do.. while Istruzione for 134 Esercizi 139 3

4 Indice U.D. 9 - Le funzioni Le funzioni La funzione più importante Definizione delle funzioni Ambito delle variabili Variabili locali e globali Valori di ritorno Passaggio dei parametri per valore Passaggio dei parametri per riferimento Ricorsione Funzioni matematiche 163 Esercizi 165 Sezione 4 - Strutture dei dati 167 U.D Enumerazioni e array Introduzione Tipi enumerativi (enumerazioni) Tipo vettore Vettori in C Caricamento di un vettore in memoria Array di dimensione variabile Matrici Passaggio di un vettore come parametro a una funzione 187 Esercizi 190 U.D Stringhe e strutture Definizione di stringa Lunghezza di una stringa Concatenazione ed estrazione Confronti tra stringhe Caratteri e stringhe C Dichiarazione di una struttura Metodi costruttori 204 Esercizi 207 Sezione 5 - Classi e oggetti 209 U.D Concetti generali Introduzione alla OOP Incapsulazione Polimorfismo Ereditarietà Introduzione alle classi Terminologia e rappresentazione grafica Dichiarazione degli oggetti 218 Esercizi 222 U.D Polimorfismo ed ereditarietà Costruttori Costruttori parametrizzati Membri static di una classe Overloading Polimorfismo Ereditarietà 240 Esercizi 249 Sezione 6 - Operare con gli archivi 251 U.D Archivi Definizione di archivio Dati Definizione di record Operazioni fondamentali sugli archivi I/O standard e su memoria di massa Tipi di archivio Tipi di accesso 260 Esercizi 261 U.D File di testo Creazione di un file di testo Lettura di un file di testo Accodamento 268 Esercizi 271 Sezione 7 - Le eccezioni 273 U.D Gestione delle eccezioni Concetto di anomalia Eccezioni 277 Esercizi 283 Appendice A - Riepilogo degli operatori 285 Appendice B - Sequenze di caratteri escape 286 Indice analitico 287 4

5 Presentazione Il presente volume espone, in modo chiaro ed efficace, le caratteristiche del linguaggio C++ e ha il duplice scopo di descriverne la sintassi e di evidenziarne le potenzialità. In particolare il libro: si rivolge allo studente come un manuale di facile consultazione per la programmazione; presenta le basi teoriche per lo sviluppo delle applicazioni informatiche. Il primo obiettivo si realizza tramite numerosi esempi presenti nel testo, che forniscono chiare indicazioni sulle caratteristiche sintattiche del linguaggio. Per quanto riguarda le basi teoriche sono stati messi in rilievo i fondamenti dei cinque argomenti di base per la programmazione: la rappresentazione dei dati, le strutture di controllo utilizzabili nella costruzione di un algoritmo, le strutture dei dati, la programmazione orientata agli oggetti e la gestione dei file. Il libro è suddiviso in sette sezioni. 1 La sezione Premesse sviluppa gli argomenti della codifica binaria delle informazioni. 2 In Primi elementi di programmazione vengono descritti i concetti di variabile, costante e tipi di dato, le operazioni di input/output da console e gli operatori aritmetici. 3 Nella sezione Organizzazione degli algoritmi viene introdotta la nozione di algoritmo e sono descritte le principali strutture di controllo sia in pseudocodifica sia in C++. 4 Nella sezione Strutture dei dati vengono definite le principali strutture statiche dei dati. 5 L intera sezione Classi e oggetti è dedicata alle nozioni fondamentali della OOP e vengono presentati i concetti principali della programmazione orientata agli oggetti quali l incapsulamento, il polimorfismo e l ereditarietà. 6 La sezione Operare con gli archivi spiega le nozioni di base per la definizione degli archivi di dati. 7 La sezione Le eccezioni descrive gli accorgimenti essenziali per la realizzazione di applicazioni robuste. Ogni sezione è suddivisa in Unità didattiche le quali contengono un numero limitato di paragrafi, la cui trattazione è, di norma, contenuta in circa due pagine. Ne risulta un testo 5

6 Presentazione di facile lettura, che aiuta lo studente a concentrarsi, di volta in volta, su un singolo elemento del discorso. Tutti i concetti presentati sono accompagnati da un esempio, che mette in pratica quanto esposto. Ogni esempio contiene un listato di codice, una figura che illustra una prova di esecuzione del codice proposto e l analisi dettagliata del codice stesso; quest ultima parte dell esempio presenta una descrizione dettagliata degli aspetti più significativi del linguaggio C++ presenti nell esempio. Per ogni sezione sono indicati gli obiettivi generali che si vogliono raggiungere, mentre nella prima pagina di ogni Unità didattica è specificato per lo studente Che cosa imparerai a fare e Che cosa dovrai studiare. In concreto, gli obiettivi generali presentati all inizio di ogni modulo descrivono le capacità che lo studente deve acquisire. Le voci Che cosa imparerai a fare e Che cosa dovrai studiare indicano rispettivamente le competenze e le conoscenze che devono essere apprese dall alunno. Considerando l ampiezza della trattazione, il libro include tutti i contenuti dei programmi didattici tradizionalmente affrontati nelle classi terze degli istituti tecnici. In particolare può essere adottato nella classe terza degli Istituti Tecnici Industriali con indirizzo ABACUS o informatica industriale, in quella degli Istituti Tecnici Commerciali con indirizzo MERCURIO o programmatori, nonché in quella dei Licei scientifici tecnologici. L Autore 6

7 Sezione 4 Strutture dei dati Obiettivi generali Definire insiemi di dati numerabili Saper utilizzare schemi logici per organizzare insiemi complessi di dati Costruire tabelle di dati omogenei Manipolare stringhe di caratteri & U.D.10 Enumerazioni e array U.D.11 Stringhe e strutture Raggruppare dati di tipo diverso Questa sezione contiene

8 Unità didattica 10 Enumerazioni e array CHE COSA IMPARERAI A FARE $ Definire dati di tipo enumerativo $ Definire un array a una dimensione in C++ $ Caricare un vettore in memoria $ Definire un vettore a dimensione variabile $ Definire una matrice $ Popolare una matrice $ Visualizzare gli elementi di una matrice CHE COSA DOVRAI STUDIARE $ Definizione di tipo enumerativo $ Concetto di vettore $ Definizione di vettore $ Sintassi per la gestione di un vettore $ Sintassi per la gestione delle matrici

9 10 Unità didattica Enumerazioni e array 10.1 Introduzione Finora abbiamo visto i tipi di dato più comuni e i più facili da utilizzare in C++, cioè i tipi predefiniti: int, double, bool ecc. In C++, però, si possono anche utilizzare tipi definiti dal programmatore. Tali nuovi tipi, per poter essere utilizzati, vanno inseriti nella dichiarazione delle variabili secondo la sintassi consueta: tipo variabile; Tutti i dati che compaiono in un programma possiedono uno e un solo tipo, e possono essere di tipo semplice oppure aggregati in modo complesso. I tipi di dato semplici sono classificati secondo lo schema gerarchico riportato di seguito. semplici reali ordinali float double enumerativi predefiniti int char bool I tipi semplici possono essere float o double, oppure di tipo ordinale; i tipi ordinali possono essere definiti dal programmatore attraverso i tipi enumerativi, oppure possono appartenere ai tipi ordinali predefiniti int, bool, char. Il tipo ordinale si chiama così perché descrive un insieme finito e ordinato di valori, che possono essere associati a numeri interi positivi. I tipi ordinali predefiniti e i tipi float e double sono già stati presentati e utilizzati in precedenza Tipi enumerativi (enumerazioni) A volte una variabile può assumere solo una serie di valori definiti all interno di un insieme discreto di possibilità. Le enumerazioni sono molto comuni nella vita di tutti i giorni: per esempio, può essere un enumerazione la lista dei controlli da eseguire sull auto prima di affrontare un viaggio: freni, fari, gomme, olio, tergicristalli, carburante. 169

10 Sezione 4 - Strutture dei dati Per definire in C++ un enumerazione si usa la seguente sintassi: enum nome_enumerazione {elenco_enumerazioni}; dove enum è la parola chiave che introduce l enumerazione. Riprendendo la lista di esempio proposta in precedenza, si può scrivere: enum controlli {freni, fari, gomme, olio, tergicristalli, carburante}; Il nome dell enumerazione può essere utilizzato per dichiarare variabili di tale tipo, in maniera analoga alle dichiarazioni di tipo viste in precedenza. Per esempio, potremo scrivere: controlli check; La variabile check può assumere uno qualsiasi dei valori della lista dei controlli definita in precedenza. Per esempio, si può scrivere: check = gomme; oppure if (check == fari) cout << controlla fari ; Si deve ricordare che a ognuno dei valori di una variabile enumerativa corrisponde il numero d ordine che esso occupa all interno della definizione dell enumerazione. Esempio Enumera... Codice Scrivere un programma che utilizza una variabile di tipo controlli. Enumera.cpp 1 #include <iostream> 2 using namespace std; 3 4 //INIZIO 5 int main () 6 { 7 //definisci l'enumerazione 8 enum controlli {freni, fari, gomme, olio, tergicristalli, carburante}; 9 10 //definisci la variabile di tipo enumerativo 11 controlli check; //assegna un valore alla variabile 14 check = gomme; //esegui un confronto 17 if (check == gomme) cout << "controlla fari"; //scrivi il numero d'ordine del valore della variabile enumerativa 20 cout << "\nnumero d'ordine di gomme = " << check;

11 Unità didattica 10 - Enumerazioni e array 22 //fine programma 23 cout << "\n\nfine "; 24 system ("pause"); 25 return 0; 26 } Prova di esecuzione Analisi del codice Alla riga 8 viene definito il tipo enumerativo controlli. Alla riga 11 viene introdotta la variabile check di tipo controlli e alla riga 14 le viene assegnato un valore (scelto tra quelli definiti nell enumerazione controlli). Alla riga 17 viene eseguito un confronto. Anche se la variabile check contiene gomme, l istruzione alla riga 20 non fa comparire in output la parola gomme, ma il suo numero di posizione (partendo da zero) all interno della definizione dell enumerazione.... Fino a questo momento abbiamo visto come sia possibile definire e utilizzare in C++ tipi di dati che abbiamo definito semplici. Se ci soffermiamo, però, a considerare qualche esempio un po più complesso di quelli presentati fino a ora ci rendiamo rapidamente conto che non è affatto raro incontrare la necessità di gestire elenchi di dati. Pensiamo per esempio a un elenco di invitati a una festa, alla lista degli studenti di una classe o agli iscritti a una gara. In questi tre esempi siamo di fronte a un dato (cognome e nome) sempre dello stesso tipo che si ripete più volte. Nei prossimi paragrafi presenteremo le strutture messe a disposizione da C++ per gestire non più dati singoli, bensì strutture di dati che raggruppano in un unica variabile dati diversi Tipo vettore Cominciamo a esaminare le strutture che contengono dati tutti dello stesso tipo: in generale, tali strutture prendono il nome di array e si distinguono in vettori come array a una dimensione e matrici come array a due dimensioni. La prima struttura che esaminiamo è la struttura di vettore che permette di raggruppare diversi dati dello stesso tipo e di associare un indice a ogni dato. Un vettore è un insieme ordinato di oggetti omogenei, ovvero appartenenti a un unico tipo. È possibile accedere ai vari oggetti del vettore utilizzando il loro indice numerico. Il numero di elementi contenuto nel vettore è indicato come dimensione. 171

12 Sezione 4 - Strutture dei dati Prendiamo, per esempio, l elenco degli studenti di una classe, così come appare sul registro. 1 Abbiati Mario 2 Bonaldi Piera 3 Casati Luigi 4 Esposito Salvatore Vivaldi Giuseppe A ogni studente è associato un numero di posizione e ogni numero individua uno studente. In questo esempio, ogni elemento del vettore è di tipo stringa (per contenere il cognome e nome dello studente) e ogni elemento è individuato da un numero, detto indice. La dimensione del vettore è 24. Oppure consideriamo un quadrilatero irregolare in cui ogni lato ha una misura diversa Possiamo scrivere: LATO MISURA Ogni elemento dell esempio precedente è un dato di tipo numerico (la misura del lato) e per ogni misura è presente un indice che è il numero del lato; la dimensione è Vettori in C++ L istruzione per definire un vettore ha il seguente formato: dove: tipo nomevettore [dimensione]; tipo specifica il tipo di dato comune a tutte le componenti; nomevettore è il nome collettivo delle componenti del vettore; dimensione è il numero degli elementi contenuti nel vettore. Riprendendo gli esempi del paragrafo precedente, per definire il vettore che contiene i nomi dei 24 studenti di una classe possiamo scrivere: int dim = 24; string Studenti [dim]; 172

13 Unità didattica 10 - Enumerazioni e array Per definire le misure dei lati di un quadrilatero: int dim=4; int misure [dim]; È buona norma definire la dimensione del vettore come variabile (nel nostro caso: dim): in questo modo eventuali variazioni della dimensione richiedono un solo intervento nel codice. Si ricordi che l intervallo dei valori possibili per l indice di un vettore parte da 0 e arriva fino a dimensione 1. In base a questa regola, nell esempio dell elenco degli studenti il primo studente (Abbiati Mario) è individuato dall indice 0 e l ultimo (Vivaldi Giuseppe) dall indice 23. Quando si lavora con una variabile di tipo vettore, occorre sempre, all interno del programma, indicare sia il nome della variabile sia l indice che individua la componente del vettore che vogliamo trattare; per esempio, per assegnare al primo elemento del vettore la misura del primo lato, si scrive: misure[0] = 15 Si noti che l indice va indicato racchiuso tra parentesi quadre dopo il nome della variabile. Per assegnare a ciascun lato la misura corrispondente, si scrive: misure[1] = 8 misure[2] = 7 misure[3] = 16 Dal punto di vista concettuale, possiamo pensare che in memoria è presente una struttura di questo tipo: Alcuni esempi di istruzioni sugli elementi di un vettore Sempre riferendosi alle misure dei lati di un quadrilatero, per scrivere la misura del terzo lato si utilizza la seguente istruzione: cout << misura terzo lato = << misure[2]; Per sommare le misure del primo e del quarto lato, si utilizza la seguente istruzione: somma = misure[0]+ misure[3] VETTORE misure indice Spesso nasce l esigenza di accedere a tutti gli elementi di un vettore o, come si usa dire, di visitare tutti gli elementi del vettore per poter eseguire una elaborazione su ciascuno di essi. In questo caso, torna molto utile ricorrere alla struttura della ripetizione con contatore: attraverso di essa si utilizza un indice che assume tutti i valori che vanno da 0 a dimensione 1 del vettore e che serve per riferirsi a ciascun elemento. Esempio Perimetro... Dopo avere definito e inizializzato un vettore che contenga le misure dei lati di un quadrilatero, visualizzare la misura del perimetro. 173

14 Sezione 4 - Strutture dei dati Descrizione della soluzione Le istruzioni per definire l array e per assegnargli i valori iniziali sono già state viste in questo paragrafo. Per sommare tutti i lati del quadrato si definisca un ciclo for con l indice che va da 0 a 3 e che permette di accedere a tutti e quattro i lati del quadrilatero, vale a dire a tutti e quattro gli elementi del vettore delle misure. Pseudocodifica //struttura dati vettore delle misure dei lati //input //tutti i dati sono definiti all interno del programma //output perimetro //variabili di lavoro i //indice per ciclo for INIZIO //inizializza il vettore delle misure misure[0] 15 misure[1] 8 misure[2] 7 misure[3] 16 //inizializza perimetro perimetro 0 //visita il vettore PER i DA 0 A dim 1 perimetro = perimetro + misure[i] //somma le misure ad 1 ad 1 FINE PER FINE scrivi (Perimetro) Codice Perimetro.cpp 1 #include <iostream> 2 using namespace std; 3 4 //INIZIO 5 int main () 6 { 7 //struttura del vettore 8 const int dim=4; 9 int misure[dim]; int i; //contatore per ciclo for 12 int perim; //dato di output //inizializza il vettore misure 174

15 Unità didattica 10 - Enumerazioni e array 15 misure[0] = 15; 16 misure[1] = 8; 17 misure[2] = 7; 18 misure[3] = 16; //inizializza perimetro 21 perim = 0; //visita il vettore 24 for(i=0; i<dim; i++) 25 { 26 perim = perim + misure[i]; //somma le misure ad 1 ad 1 27 } //scrivi perimetro 30 cout<<"perimetro = "<<perim; //fine programma 33 cout << "\n\nfine "; 34 system ("pause"); 35 return 0; 36 } Prova di esecuzione Analisi del codice Alla riga 8 viene indicata la dimensione del vettore, che in questo caso è costante, e alla riga 9 viene definita la struttura del vettore di nome misure e di dimensione dim. Alle righe da 15 a 18 viene inizializzato il vettore misure assegnando un valore a ogni componente. Alla riga 24 comincia la visita del vettore grazie al ciclo for (con l indice che, a partire da 0, assume tutti i valori minori di dim). Alla riga 26 la visita consiste nel sommare in perim ogni elemento del vettore misure. Le istruzioni di inizializzazione usate nell esempio precedente possono essere sostituite da una scrittura più compatta. Nel codice Perimetro.cpp le righe da 15 a 18 servono per assegnare i valori iniziali alle componenti del vettore misure. Le riportiamo di seguito. misure[0] = 15; misure[1] = 8; misure[2] = 7; misure[3] = 16; L operazione precedente può essere realizzata assegnando direttamente i valori delle componenti in fase di definizione del vettore. Quindi le sette righe di codice 7 const int dim=4; 8 int misure[dim]; 175

16 Sezione 4 - Strutture dei dati //inizializza il vettore misure 15 misure[0] = 15; 15 misure[1] = 8; 16 misure[2] = 7; 17 misure[3] = 16; possono essere sostituite dalla seguente scrittura più veloce : int [] misure = new int [] {15, 8, 7, 16}; Si noti che non è neppure necessario specificare la dimensione del vettore Caricamento di un vettore in memoria Nel paragrafo precedente è stato illustrato un esempio di trattamento di un vettore, ipotizzando che i suoi valori fossero caricati all interno del codice del programma. Nell esempio che segue, viene illustrato come si può fare in modo che sia l utente a caricare direttamente in un vettore i valori che desidera. Inizialmente, consideriamo il caso in cui la dimensione del vettore è nota a priori. Esempio arraycarica... Consentire l inserimento da tastiera dei valori di un vettore di interi con dimensione fissa = 5. Descrizione della soluzione Dopo avere definito un vettore di 5 interi, si eseguono due visite sugli elementi del vettore: la prima contiene il blocco di istruzioni che permette di caricare i dati inseriti da tastiera in ciascun elemento del vettore; la seconda viene utilizzata per visualizzare i dati caricati. Pseudocodifica //costanti dimensione = 5 //struttura dati vettore di 5 interi //input serie di 5 numeri //output vettore di 5 interi INIZIO PER ogni elemento del vettore richiedi dato carica dato FINE PER PER ogni elemento del vettore scrivi (elemento) FINE PER FINE 176

17 Unità didattica 10 - Enumerazioni e array Codice arraycarica.cpp 1 #include <iostream> 2 using namespace std; 3 4 //INIZIO 5 int main () 6 { 7 //definisci il vettore di 5 elementi 8 const int dim = 5; 9 10 //definisci la struttura dati 11 int vett [dim]; //ciclo for x caricare vettore 14 for (int i=0; i<dim; i++) 15 { 16 //richiedi un dato 17 cout<<"inserisci un dato "; 18 cin>>vett[i]; 19 } cout<<"\ncontenuto del vettore: "; //visita il vettore 24 for (int i=0; i<dim; i++) 25 { 26 cout<<" "<<vett[i]; //scrivi elemento di posto i 27 } 28 cout<<"\nvettore visualizzato"; //fine programma 31 cout << "\n\nfine "; 32 system ("pause"); 33 return 0; 34 } Prova di esecuzione Analisi del codice Alla riga 14 viene introdotto il ciclo for per il caricamento dei dati nel vettore. L indice i è definito in modo locale rispetto all istruzione for. 177

18 Sezione 4 - Strutture dei dati Alla riga 18 il dato inserito da tastiera viene assegnato all elemento vett con indice i, dove i, grazie al ciclo for, assume, di volta in volta, i valori che vanno da 0 a 4. Alla riga 24 la scrittura degli elementi del vettore viene realizzata con un secondo ciclo for. Alla riga 26 ogni elemento del vettore viene scritto sulla stessa riga dei precedenti. Solo alla fine del ciclo for, alla riga 28, si va a capo per scrivere una nuova riga di messaggio Array di dimensione variabile Allo scopo di fornire all utente strumenti flessibili, vediamo di perfezionare ulteriormente gli esempi fin qui visti, in modo da realizzare un programma che permetta all utente di caricare un vettore la cui dimensione è definita dall utente stesso. Nell esempio del paragrafo precedente è stata data la possibilità di caricare i dati di un array da tastiera, ma la dimensione del vettore era definita come costante uguale a 5. Nulla vieta, però, di acquisire da tastiera la dimensione del vettore e di definire il vettore stesso solo dopo avere avuto a disposizione la dimensione scelta dall utente. Esempio arrayvaria... Permettere l inserimento da tastiera dei valori di un vettore di interi. Anche la dimensione del vettore è acquisita da tastiera e deve essere inferiore a 20. Descrizione della soluzione L algoritmo e il programma che viene presentato si discostano dal precedente soltanto perché la dimensione non è definita come costante, ma è letta da tastiera. Pseudocodifica //costanti dimensione massima = 20 //struttura dati vettore di interi //input dimensione serie di n interi (n = dimensione) //output vettore di interi INIZIO leggi (dimensione) PER ogni elemento del vettore chiedi dato carica dato FINE PER PER ogni elemento del vettore scrivi (elemento) FINE PER FINE Codice 1 #include <iostream> 2 using namespace std; arrayvaria.cpp 178

19 Unità didattica 10 - Enumerazioni e array 3 4 //INIZIO 5 int main () 6 { 7 const int MAX = 20; //dimensione massima per il vettore 8 int dim; 9 int i; //definisci il vettore 12 int vett[max]; //acquisisci e controlla la dimensione 15 do 16 { 17 cout<<"\ninserisci la dimensione (max = 20) " 18 cin>>dim; 19 } 20 //controlla il rispetto dei limiti 21 while (dim < 1 dim > MAX); //salta una riga 24 cout<<"\n"; for (i=0; i<dim; i++) 27 { 28 //richiedi un dato e caricalo nel vettore 29 cout<<"inserisci un dato "; 30 cin>>vett[i]; 31 } cout<<"\ncontenuto del vettore: "; 34 //visita il vettore 35 for (i=0; i<dim; i++) 36 { 37 cout<<" "<<vett[i]; 38 } 39 cout<<"\nvettore visualizzato"; //fine programma 42 cout << "\n\nfine "; 43 system ("pause"); 44 return 0; 45 } Prova di esecuzione 179

20 Sezione 4 - Strutture dei dati Analisi del codice Alla riga 7 viene definita la costante intera MAX, che rappresenta la dimensione massima per il vettore. Tale dimensione è posta pari a 20, così come richiesto dal testo del problema. Alla riga 8 è definita la variabile dim, in cui viene memorizzata la dimensione effettiva del vettore inserita da tastiera. Alla riga 12 viene definito il vettore di dimensione MAX, di cui verranno utilizzate soltanto le prime dim posizioni. Alle righe 17 e 18 viene rispettivamente richiesto e acquisito il valore di dim; le elaborazioni successive del vettore fanno riferimento solo a questo valore, come si può vedere alle righe 26 e 35. Alla riga 21 viene eseguito un controllo sul valore dim inserito da tastiera: soltanto se rientra tra i limiti imposti dal problema (è cioè compreso tra 1 e MAX) l elaborazione può procedere. Alla riga 24 viene immessa a video una riga vuota, per separare le istruzioni di acquisizione della dimensione dalla fase di caricamento e stampa dei dati del vettore. Tale fase è identica a quella già vista nell esempio ArrayCarica Matrici Nei paragrafi precedenti abbiamo visto come lavorare con array a una dimensione, vale a dire con array che hanno un unico indice di individuazione degli elementi che li compongono. È possibile, tuttavia, definire anche array a due o più dimensioni. Solitamente, gli array a una dimensione prendono il nome di vettori, mentre gli array a due dimensioni sono detti matrici. Come già visto, un array a una dimensione è definito da un nome e da una dimensione, con una sintassi del tutto simile a quella riportata di seguito. const int dim = 4; int vettore[dim]; Se, per esempio, è dato il vettore: VETTORE Dati Indice avremo che l elemento Vettore[2] contiene il valore 11. Per definire una matrice, invece, occorre specificare due o più dimensioni. Una matrice è un insieme di dati dello stesso tipo organizzati in una griglia: ogni elemento che compone la matrice è individuato dall indice di riga e dall indice di colonna in cui l elemento è posizionato. In C++ la definizione della struttura di una matrice è analoga alla definizione di un array a una dimensione. Per esempio, se si scrive: int matrice[3][4] 180

21 Unità didattica 10 - Enumerazioni e array s intende che la struttura di nome matrice è composta da 3 righe e 4 colonne, come mostrato nell esempio che segue. MATRICE Righe Colonne 3 Per elaborare un singolo elemento della matrice occorre specificare il numero di riga e il numero di colonna. Con riferimento alla matrice precedente, si può dire che 18 è contenuto nella cella individuata da matrice[1][2]. Esempio MatriceCarica... Caricare i dati di una matrice di interi con numero di righe e numero di colonne non superiore a 20. Scrivere il contenuto della matrice. Descrizione della soluzione Il limite di 20 è posto per non definire in memoria una struttura troppo ingombrante. Il programma è organizzato in tre parti. La prima parte serve per acquisire il numero di righe e il numero di colonne e per preparare la matrice. Quando viene acquisito il numero di righe, viene controllato che questo non ecceda il limite di 20: se ciò accade, il programma richiede di nuovo l inserimento del dato e così succede per il numero delle colonne. La matrice è inizialmente definita come un array con dimensioni massime: solo dopo avere acquisito il numero di righe e di colonne vengono definite le sue dimensioni effettive. La seconda parte consiste nel caricamento dei dati nella matrice. Vengono utilizzati due indici: i per le righe e j per le colonne. Per il caricamento si consideri ogni riga della matrice come un vettore e si proceda come negli esempi del paragrafo precedente al caricamento del vettore attraverso una ripetizione enumerativa con l indice j che va da 0 al numero di colonne 1. Tale iterazione viene nidificata in una ripetizione più esterna che ripete l operazione di acquisizione per tutte le righe della matrice, con l indice i che varia da 0 al numero di righe 1. Per la terza e ultima parte, la stampa della matrice, di nuovo si devono organizzare due cicli for uno interno all altro: il più interno serve per visitare gli elementi di una riga mentre l esterno serve per ripetere tale operazione su tutte le righe. Occorre avere l accortezza di scrivere gli elementi di una stessa riga senza andare a capo e di andare a capo solo alla fine della riga della matrice, cioè alla fine del ciclo for più interno. Pseudocodifica Costante MAX = 20 //struttura dati Matrice di interi //input Righe Colonne //limite massimo per le dimensioni della matrice 181

22 Sezione 4 - Strutture dei dati Serie di numeri per caricare la matrice //output Matrice //variabili di lavoro i indice di riga j indice di colonna INIZIO //acquisisci numero delle righe RIPETI leggi (righe) //controlla rispetto dei limiti MENTRE righe < 1 OR righe > 20 //acquisisci numero delle colonne RIPETI leggi (colonne) //controlla rispetto dei limiti MENTRE colonne < 1 OR colonne > 20 //carica dati nella matrice PER i DA 0 A righe 1 PER j DA 0 A colonne 1 chiedi dato carica dato FINE PER FINE PER //visita la matrice PER i DA 0 A righe 1 PER j DA 0 A colonne 1 scrivi (matrice [i, j]) FINE PER vai a capo FINE PER FINE Codice MatriceCarica.cpp 1 #include <iostream> 2 #include <iomanip> 3 using namespace std; 4 5 //INIZIO 6 int main () 7 { 8 const int MAX = 20; //dimensione massima per la matrice 9 10 //definisci la matrice 11 int mat[max][max]; 12 int righe; 13 int colonne; 182

23 Unità didattica 10 - Enumerazioni e array 14 int i; 15 int j; //acquisisci numero delle righe 18 do 19 { 20 cout<<"\ninserisci il numero righe (max="<<max<<") "; 21 cin>>righe; 22 } 23 //controlla il rispetto dei limiti 24 while (righe < 1 righe > MAX); //acquisisci numero delle colonne 27 do 28 { 29 cout<<"\ninserisci il numero colonne (max="<<max<<") "; 30 cin>>colonne; 31 } 32 //controlla il rispetto dei limiti 33 while (colonne < 1 colonne > 20); cout<<"\n"; //carica dati nella matrice 38 for (i=0; i<righe; i++) //per ogni riga della matrice 39 { 40 for (j=0; j<colonne; j++) //per ogni elemento della riga 41 { 42 //richiedi un dato e caricalo nella matrice 43 cout<<"inserisci un dato "; 44 cin>>mat [i][j]; 45 } 46 } cout<<"\ncontenuto della matrice: \n"; 49 //visita la matrice 50 for (i=0; i<righe; i++) //per ogni riga della matrice 51 { 52 for (j=0; j<colonne; j++) //per ogni elemento della riga 53 { 54 //scrivi gli elementi di una riga 55 //uno di seguito all'altro, con ingombro pari a 6 caratteri 56 cout<<setw(6)<<mat[i][j]; 57 } 58 //alla fine della riga va a capo 59 cout<<"\n"; 60 } cout<<"\nmatrice visualizzata"; //fine programma 65 cout << "\n\nfine "; 66 system ("pause"); 67 return 0; 68 } 183

24 Sezione 4 - Strutture dei dati Prova di esecuzione 184 Analisi del codice Alla riga 11 viene definita la struttura della matrice, che viene identificata con il nome mat e per la quale è specificato il numero delle righe e delle colonne. Alle righe 20 e 21 viene acquisito il numero di righe che compongono la matrice; le istruzioni di acquisizione sono inserite all interno di una ripetizione che serve per controllare se il numero digitato rientra nei limiti imposti (da 1 a 20). Alle righe 29 e 30 viene definito un processo analogo per l acquisizione del numero di colonne. Alla riga 38 inizia il caricamento dei dati nella matrice: il primo ciclo for serve per ripetere le operazioni sottostanti per tutte le righe. Alla riga 40 viene definito il ciclo for più interno, che permette di muoversi all interno di una riga, e per ogni elemento della riga viene acquisito il dato da inserire come indicato alle righe 43 e 44. In particolare, alla riga 44, il dato letto da tastiera viene assegnato a una casella della matrice di nome mat individuata dai due indici i e j. Alla riga 50 inizia la scrittura dei dati della matrice: l impostazione generale del codice successivo è analoga a quella precedente relativa al caricamento dei dati: la differenza principale è che, nel ciclo for più interno, l istruzione di scrittura indicata alla riga 56 permette di scrivere i dati uno di seguito all altro, mentre alla riga 59 è indicata l istruzione per andare a capo. Tale istruzione non rientra nel ciclo for interno, ma fa parte del ciclo for esterno, così che essa venga eseguita solo alla fine di ogni riga e venga ripetuta per ogni riga.... Allo scopo di acquisire dimestichezza con i problemi relativi al trattamento delle matrici, viene presentato un secondo esempio. Esempio TotaleRighe... Caricare i dati di una matrice di interi con numero di righe e numero di colonne non superiore a 20. Scrivere il contenuto della matrice e indicare per ogni riga il totale dei valori in essa contenuti. Descrizione della soluzione La prima parte della richiesta del problema è identica a quella dell esempio precedente; si tratta solo di intervenire nella parte relativa alla visualizzazione del contenuto della matrice e inserire in questa parte le istruzioni per comunicare i totali di riga.

25 Unità didattica 10 - Enumerazioni e array Si definisca una variabile totriga in cui accumulare i valori di ciascuna riga e, con riferimento al segmento di codice relativo alla scrittura della matrice, si inseriscano le istruzioni che servono per: 1. inizializzare totriga; 2. sommare in totriga i valori di una riga della matrice; 3. scrivere totriga. Pseudocodifica Costante Max = 20 //limite massimo per le dimensioni della matrice //struttura dati matrice di interi //input Righe Colonne Serie di numeri per caricare la matrice //output matrice totaleriga //variabili di lavoro i indice di riga j indice di colonna INIZIO.... //parte uguale all esempio precedente.... //visita la matrice PER i DA 0 A righe 1 totriga 0 PER j DA 0 A colonne 1 scrivi (matrice [i, j]) totriga totriga + mat [i, j] FINE PER scrivi (totriga) e vai a capo FINE PER FINE Codice TotaleRighe.cpp 1 #include <iostream> 2 #include <iomanip> 3 using namespace std; 4 5 //INIZIO 6 int main () 7 { 8 const int MAX = 20; //dimensione massima per la matrice 9 10 //definisci la matrice 11 int mat[max][max]; 12 int righe; 185

26 Sezione 4 - Strutture dei dati 13 int colonne; 14 int i; 15 int j; 16 int totriga; //acquisisci numero delle righe 19 do 20 { 21 cout<<"\ninserisci il numero righe (max="<<max<<") "; 22 cin>>righe; 23 } 24 //controlla il rispetto dei limiti 25 while (righe < 1 righe > MAX); //acquisisci il numero delle colonne 28 do 29 { 30 cout<<"\ninserisci il numero colonne (max="<<max<<") "; 31 cin>>colonne; 32 } 33 //controlla il rispetto dei limiti 34 while (colonne < 1 colonne > MAX); //salta una riga 37 cout<<"\n"; //carica la matrice 40 for (i=0; i<righe; i++) //per ogni riga della matrice 41 { 42 for (j=0; j<colonne; j++) //per ogni elemento della riga 43 { 44 //richiedi un dato e caricalo nella matrice 45 cout<<"inserisci un dato "; 46 cin>>mat [i][j]; 47 } 48 } cout<<"\ncontenuto della matrice: \n"; 51 cout<<setw(14)<<"totale"<<endl; //visita la matrice 54 for (i=0; i<righe; i++) //per ogni riga della matrice 55 { 56 totriga = 0; 57 for (j=0; j<colonne; j++) //per ogni elemento della riga 58 { 59 //scrivi gli elementi di una riga 60 //uno di seguito all'altro, con ingombro pari a 4 caratteri 61 cout<<setw(4)<<mat[i][j]; //accumula i valori in totriga 64 totriga = totriga + mat[i][j]; 65 } 66 //alla fine della riga scrivi il totale 67 //e vai a capo 186

27 Unità didattica 10 - Enumerazioni e array 68 cout<<setw(6)<<totriga<<endl; 69 } cout<<"\nmatrice visualizzata"; //fine programma 74 cout << "\n\nfine "; 75 system ("pause"); 76 return 0; 77 } Prova di esecuzione Analisi del codice Le righe 56 e 68 realizzano rispettivamente l inizializzazione e la scrittura a video di totriga; poiché queste due operazioni devono essere fatte una volta sola per ogni riga, esse sono poste all interno del ciclo for più grande, ma all esterno del ciclo for più interno. Alla riga 64 è indicata l istruzione per totalizzare i singoli valori di ogni elemento di ogni riga, pertanto essa è posta all interno del ciclo for più interno Passaggio di un vettore come parametro a una funzione Nell Unità didattica 9 è stato affrontato l argomento del passaggio dei parametri dal main alla funzione; in particolare, è stata spiegata la differenza tra passaggio per valore e per riferimento. I parametri presi in considerazione erano, tuttavia, dati di tipo semplice, non dati strutturati come un vettore o una matrice. Nel caso in cui i parametri da passare siano array occorre rispettare alcune particolarità sintattiche, che sono oggeto di questo paragrafo. Vediamo da subito un esempio. Esempio funzioniarray... Acquisire da tastiera un vettore di dimensione non superiore a 20 righe e stamparlo. Per la realizzazione del programma utilizzare tre funzioni, i cui nomi sono chiedidim, leggi- Vettore, scrivivettore. 187

28 Sezione 4 - Strutture dei dati Lo sviluppo top-down del programma è illustrato nella figura a destra. main Chiedi dimensione Leggi vettore Scrivi vettore Codice funzioniarray.cpp 1 #include <iostream> 2 using namespace std; 3 4 const int MAX = 20; //dimensione massima per il vettore 5 int dim; //dimensione acquisita da tastiera 6 int i; 7 8 //funzione per leggere la dimensione 9 int chiedidim (int &d) 10 { 11 //acquisisci e controlla la dimensione 12 do 13 { 14 //chiedi e leggi la dimensione 15 cout<<"\ninserisci la dimensione "; 16 cin>>d; 17 } 18 //controlla il rispetto dei limiti 19 while (d < 1 d > MAX); 20 return d; 21 } //funzione per leggere il vettore 24 void leggivettore (int v[], int d) 25 { 26 for (i=0; i<d; i++) 27 { 28 //richiedi un dato e caricalo nel vettore 29 cout<<"inserisci un dato "; 30 cin>>v[i]; 31 } 32 } //funzione per scrivere il vettore 35 void scrivivettore (int v[], int d) 36 { 37 cout<<"\ncontenuto del vettore: "; 38 //visita il vettore 39 for (i=0; i<d; i++) 40 { 41 cout<<" "<<v[i]; 42 } 43 cout<<"\nvettore visualizzato"; 44 }

29 Unità didattica 10 - Enumerazioni e array 46 //INIZIO 47 int main () 48 { 49 //definisci il vettore con dimensione MAX 50 int vett[max]; //richiama la funzione per acquisire la dimensione del vettore 53 dim = chiedidim (dim); //salta una riga 56 cout<<"\n"; //richiama la funzione leggivettore 59 leggivettore(vett,dim); //richiama la funzione scrivivettore 62 scrivivettore(vett,dim); //fine programma 65 cout << "\n\nfine "; 66 system ("pause"); 67 return 0; 68 } Prova di esecuzione Risulta del tutto uguale a quella dell esempio ArrayVaria. Analisi del codice Dalla riga 9 alla riga 21 è sviluppata la funzione chiedidim. Si noti che nell intestazione della funzione (riga 9) il parametro d richiede il passaggio per riferimento (&d), quindi le variazioni del contenuto della variabile d hanno effetto sulla variabile globale dim, quando questa verrà passata alla funzione alla riga 53. Alla riga 59 viene richiamata la funzione leggivettore, che è sviluppata dalla riga 24 alla riga 32 del codice. Si noti che alla riga 59 l argomento vett non riporta né la dimensione né l indicazione che si tratta di un array, e che il parametro v[] presente nell intestazione della funzione alla riga 24 si limita a ricordare, con la presenza delle parentesi quadre, che si tratta di un vettore e non di un dato elementare; inoltre v[] non è preceduto dal carattere & per richiederne il passaggio per riferimento, in quanto tale modalità di passaggio di parametri è in questo caso automatica. Analoghe considerazioni valgono per la funzione scrivivettore: in particolare, è da notare che il passaggio dei parametri per riferimento è indispensabile per la funzione leggivettore, ma non per scrivivettore. Nel caso in cui si voglia lavorare con array a più di una dimensione i richiami alla funzione leggivettore (che in questo caso si può chiamare leggimatrice) mantengono la stessa sintassi indicata nell esempio, con l argomento privo di dimensioni, mentre nell intestazione della funzione il parametro che si riferisce alla struttura multidimensionale DEVE contenere la specifica di tutte le dimensioni tranne la prima. Per esempio, se si vuole lavorare sulla matrice quadrata matr di ordine MAX, per richiamare la funzione leggimatrice si deve scrivere l istruzione che segue. leggimatrice(matr,... ); mentre l intestazione della funzione assume la forma indicata di seguito. void scrivimatrice (int m[][max],... )

30 Sezione 4 - Strutture dei dati Esercizi Unità didattica 10 Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), calcolare la somma dei valori contenuti nel vettore. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), azzerare il primo elemento del vettore. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), azzerare l ultimo elemento del vettore. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), azzerare l elemento di posto n, con n dato in input. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), calcolare la media dei valori contenuti nel vettore. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), calcolare la media dei valori contenuti nel vettore. Successivamente scrivere gli elementi del vettore che hanno valore superiore alla media. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), calcolare la media dei valori contenuti nel vettore. Successivamente contare gli elementi del vettore che hanno valore superiore alla media. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), calcolare la media dei valori contenuti nel vettore. Successivamente creare un nuovo vettore che contenga gli elementi del vettore iniziale che hanno valore superiore alla media. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), scrivere gli elementi pari contenuti nel vettore. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), scrivere gli elementi di posto pari contenuti nel vettore. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), creare un nuovo vettore che contenga gli elementi pari del vettore iniziale. Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), inserire in testa al vettore un nuovo elemento. Scrivere il vettore iniziale e il vettore modificato. (Suggerimenti: poiché deve essere inserito un nuovo elemento il vettore deve essere definito con dimensione pari a d + 1; in testa al vettore vuol dire al posto 0 del vettore; per fare spazio al nuovo elemento, i dati preesistenti devono essere spostati di un posto a destra). Dopo aver caricato in memoria un vettore di interi con dimensione d (con d inserito da tastiera), inserire in coda al vettore un nuovo elemento. Scrivere il vettore iniziale e il vettore modificato. (Suggerimenti: poiché deve essere inserito un nuovo elemento il vettore deve essere definito con dimensione pari a d + 1; In coda al vettore vuol dire dopo l ultimo elemento del vettore; per fare spazio al nuovo elemento, basta aumentare la dimensione iniziale). 190

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

Dettagli

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

LICEO SCIENTIFICO LEONARDO DA VINCI - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Modulo 1: Introduzione all informatica Fondamenti di teoria della elaborazione

Dettagli

Le stringhe. Le stringhe

Le stringhe. Le stringhe Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

void funzioneprova() { int x=2; cout<<dentro la funzione x=<<x<<endl; } FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo

Dettagli

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

INFORMATICA - I puntatori Roberta Gerboni

INFORMATICA - I puntatori Roberta Gerboni 1 2 I puntatori in C++ Il puntatore un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

I database relazionali (Access)

I database relazionali (Access) I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale

Dettagli

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo Release 5.20 Manuale Operativo COLLI Gestione dei Colli di Spedizione La funzione Gestione Colli consente di generare i colli di spedizione in cui imballare gli articoli presenti negli Ordini Clienti;

Dettagli

www.filoweb.it STAMPA UNIONE DI WORD

www.filoweb.it STAMPA UNIONE DI WORD STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere

Dettagli

Modulo: Fogli elettronici

Modulo: Fogli elettronici Corso: Abilità Informatiche Modulo: Fogli elettronici Pagina 1 di 18 Autori del Modulo: Bruno fadini; Pino Cepparulo Presentazione del Modulo: Versione Italiano Il modulo, corrispondente al modulo 4 dell'ecdl

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Alcune regole di base per scrivere un programma in linguaggio C

Alcune regole di base per scrivere un programma in linguaggio C Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Introduzione al Foglio Elettronico

Introduzione al Foglio Elettronico Microsoft Excel Introduzione al Foglio Elettronico Il Foglio Elettronico Si presenta come una grande tabella su un foglio di carta Le celle contengono differenti dati Numeri Testo Date Ecc I dati possono

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte. I TUTORI Indice Del Manuale 1 - Introduzione al Manuale Operativo 2 - Area Tutore o Area Studente? 3 - Come creare tutti insieme i Tutori per ogni alunno? 3.1 - Come creare il secondo tutore per ogni alunno?

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

Dettagli

M:\Manuali\VARIE\GENERAZIONE REPORT PARAMETRICI.doc GENERAZIONE REPORT PARAMETRICI

M:\Manuali\VARIE\GENERAZIONE REPORT PARAMETRICI.doc GENERAZIONE REPORT PARAMETRICI M:\Manuali\VARIE\GENERAZIONE REPORT PARAMETRICI.doc GENERAZIONE REPORT PARAMETRICI Di seguito, riportiamo le istruzioni per la gestione delle query parametriche utile ad eventuali ricerche di casi particolari,

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara LICEO SCIENTIFICO STATALE "FILIPPO LUSSANA" V i a A n g e l o Ma j, 1 2 4 1 2 1 B E R G A M O 035 237502 Fax: 035 236331 Sito e contatti: www.liceolussana.com Codice fiscale: 80026450165 PROGRAMMA SVOLTO

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Manuale operativo - Procedura per la costruzione, la pubblicazione di questionari

Manuale operativo - Procedura per la costruzione, la pubblicazione di questionari Questionari online Questionari online... 1 Ambienti dedicati... 2 Costruzione questionario... 4 Creazione struttura... 4 Gestione del questionario... 15 Condivisione (fase facoltativa)... 16 Autorizzazione

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

per scrivere un articolo da prima pagina! per inviare una newsletter Come si crea Comunicazione Anfaa Edizione 4a.2013

per scrivere un articolo da prima pagina! per inviare una newsletter Come si crea Comunicazione Anfaa Edizione 4a.2013 per scrivere un articolo da prima pagina! Quando si vuole inserire un articolo che compaia nel riquadro Ultime notizie della home page, si deve impostare la categoria Ultime notizie, in aggiunta a quella

Dettagli

Fogli Elettronici: MS Excel utilizzo avanzato

Fogli Elettronici: MS Excel utilizzo avanzato Fogli Elettronici: MS Excel utilizzo avanzato 1 Ripasso 2 1 Selezionare celle e gruppi di celle Una cella in un foglio è individuata dall incrocio tra la riga e la colonna (coordinate della cella) Es:

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

CHIUSURE di MAGAZZINO di FINE ANNO

CHIUSURE di MAGAZZINO di FINE ANNO CHIUSURE di MAGAZZINO di FINE ANNO Operazioni da svolgere per il riporto delle giacenze di fine esercizio Il documento che segue ha lo scopo di illustrare le operazioni che devono essere eseguite per:

Dettagli

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra

Dettagli

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie Facoltà di Scienze Motorie CHE COS È UN FOGLIO ELETTRONICO Una tabella che contiene parole e numeri che possono essere elaborati applicando formule matematiche e funzioni statistiche. Esame di Informatica

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica I tipi strutturati: gli array e le strutture Claudio De Stefano - Corso di Fondamenti di Informatica 1 arrays un array (o vettore) è una sequenza di oggetti dello stesso

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili 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

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

2003.06.16 Il sistema C.R.M. / E.R.M.

2003.06.16 Il sistema C.R.M. / E.R.M. 2003.06.16 Il sistema C.R.M. / E.R.M. Customer / Enterprise : Resource Management of Informations I-SKIPPER è un sistema di CONOSCENZE che raccoglie ed integra INFORMAZIONI COMMERCIALI, dati su Clienti,

Dettagli

EXCEL FUNZIONI PRINCIPALI

EXCEL FUNZIONI PRINCIPALI EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")

Dettagli

Esame del 3 febbraio 2010

Esame del 3 febbraio 2010 Fondamenti di Informatica CdL in Ingegneria Gestionale a.a. 2009/2010 Docente: Andrea Prati Esame del 3 febbraio 2010 Esercizio 1 Vettori Sia data un vettore (array monodimensionale) di interi: int VETT[N];

Dettagli

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B 23.XI.2012 VINCENZO MARRA Indice Esercizio 1 1 Menu 1 Tempo: 35 min. 2 Commento 1 2 Esercizio 2 2 Ordinamento e ricerca binaria con la classe

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera WORD per WINDOWS95 1.Introduzione Un word processor e` come una macchina da scrivere ma con molte più funzioni. Il testo viene battuto sulla tastiera ed appare sullo schermo. Per scrivere delle maiuscole

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1). La barra multifunzione La barra multifunzione e il pulsante Microsoft Office Se avete lavorato per tanti anni con la suite da ufficio Office, questa nuova versione 2007 può disorientarvi davvero molto.

Dettagli

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Le query. Lezione 6 a cura di Maria Novella Mosciatti Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

Dettagli

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

Lab 11 Gestione file di testo"

Lab 11 Gestione file di testo Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 11 Gestione file di testo" Lab15 1 Esercizio 1 n Realizzare un programma che, aperto un file di testo di nome

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Appunti di Sistemi Elettronici

Appunti di Sistemi Elettronici Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare

Dettagli

Logistica magazzino: Inventari

Logistica magazzino: Inventari Logistica magazzino: Inventari Indice Premessa 2 Scheda rilevazioni 2 Registrazione rilevazioni 3 Filtro 3 Ricerca 3 Cancella 3 Stampa 4 Creazione rettifiche 4 Creazione rettifiche inventario 4 Azzeramento

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

II.f. Altre attività sull euro

II.f. Altre attività sull euro Altre attività sull euro II.f È consigliabile costruire modelli in carta o cartoncino di monete e banconote, e farli usare ai bambini in varie attività di classe fin dal primo o al più dal secondo anno.

Dettagli

MS Word per la TESI. Barra degli strumenti. Rientri. Formattare un paragrafo. Cos è? Barra degli strumenti

MS Word per la TESI. Barra degli strumenti. Rientri. Formattare un paragrafo. Cos è? Barra degli strumenti MS Word per la TESI Barra degli strumenti Cos è? Barra degli strumenti Formattazione di un paragrafo Formattazione dei caratteri Gli stili Tabelle, figure, formule Intestazione e piè di pagina Indice e

Dettagli

Scheda operativa Versione rif. 13.01.3c00. Libro Inventari

Scheda operativa Versione rif. 13.01.3c00. Libro Inventari 1 Inventario... 2 Prepara tabelle Inventario... 2 Gestione Inventario... 3 Tabella esistente... 3 Nuova tabella... 4 Stampa Inventario... 8 Procedure collegate... 11 Anagrafiche Archivi ditta Progressivi

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

Progettazione di un Database

Progettazione di un Database Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli