Programmazione Procedurale in Linguaggio C++

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione Procedurale in Linguaggio C++"

Transcript

1 Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 3 (b) Metodologia di Sviluppo versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università della Basilicata mecca@unibas.it Sottoprogrammi: Programmazione Modulare >> Sommario Sommario Introduzione Metodologia per Raffinamenti Esempio: Indovina il Numero Esempio: Linee Guida per la Scrittura del Codice 2

2 Sottoprogrammi: Programmazione Modulare >> Introduzione Introduzione Nella lezione precedente a) albero delle chiamate b) regole di visibilità e utilizzo dei dati c) compilazione separata e riuso del codice In questa lezione d) metodologia di sviluppo per raffinamenti successivi e) linee guida per la scrittura di codice di qualità 3 Metodologia per Raffinamenti Tecnica per la scrittura di programmi effettuare l analisi delle specifiche scegliere l algoritmo scrivere il codice sorgente compilare e correggere gli errori sintattici verificare e correggere gli errori logici I passi cruciali algoritmo, codice sorgente e verifica 4

3 Metodologia per Raffinamenti Tecnica per raffinamenti successivi partire dalla specifica del problema complessivo individuare (preliminarmente) una strategia di dichiarazioni per la rappresentazione dei dati individuare una prima divisione sommaria del problema in passi (sottoproblemi) supporre di disporre di un sottoprogramma per ciascun passo 5 Metodologia per Raffinamenti Tecnica per raffinamenti successivi (cont.) definire il prototipo del sottoprogramma (modalità di comunicazione con l esterno) a questo punto è possibile scrivere una prima versione del codice del programma principale per completare la soluzione, è necessario raffinare la soluzione riapplicando lo stesso procedimento a ciascun sottoproblema 6

4 Metodologia per Raffinamenti Attenzione la tecnica suggerita è centrata sulla scrittura del codice il procedimento viene applicato lavorando direttamente sul codice sorgente si alternano fasi di riflessione sulla strategia a fasi di scrittura del codice è necessario prevedere anche fasi di verifica incrementale del codice scritto 7 Metodologia per Raffinamenti Verifiche incrementali compilare frequentemente il codice scritto per intercettare precocemente gli errori sintattici eseguire il codice non appena si raggiungono punti stabili (es: lettura e stampa oppure soluzioni intermedie) per intercettare precocemente eventuali errori logici 8

5 Indovina il Numero Specifica il calcolatore acquisisce il nome del giocatore il calcolatore sceglie un numero a caso compreso tra 1 e 100 il giocatore deve indovinare il numero facendo dei tentativi; ad ogni tentativo, se il numero è corretto, il giocatore vince; altrimenti il calcolatore risponde con un suggerimento che può essere Prova con un numero più alto oppure Prova con un numero più basso il calcolatore tiene traccia del numero di tentativi effettuati dal giocatore in qualsiasi momento il giocatore deve poter interrompere la partita e visualizzare il numero da indovinare 9 Indovina il Numero Analisi delle specifiche dati di ingresso: nome del giocatore e sequenza dei tentativi dati di uscita: messaggi del computer e numero di tentativi effettuati Domanda: come interrompere la partita? prima soluzione: un menu apposito presentato ogni volta (poco usabile) seconda soluzione: valore 0 per il tentativo Algoritmo e codice (>>> scrittura del prog.) 10

6 Indovina il Numero Riassumiamo il metodo I iterazione: Programma principale passo n.1: inizia il gioco e acquisisci il nome passo n.2: gioca le partite passo n.3: fine gioco e stampa il saluto Per ognuno dei passi (sottoproblemi) un sottoprogramma in alcuni casi è necessario ripetere il procedimento 11 Indovina il Numero #include <iostream.h> void schermolegginome(string &nome); void gioca(string nome); void schermofinale(string nome); void main() { string nome; } schermolegginome(nome); // per il passo 1 gioca(nome); // per il passo 2 schermofinale(nome); // per il passo 3 12

7 Indovina il Numero schermolegginome scrittura diretta schermofinale scrittura diretta II iterazione: gioca passo 2.1: genera il numero passo 2.2: gestisci tentativi 13 Indovina il Numero int generanumero(); void gestiscitentativi(string nome, int numero); void gioca(string nome) { int numero; numero = generanumero(); gestiscitentativi(nome, numero); } 14

8 Indovina il Numero generanumero scrittura diretta III iterazione: gestiscitentativi finchè l utente vuole andare avanti passo 2.2.1: acquisisci il tentativo se il tentativo è uguale a 0 interrompi il gioco passo 2.2.2: visualizza lo schermo di partita interrotta altrimenti se il tentativo è uguale al numero passo 2.2.3: visualizza lo schermo di vittoria altrimenti passo 2.2.4: analizza il tentativo e stampa l esito 15 Indovina il Numero //...prototipi omessi per ragioni di spazio void gestiscitentativi(string nome, int numero) { int giocata; int tentativi = 0; bool continua = true; while (continua) { giocata = schermotentativo(nome, tentativi); if (giocata == 0) { continua = false; schermointerruzione(nome, numero, tentativi); } else if (giocata == numero) { continua = false; schermoindovinato(nome, tentativi); } else { schermoesitogiocata(nome, numero, giocata); } } return; } 16

9 Indovina il Numero schermotentativo scritura diretta schermointerruzione scrittura diretta schermoindovinato scrittura diretta schermoesitogiocata scrittura diretta 17 Indovina il Numero In sintesi quindi il metodo guida il programmatore dall inizio alla fine della scrittura del codice applicato sistematicamente consente di produrre abbastanza facilmente la soluzione Attenzione è opportuno compilare progressivamente è opportuno eseguire e verificare progressivamente il codice scritto 18

10 Specifica siano dati due rettangoli nel piano cartesiano si supponga che i due rettangoli abbiano i lati paralleli agli assi cartesiani analizzare i rettangoli e stampare il quadrante in cui sono contenuti verificare se i due rettangoli hanno una sovrapposizione (una parte di piano che cade in entrambi i rettangoli) se sì, stampare l area della superficie comune 19 Esempi rettangoli nel I quadrante in questo caso c è una superficie comune di area pari a 12 cm 2 I rettangolo a cavallo tra più quadranti II rettangolo nel I quadrante in questo caso non c è superficie comune 20

11 Analisi della specifica è fondamentale l ipotesi semplificativa per cui i lati sono paralleli agli assi il problema principale è che i rettangoli possono essere in uno qualsiasi dei quadranti e le posizioni reciproche possono essere varie (disgiunti, parz. sovrapp., tot. sovrapp.) la casistica è abbastanza ampia 21 Analisi della specifica (continua) ambiguità: nell analisi del quadrante bisogna stabilire come considerare gli assi soluzione: stabiliamo di considerare gli assi come parte dei quadranti positivi nel caso in cui il rettangolo non sia in un unico quadrante stamperemo un messaggio generico Rettangolo tra più quadranti 22

12 Strategia per la rappresentazione dei dati ci sono vari modi per rappresentare un rettangolo in questo caso utilizzeremo le coordinate di due dei vertici ogni rettangolo sarà rappresentato con 4 variabili reali 2 coordinate del vertice in basso a sinistra 2 coordinate del vertice in alto a destra 23 Esempi rettangolo 1: (1, 2) (7, 6) rettangolo 2: (3, 1) (8, 5) rettangolo 1: (-2, 3.5) (3, 5.5) rettangolo 2: (2, 1) (6.2, 3) 24

13 A questo punto è possibile passare alla scrittura del codice (>>> scrittura del programma) Programma Principale: I Raffinamento passo 1: leggi i dati dei rettangoli passo 2: stampa i dati dei rettangoli passo 3: analizza i quadranti passo 4: trova la superficie comune passo 5: stampa il risultato 25 void leggidatirettangolo(float &x1,float &y1,float &x2,float &y2); void stampadatirettangolo(float x1, float y1, float x2, float y2); void stampaquadrante(float x1, float y1, float x2, float y2); float areasovrapposizione(float x1,float y1,float x2,float y2, float x3,float y3,float x4,float y4); void stamparisultato(float superficie); NOTA: tutte le procedure sono schermi (il nome è abbreviato) void main() { float x1, y1, x2, y2, x3, y3, x4, y4; float superficie; leggidatirettangolo(x1, y1, x2, y2); leggidatirettangolo(x3, y3, x4, y4); stampadatirettangolo(x1, y1, x2, y2); stampaquadrante(x1, y1, x2, y2); stampadatirettangolo(x3, y3, x4, y4); stampaquadrante(x3, y3, x4, y4); superficie = areasovrapposizione(x1,y1,x2,y2,x3,y3,x4,y4); stamparisultato(superficie); } 26

14 II Raffinamento passo 1: procedura leggirettangolo > scrittura diretta del codice passo 2: procedura stamparettangolo > scrittura diretta del codice passo 3: procedura stampaquadrante > applico iterativamente il procedimento passo 4: funzione areasovrapposizione > applico iterativamente il procedimento passo 5: stampa il risultato > scrittura diretta del codice 27 Come al solito in generale scrivo prima il codice del modulo chiamante e poi quello dei moduli chiamati stabilisco un accordo relativo alla chiamata prima ancora di avere deciso i dettagli del codice accordo: nome del modulo, numero e tipo dei parametri, eventuale tipo del risultato 28

15 Passo 3: stampaquadrante passo 3.1: trova il quadrante del vertice in basso a sinistra passo 3.2: trova il quadrante del vertice in alto a destra se sono nello stesso quadrante stampa il quadrante altrimenti stampa Rettangolo tra quadranti diversi 29 int quadrante(float x, float y); void stampaquadrante(float x1, float y1, float x2, float y2){ int q1, q2; q1 = quadrante(x1, y1); q2 = quadrante(x2, y2); cout << " \n"; if (q1==q2) { cout << "Rettangolo nel quadrante n. " << q1 << "\n"; } else { cout << "Rettangolo a cavallo tra quadranti diversi \n"; } cout << " \n"; return; } 30

16 Passo 3.1: quadrante il passo 3.1 e il passo 3.2 richiedono la stessa funzione dato un punto, deve restituire un numero intero corrispondente al quadrante è possibile scrivere direttamente il codice analizzando il valore dell ascissa e dell ordinata 31 int quadrante(float x, float y) { int q; if (x >= 0 && y >= 0) { q = 1; } else if (x < 0 && y >= 0) { q = 2; } else if (x < 0 && y < 0) { q = 3; } else { q = 4; } return q; } 32

17 Passo 4: areasovrapposizione si tratta di calcolare effettivamente l area della sovrapposizione In effetti la sovrapposizione, se c è, è un rettangolo posso pensare di calcolarne separatamente la base e l altezza e poi calcolarne l area 33 Di conseguenza dovrei calcolare l eventuale sovrapposizione tra le due basi l eventuale sovrapposizione tra le due altezze 34

18 Passo 4: areasovrapposizione passo 4.1: trova la lunghezza dell eventuale sovrapposizione tra le basi passo 4.2: trova la lunghezza dell eventuale sovrapposizione tra le altezze se entrambe le lunghezze sono positive calcola il prodotto restituisci il prodotto calcolato altrimenti restituisci 0 35 In realtà il passo 4.1 e il passo 4.2 corrispondono a ripetere due volte la stessa operazione trovare la sovrapposizione tra due segmenti è un problema unidimensionale: dati due generici segmenti su un asse, trovare la lunghezza dell event. segmento comune la prima volta i segmenti sono le basi la seconda volta i segmenti sono le altezze 36

19 Quindi utilizzerò un unica funzione lunghezzasegmentocomune che lavora su due segmenti ogni segmento è rappresentato dalle coordinate dei due estremi su un asse I caso: segmento 1: (-1, 3) segmento 2: (6, 8) II caso: segmento 1: (-1, 5) segmento 2: (3, 8) 37 float lunghezzasegmentocomune (float z1, float z2, float z3, float z4); float areasovrapposizione(float x1,float y1,float x2,float y2, float x3,float y3,float x4,float y4) { float sovrapposizionebasi; float sovrapposizionealtezze; float area = 0; sovrapposizionebasi = lunghezzasegmentocomune(x1,x2,x3,x4); sovrapposizionealtezze =lunghezzasegmentocomune(y1,y2,y3,y4); if (sovrapposizionebasi > 0 && sovrapposizionealtezze > 0) { area=sovrapposizionebasi*sovrapposizionealtezze; } return area; } 38

20 III Raffinamento è necessario scrivere la funzione lunghezzasegmentocomune Soluzione n.1 analisi caso per caso estremamente difficile da scrivere (casistica molto ampia) 39 Soluzione n.2 analizzando il problema, è possibile trovare una formula compatta che risolve il problema dati due segmenti di estremi z1-z2 e z3-z4 calcoliamo le lungh.: L1= z2-z1, L2= z4-z3 calcoliamo la coordinata di valore più basso INF = min(z1, z3) calcoliamo la coordinata di valore più alto SUP = max(z2, z4) 40

21 Soluzione n.2 (continua) calcoliamo L = (L1 + L2) - SUP - INF se L>0, i due segmenti hanno una porzione comune di lunghezza L Intuizione I caso: L1=5, L2=2, INF=1, SUP=8 L= =0 II caso: L1=4, L2=2, INF=-1, SUP=8 L= =-3 II caso: L1=6, L2=5, INF=-1, SUP=8 L= = Vantaggio della formula funziona in tutti i possibili casi (coordinate positive o negative, segmenti disgiunti, parzialmente o totalmente sovrapposti, ecc.) il codice è estremamente compatto soluzione elegante ma si tratta di un algoritmo per nulla scontato richiede capacità di analisi e conoscenza della geometria 42

22 A questo punto il problema è praticamente risolto è necessario utilizzare una funzione per il calcolo del minimo > scrittura diretta è necessario utilizzare una funzione per il calcolo del massimo > scrittura diretta la funzione lunghezzasegmentocomune può essere scritta come segue 43 float minimo(float a, float b); float massimo(float a, float b); float lunghezzasegmentocomune (float z1, float z2, float z3, float z4){ float lunghezza1, lunghezza2; float estremoinferiore, estremosuperiore; float lunghezza; lunghezza1 = fabs(z2-z1); lunghezza2 = fabs(z4-z3); estremoinferiore = minimo(z1, z3); estremosuperiore = massimo(z2, z4); lunghezza = lunghezza1 + lunghezza2 - fabs(estremosuperiore - estremoinferiore); return lunghezza; } 44

23 Una volta completata la scrittura è necessario verificare la correttezza Verifica è necessario costruire un insieme di dati di test per effettuare le verifiche devono rappresentare tutti o pressoché tutti i casi significativi ogni volta che il programma viene modificato, è necessario ripetere tutte le verifiche 45 Una porzione dei dati di test >> rettangoli1.cpp rettangolo 1: (1, 2) (7, 6) rettangolo 1: (-2, 3.5) (3, 5.5) rettangolo 2: (3, 1) (8, 5) rettangolo 2: (2, 1) (6.2, 3) sovrapposizione: 12 cm 2 sovrapposizione: 0 46

24 Metodologia per Raffinamenti In sintesi, ci sono buone e cattive notizie Buone notizie il metodo suggerito aiuta concretamente ad affrontare la soluzione di problemi complessi sequenza di passi sistematica centrata sulla scrittura del codice Cattive notizie non rappresenta di per sé la soluzione a tutti i problemi 47 Metodologia per Raffinamenti Il metodo è utile nella soluzione di problemi standard che rappresentano la maggioranza dei casi Ma, per essere un ottimo programmatore occorre anche essere creativi essere in grado di concepire soluzioni a volte originali a problemi meno usuali la creatività non si impara 48

25 Metodologia per Raffinamenti Statisticamente, al giorno d oggi il 90% circa del software sviluppato al giorno d oggi è software client-server con una logica applicativa molto semplice (interfaccia utente per sistemi di basi di dati) competenze standard Il resto del software applicazioni particolari che richiedono seria riflessione dal punto di vista della soluzione 49 Sottoprogrammi: Programmazione Modulare >> Linee Guida Linee Guida per Scrivere il Codice Obiettivo scrivere codice di qualità Qualità del codice correttezza (sintattica e semantica) semplicità e leggibilità (consente di semplificare la manutenzione) modularità (buona organizzazione) efficienza (consente di risolvere i problemi più rapidamente) 50

26 Sottoprogrammi: Programmazione Modulare >> Linee Guida Semplicità e Leggibilità Linea guida n.1 adottare sempre la soluzione più semplice tra quelle che potrebbero funzionare non complicare mai inutilmente il codice In generale la prima soluzione ad un problema non è mai la migliore conviene migliorarla e renderla più generale con il tempo, quando il problema è più chiaro 51 Sottoprogrammi: Programmazione Modulare >> Linee Guida Semplicità e Leggibilità Linea guida n.2 adottare regole di stile scegliere accuratamente gli identificatori per variabili e sottoprogrammi - notazione cammello indentare il codice adottare regole per la posizione delle parentesi utilizzare sempre le parentesi 52

27 Sottoprogrammi: Programmazione Modulare >> Linee Guida Semplicità e Leggibilità Linea guida n.3 scrivere moduli brevi nel caso di problemi complessi, spezzarli in più passi per frammentare la soluzione regola grossolana: il codice di un sottoprogramma non dovrebbe mai richiedere più di 30 secondi per essere interpretato da un altro programmatore di fatto questo può rendere inutili i commenti 53 Sottoprogrammi: Programmazione Modulare >> Linee Guida Modularità Linea guida n.4 adottare la metodologia incrementale procedere per raffinamenti successivi Linea guida n.5 compilare progressivamente e frequentemente il codice verificare progressivamente il codice eseguibile 54

28 Sottoprogrammi: Programmazione Modulare >> Linee Guida Modularità Linea guida n.6 ragionare accuratamente sui parametri scegliere con cura quali e quanti parametri (evitare parametri inutili) scegliere con cura il tipo dei parametri (standard o per riferimento) normalmente parametri standard per le funzioni 55 Sottoprogrammi: Programmazione Modulare >> Linee Guida Modularità Linea guida n.7 minimizzare l accoppiamento tra i sottoprogrammi analizzare il diagramma delle chiamate verificare che la logica applicativa del programma sia chiara ed ordinata Linea guida n.8 non utilizzare mai variabili globali è consentito di utilizzare costanti globali 56

29 Sottoprogrammi: Programmazione Modulare >> Linee Guida Modularità Linea guida n.9 massimizzare la coesione all interno di un sottoprogramma ogni sottoprogramma deve avere una funzione precisa nell applicazione deve risolvere un problema ben preciso e non fare due o più cose diverse 57 Sottoprogrammi: Programmazione Modulare >> Linee Guida Modularità Linea guida n.10 separare i sottoprogrammi orientati all elaborazione dai sottoprogrammi orientati all interazione con l utente i secondi (tipicamente chiamati schermi ) sono meno riutilizzabili, sia nella stessa applicazione che in applicazioni diverse i primi dovrebbero essere pensati per essere per quanto possibile riutilizzabili 58

30 Sottoprogrammi: Programmazione Modulare >> Linee Guida Modularità Linea guida n.10 (cont.) ogni applicazione dovrebbe avere una collezione di sottoprogrammi per le elaborazione che non interagiscono con l utente ed una collezione di sottoprogrammi per la gestione dell interazione con l utente >> sottoprogrammi di interfaccia le funzionalità dovrebbero essere ben separate 59 Sottoprogrammi: Programmazione Modulare >> Sommario Riassumendo Metodologia suggerita per raffinamenti successivi Linee Guida di Carattere Metodologico per la scrittura di codice di qualità 60

31 Termini della Licenza Termini della Licenza This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copiadella licenza, è possibile visitare oppure inviare una lettera all indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. 61

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Conclusioni versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Introduzione versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: C# versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli Sommario Introduzione Architettura Client-Server Architettura a Due Livelli Architettura a Tre Livelli Server Web Browser Web Introduzione La storia inizia nel 1989 Tim Berners-Lee al CERN, progetto WWW

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica: C# Parte b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro Laboratorio di Programmazione Lezione 1 Cristian Del Fabbro Reperibilità homepage corso: https://users.dimi.uniud.it/~cristian.delfabbro/teaching.php email: cristian.delfabbro@uniud.it telefono: 0432 558676

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Framework per il Modello 2 it.unibas.pinco versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Architetture versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione XML: JDOM versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1 Corso di INFORMATICA Laurea triennale - Comunicazione&DAMS Dr. Marco Manna 1 1 Dipartimento di Matematica Università della Calabria Corso di laurea intercalsse in COMUNICAZIONE&DAMS http://elleboro.unical.it/drupalab/informatica2009/

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico ISTITUTO TECNICO STATALE MARCHI FORTI Viale Guglielmo Marconi n 16-51017 PESCIA (PT) - ITALIA PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico Docente PARROTTA GIOVANNI

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)

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

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

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

Web Content Management and E- Learning

Web Content Management and E- Learning Web Content Management and E- Learning Dott. Fabio Fioravanti fioravanti@sci.unich.it http://www.sci.unich.it/~fioravan Corso di Laurea in Economia e Management Facoltà di Scienze Manageriali UNICH - AA

Dettagli

utente: collezione di contenuti e servizi sviluppatore: pagine e applicazioni

utente: collezione di contenuti e servizi sviluppatore: pagine e applicazioni Tecnologie di Sviluppo per il Web Valutazione della Qualità del Codice HTML versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

PIANO DI LAVORO. a.s. 2015 / 2016

PIANO DI LAVORO. a.s. 2015 / 2016 PIANO DI LAVORO a.s. 2015 / 2016 Materia: INFORMATICA Classe: terza informatica- sez. A Data di presentazione: 15/10/2015 DOCENTI FIRMA Cerri Marta Bergamasco Alessandra Posta elettronica: itisleon@tin.it

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Strumenti di Sviluppo: C# versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Gestione di files Motivazioni

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

Dettagli

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:

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

Introduzione alla rete Internet

Introduzione alla rete Internet Introduzione alla rete Internet Gruppo Reti TLC nome.cognome@polito.it http://www.telematica.polito.it/ INTRODUZIONE ALLE RETI TELEMATICHE - 1 Copyright Quest opera è protetta dalla licenza Creative Commons

Dettagli

Mappatura dei canali logici sui canali fisici

Mappatura dei canali logici sui canali fisici Mappatura dei canali logici sui canali fisici Renato Lo Cigno www.dit.unitn.it/locigno/didattica/wn/...copyright Quest opera è protetta dalla licenza Creative Commons NoDerivs-NonCommercial. Per vedere

Dettagli

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa

Dettagli

Protocollo dei saperi imprescindibili Ordine di scuola: professionale

Protocollo dei saperi imprescindibili Ordine di scuola: professionale Protocollo dei saperi imprescindibili Ordine di scuola: professionale DISCIPLINA: MATEMATICA RESPONSABILE: CAGNESCHI F. IMPERATORE D. CLASSE: prima servizi commerciali Utilizzare le tecniche e le procedure

Dettagli

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività Valentina Presutti (A-L) Riccardo Solmi (M-Z) Definizione del problema Modello di un dominio Si vuole

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione su Basi di Dati: ADO.NET versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

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

Dettagli

Esercizio: numero primo

Esercizio: numero primo Esercizio: numero primo Dato un numero N scrivere un algoritmo che verifichi se N è un numero primo e stampi un relativo messaggio Il numero N è un numero primo se è divisibile solo per 1 e per N Quindi,

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

AE RZT QSO RKPT SQZC

AE RZT QSO RKPT SQZC Laboratorio di Informatica Lezione 1: Introduzione al corso Prof. Riccardo Cassinis Dott. Marzia Tassi Siete seduti nel posto giusto? AE RZT QSO RKPT SQZC PRFGE BERTSZ KDTVSU ZQRPDE 2 1 Prima di cominciare,

Dettagli

INFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C

INFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C INFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C DESCRIZIONE GENERALE In questa esperienza il C verrà utilizzato per elaborare immagini

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Pacchetti Applicativi Excel e i Grafici CdL Economia A.A. 2012/2013 Domenica Sileo Università degli Studi della Basilicata Pacchetti Applicativi: Excel >> Sommario Sommario 2

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

3) Il seguente numerale A1F0 in base 16 a quale numero in base 10 corrisponde?

3) Il seguente numerale A1F0 in base 16 a quale numero in base 10 corrisponde? Leggete attentamente le domande del test e date la/le vostra/e risposta/e. 1) Per quanto tempo la memoria RAM di un personal computer conserva le informazioni? Finchè lo hard disk funziona in modo corretto

Dettagli

Materiale didattico. Sommario

Materiale didattico. Sommario Diploma Universitario in Ingegneria Informatica Corso di Ingegneria del Software Docente: ing. Anna Rita Fasolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Dettagli

Linguaggio C - Funzioni

Linguaggio C - Funzioni Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Esercitazione Strumentazione virtuale

Esercitazione Strumentazione virtuale Esercitazione Strumentazione virtuale - 1 Esercitazione Strumentazione virtuale 1 - Oggetto Introduzione alla strumentazione virtuale. LabView: il pannello frontale e il diagramma a blocchi. Esempi: generatore

Dettagli

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

Liceo Scientifico " C. CATTANEO " PIANO DI LAVORO DI INFORMATICA. CLASSE 3 LSA SEZ. B e D

Liceo Scientifico  C. CATTANEO  PIANO DI LAVORO DI INFORMATICA. CLASSE 3 LSA SEZ. B e D Liceo Scientifico " C. CATTANEO " PIANO DI LAVORO DI INFORMATICA CLASSE 3 LSA SEZ. B e D Sommario PIANO DI LAVORO DI INFORMATICA... 1 INDICAZIONI GENERALI... 2 PREREQUISITI... 2 CONOSCENZE, COMPETENZE

Dettagli

GIUSEPPE DI GRANDE CORSO DI FORMAZIONE SU BIBLOS

GIUSEPPE DI GRANDE CORSO DI FORMAZIONE SU BIBLOS CORSO DI FORMAZIONE SU BIBLOS - 7ª LEZIONE - Pagina 1 GIUSEPPE DI GRANDE CORSO DI FORMAZIONE SU BIBLOS Strategie e tecniche per produrre libri braille in completa autonomia Revisione del 28 luglio 2012

Dettagli

PG5 Starter Training Applicazione File System Daniel Ernst EN02 2012-02-26 Stefano Peracchi IT01 2013-05-20

PG5 Starter Training Applicazione File System Daniel Ernst EN02 2012-02-26 Stefano Peracchi IT01 2013-05-20 PG5 Starter Training Applicazione File System Daniel Ernst EN02 2012-02-26 Stefano Peracchi IT01 2013-05-20 Introduzione Materiale richiesto Notebook o computer Controllore PCD1 E Cavo USB Scheda «Training»

Dettagli

AMBIENTE GRAFICO DI FEDORA: ATTIVITA ESEGUIBILI DA TUTTI GLI UTENTI

AMBIENTE GRAFICO DI FEDORA: ATTIVITA ESEGUIBILI DA TUTTI GLI UTENTI AMBIENTE GRAFICO DI FEDORA: ATTIVITA ESEGUIBILI DA TUTTI GLI UTENTI DESKTOP KDE E GNOME PROGRAMMI DI UTILITA' PERSONALIZZAZIONE DEL DESKTOP NAVIGAZIONE E POSTA ELETTRONICA I contenuti di questo documento,

Dettagli

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m

Dettagli

Algoritmi e basi del C

Algoritmi e basi del C Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 9 Marzo 2016 Info logistiche Sito del corso Le lezioni sono TUTTE già online http://home.deib.polimi.it/santambr/dida/ieim/2016/docs.htm

Dettagli

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette. 3.5 STAMPA UNIONE Le funzioni della stampa unione (o stampa in serie) permettono di collegare un documento principale con un elenco di nominativi e indirizzi, creando così tanti esemplari uguali nel contenuto,

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione al Web WWW World Wide Web CdL Economia A.A. 2012/2013 Domenica Sileo Università degli Studi della Basilicata Introduzione al Web : WWW >> Sommario Sommario 2 n World

Dettagli

Utilizzo collegamento remoto

Utilizzo collegamento remoto Utilizzo collegamento remoto Introduzione Il collegamento VPN (virtual private network) consente a PC collegati ad internet ma fisicamente fuori dalla rete interna regionale, di accedere, con le credenziali

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015 VINCENZO MARRA Indice Parte 1. Input/Output standard dalla console 2 Esercizio 1 2 Eco

Dettagli

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito.

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito. SQL Server 2008 Introduzione all uso di SQL Server 2008 Dutto Riccardo http://dbdmg.polito.it SQL Server 2008 Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione DB SQL Server Business

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

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Introduzione al corso Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of

Dettagli

ESERCIZI DEL CORSO DI INFORMATICA

ESERCIZI DEL CORSO DI INFORMATICA ESERCIZI DEL CORSO DI INFORMTIC Questa breve raccolta di esercizi vuole mettere in luce alcuni aspetti della prima parte del corso e fornire qualche spunto di riflessione. Il contenuto del materiale seguente

Dettagli

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31 Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero

Dettagli

SAP Manuale del firmatario DocuSign

SAP Manuale del firmatario DocuSign SAP Manuale del firmatario DocuSign Sommario 1. SAP Manuale del firmatario DocuSign... 2 2. Ricezione di una notifica e-mail... 2 3. Apposizione della firma sul documento... 3 4. Altre opzioni... 4 4.1

Dettagli

Inetd e TCP Wrappers

Inetd e TCP Wrappers Inetd e TCP Wrappers Daniele Venzano 3 ottobre 2003 Indice 1 Introduzione 1 2 Inetd 2 2.1 Il file di configurazione /etc/inetd.conf.................... 2 2.1.1 Nome del servizio............................

Dettagli

Grafico della parabola

Grafico della parabola Grafico della parabola Il grafico matematico è un disegno che mostra l andamento di una funzione f(x) al variare della variabile x. Per tracciare un grafico sul video del computer, si deve scegliere un

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: C# versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

3. Terza esercitazione autoguidata: progetto gestione voli

3. Terza esercitazione autoguidata: progetto gestione voli 9 3. Terza esercitazione autoguidata: progetto gestione voli Qui ci occupiamo di scrivere un programma abbastanza lungo, dedicato alla gestione di una tabella di dati. Una tabella e una struttura dati

Dettagli

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

IL CONCETTO DI FILE. È illecito operare oltre la fine del file. IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni

Dettagli

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

Federico Laschi. Conclusioni

Federico Laschi. Conclusioni Lo scopo di questa tesi è stato quello di proporre alcuni algoritmi di allocazione dinamica della capacità trasmissiva, basati su tecniche di predizione on-line dei processi di traffico. Come prima analisi

Dettagli

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1 Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria R. Vitolo Dipartimento di Matematica Università di Lecce SaLUG! - Salento Linux User Group Il programma OCTAVE per l

Dettagli

Matematica con il foglio di calcolo

Matematica con il foglio di calcolo Matematica con il foglio di calcolo Sottotitolo: Classe: V primaria Argomento: Numeri e operazioni Autore: Guido Gottardi, Alberto Battaini Introduzione: l uso del foglio di calcolo offre l opportunità

Dettagli

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1 BASI DI DATI basi di dati - introduzione ai sistemi informativi 1 Sistema Informativo Insieme degli strumenti, risorse e procedure che consentono la gestione delle informazioni aziendali e' essenziale

Dettagli

Istituto Professionale di Stato per l Industria e l Artigianato Giancarlo Vallauri. Classi I C I G

Istituto Professionale di Stato per l Industria e l Artigianato Giancarlo Vallauri. Classi I C I G Esercizi Estivi di Matematica a.s. 0/04 Istituto Professionale di Stato per l Industria e l Artigianato Giancarlo Vallauri Classi I C I G ALUNNO CLASSE Ulteriore ripasso e recupero anche nei siti www.vallauricarpi.it

Dettagli

Rilevazione degli apprendimenti. Anno Scolastico 2006 2007 PROVA DI MATEMATICA. Scuola Secondaria di II grado. Classe Terza Tipo A. Codici. Scuola:...

Rilevazione degli apprendimenti. Anno Scolastico 2006 2007 PROVA DI MATEMATICA. Scuola Secondaria di II grado. Classe Terza Tipo A. Codici. Scuola:... Ministero della Pubblica Istruzione Rilevazione degli apprendimenti Anno Scolastico 2006 2007 PROVA DI MATEMATICA Scuola Secondaria di II grado Classe Terza Tipo A Codici Scuola:..... Classe:.. Studente:.

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

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

COMPILAZIONE. Tarsformazione di linguaggi

COMPILAZIONE. Tarsformazione di linguaggi COMPILAZIONE Tarsformazione di linguaggi Le fasi della compilazione File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File

Dettagli

Analisi. Calcolo Combinatorio. Ing. Ivano Coccorullo

Analisi. Calcolo Combinatorio. Ing. Ivano Coccorullo Analisi Ing. Ivano Coccorullo Prof. Ivano Coccorullo ü Molti dei problemi classici di calcolo delle probabilità si riducono al calcolo dei casi favorevoli e di quelli possibili. Quando le situazioni diventano

Dettagli

1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/2010 - III Informatica Serale I.T.I.S.

1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/2010 - III Informatica Serale I.T.I.S. 1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/2010 - III Informatica Serale I.T.I.S. Molinari 4: Il programma gestisce gli articoli di un negozio

Dettagli

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO ALGORITMI 1. GLI ALGORITMI Un algoritmo è la descrizione del percorso risolutivo di un problema per giungere dai dati iniziali ai risultati finali. Scriviamo l algoritmo pensando di rivolgerci a un esecutore,

Dettagli

Funzioni. Il modello console. Interfaccia in modalità console

Funzioni. Il modello console. Interfaccia in modalità console Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi

Dettagli

Grafi. Moreno Marzolla Dip. di Informatica Scienza e Ingegneria Università di Bologna. moreno.marzolla@unibo.it http://www.moreno.marzolla.

Grafi. Moreno Marzolla Dip. di Informatica Scienza e Ingegneria Università di Bologna. moreno.marzolla@unibo.it http://www.moreno.marzolla. Grafi Moreno Marzolla ip. di Informatica Scienza e Ingegneria Università di ologna moreno.marzolla@unibo.it http://www.moreno.marzolla.name/ opyright lberto Montresor, Università di Trento, Italy (http://www.dit.unitn.it/~montreso/asd/index.shtml)

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti

Dettagli

Le aree dell informatica

Le aree dell informatica Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

CURRICOLO TRASVERSALE SCUOLA PRIMARIA a.s. 2015-16

CURRICOLO TRASVERSALE SCUOLA PRIMARIA a.s. 2015-16 CURRICOLO TRASVERSALE SCUOLA PRIMARIA a.s. 2015-16 Competenza n 1: Comunicazione nella madrelingua o lingua di istruzione. Utilizza la lingua italiana per comprendere semplici enunciati e raccontare esperienze

Dettagli

SCUOLA PRIMARIA - MORI

SCUOLA PRIMARIA - MORI ISTITUTO COMPRENSIVO DI MORI Via Giovanni XXIII, n. 64-38065 MORI Cod. Fisc. 94024510227 - Tel. 0464-918669 Fax 0464-911029 www.icmori.it e-mail: segr.ic.mori@scuole.provincia.tn.it REPUBBLICA ITALIANA

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Corso ForTIC C2 LEZIONE n. 8. Cos'è la shell Le variabili d'ambiente L'uso della shell per la realizzazione di semplici script

Corso ForTIC C2 LEZIONE n. 8. Cos'è la shell Le variabili d'ambiente L'uso della shell per la realizzazione di semplici script Corso ForTIC C2 LEZIONE n. 8 Cos'è la shell Le variabili d'ambiente L'uso della shell per la realizzazione di semplici script I contenuti di questo documento, salvo diversa indicazione, sono rilasciati

Dettagli