Programmazione Procedurale in Linguaggio C++
|
|
- Mattia Rosa
- 7 anni fa
- Visualizzazioni
Transcript
1 Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Concetti Avanzati Tecniche di Test e Correzione versione 2.4 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università della Basilicata mecca@unibas.it Sottoprogrammi: Concetti Avanzati >> Sommario Sommario Tecniche di Test e Correzione Utilizzo del Debugger Il Turbo Debugger 2
2 Sottoprogrammi: Concetti Avanzati >> Tecniche di Test e Correzione Tecniche di Test e Correzione Dopo la scrittura del codice è necessario condurre le verifiche (test) ed eliminare gli eventuali errori logici Il metodo tipico di test test manuale e interattivo Il metodo tipico di correzione metodo delle stampe 3 Sottoprogrammi: Concetti Avanzati >> Tecniche di Test e Correzione Tecniche di Correzione Queste tecniche funzionano per programmi dalla logica applicativa semplice con un piano dei test semplici Principale svantaggio i test sono eseguiti interattivamente il programmatore è costretto a ripeterli tutte le volte che effettua modifiche processo noioso e aperto agli errori 4
3 Sottoprogrammi: Concetti Avanzati >> Tecniche di Test e Correzione Tecniche di Correzione In casi più complessi programmi con logica applicativa complessa in cui il codice viene sottoposto a frequenti modifiche è opportuno adottare tecniche alternative e strumenti alternativi Debugger 5 Sottoprogrammi: Concetti Avanzati >> Idea programmare i test scrivendo il codice relativo in modo che siano totalmente automatizzati e siano eseguibili rapidamente, ripetutamente, senza intervento interattivo eseguire i test deve costare quanto schiacciare un tasto 6
4 Sottoprogrammi: Concetti Avanzati >> Vantaggio di questo approccio è possibile effettuare più facilmente modifiche al codice scoprendo presto eventuali regressioni (passi indietro), ovvero errori introdotti dalle modifiche in modo da poterli eliminare concentrandosi solo sulle porzioni di codice scorrette i test diventano un paracadute 7 Sottoprogrammi: Concetti Avanzati >> Cos é un test un pezzo di codice aggiuntivo rispetto a quello dell applicazione che utilizza uno o più sottoprogrammi dell applicazione fornendo dei dati stabiliti dal programmatore e facendo asserzioni sul risultato atteso il test è superato se l asserzione è vera 8
5 Sottoprogrammi: Concetti Avanzati >> Un esempio sovrapposizione di rettangoli Caratteristiche del problema logica applicativa complessa vari raffinamenti nella scelta della soluzione (concepimento della formula) piano di test elaborati 9 Sottoprogrammi: Concetti Avanzati >> TEST n. 1 TEST n. 2 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 10
6 Sottoprogrammi: Concetti Avanzati >> TEST n. 3 TEST n. 4 rettangolo 1: (-1, 1) (7, 6) rettangolo 1: (-2, 1) (3, 5.5) rettangolo 2: (3, 2) (6, 5) rettangolo 2: (3, 1) (7.2, 3) sovrapposizione: 9 cm 2 sovrapposizione: 0 11 Sottoprogrammi: Concetti Avanzati >> >> rettangoli2.cpp >> rettangoli2test.cpp TEST n. 5 TEST n. 6 rettangolo 1: (-1, 1) (7, 6) rettangolo 1: (-2, 3) (3, 5.5) rettangolo 2: (4, 2) (7, 5) rettangolo 2: (3, 1) (7.2, 3) sovrapposizione: 9 cm 2 sovrapposizione: 0 12
7 Sottoprogrammi: Concetti Avanzati >> La Procedura assert void assert (string s, bool asserzione) { if (!asserzione) { cout << "\n ****Errore: " << s << endl; //exit(0); } else { cout << "."; } return; } 13 Sottoprogrammi: Concetti Avanzati >> Un Esempio di Test void testareasovrapposizione1() { cout << "\n**testareasovrapposizione1\n"; rettangolo r1 = {{1, 2}, {7, 6}}; rettangolo r2 = {{3, 1}, {8, 5}}; float area; area = areasovrapposizione(r1, r2); assert("test area n.1", area == 12); return; } 14
8 Sottoprogrammi: Concetti Avanzati >> Un Esempio di Test void main() { testquadrante1(); testminimo1(); testmassimo1(); testlunghezzasegmentocomune1(); testlunghezzasegmentocomune2(); testareasovrapposizione1(); testareasovrapposizione2(); testareasovrapposizione3(); testareasovrapposizione4(); testareasovrapposizione5(); testareasovrapposizione6(); } 15 Sottoprogrammi: Concetti Avanzati >> L approccio scrivere molti piccoli test verificando tutti i sottoprogrammi in condizioni diverse di utilizzo Test di Unità ( Unit Tests ) le unità (i moduli) che compongono il codice vengono verificate una per una per accertare il funzionamento corretto di ciascuno 16
9 Sottoprogrammi: Concetti Avanzati >> Alcune annotazioni il sistema richiede di scrivere molto codice aggiuntivo (il codice dei test) i test diventano essi stessi parte della base di codice e devono essere manutenuti il sistema di per sé non garantisce l eliminazione degli errori (dipende da come sono scritti i test) 17 Sottoprogrammi: Concetti Avanzati >> Attenzione non è possibile effettuare test sugli schermi è possibile effettuare test solo sui sottoprogrammi di calcolo e quelli per la persistenza infatti: questi ultimi sono riutilizzabili (anche a scopo di test) i primi no ulteriore conferma dell importanza della separazione 18
10 Sottoprogrammi: Concetti Avanzati >> Test sugli schermi test funzionali test che verificano che l interazione con l utente si svolga correttamente e i risultati forniti siano quelli corretti un altra categoria di test In generale sono necessari sia test di unità che test funzionali 19 Sottoprogrammi: Concetti Avanzati >> Di conseguenza attenzione a come scrivete il codice Esempio: stampa del quadrante int calcolaquadrante(punto p); void schermostampaquadrante(punto p){ int q = calcolaquadrante(p); cout << Quadrante: << q << endl; return; } Chiara separazione tra il modulo di calcolo e il modulo di schermo 20
11 Sottoprogrammi: Concetti Avanzati >> Alternativa scorretta void quadrante(punto p){ int q = 4; if (p.x >= 0 && p.y >= 0) q = 1; else if (p.x < 0 && p.y >= 0) q = 2; else if (p.x < 0 && p.y < 0) q = 3; cout << Quadrante : << q << endl; return; } Questo modulo effettua contemporaneamente calcolo ed interazione; sul codice che calcola il quadrante non è possibile effettuare test 21 Sottoprogrammi: Concetti Avanzati >> Cosa fare in caso di scoperta di un baco errore logico nel codice non catturato da un test prima operazione: scrivere un test che cattura il baco (in modo che fallisca) seconda operazione: correggere il codice, in modo che il test abbia successo 22
12 Sottoprogrammi: Concetti Avanzati >> Come correggere gli errori? il sistema aiuta moltissimo ad identificarli il sottoprogramma scorretto viene immediatamente identificato Primo approccio ispezione del codice Secondo approccio utilizzo del debugger 23 Sottoprogrammi: Concetti Avanzati >> Utilizzo del Debugger Utilizzo del Debugger Debugger ( Correttore ) strumento che consente di ispezionare la pila di attivazione durante il funzionamento di un programma verificando i valori delle variabili verificando i valori dei parametri in modo da seguire passo passo l esecuzione del codice per trovare dove si verificano gli errori 24
13 Sottoprogrammi: Concetti Avanzati >> Utilizzo del Debugger Utilizzo del Debugger Funzionalità principali consente di eseguire il programma decidendo punti di interruzione ( breakpoint ) ad ogni breakpoint l esecuzione si interrompe è possibile ispezionare la pila di attivazione in corrispondenza dei punti di interruzione è possibile analizzare il contenuto dei record di attivazione per verificare i valori in memoria 25 Sottoprogrammi: Concetti Avanzati >> Utilizzo del Debugger Utilizzo del Debugger Un esempio per il C++ il Turbo Debugger 5.5 della Borland pensato per funzionare con il compilatore Borland BCC 5.5 distribuito gratuitamente come il compilatore sul sito Un esempio per il FORTRAN il compilatore SALFORD ha un debugger apposito a corredo (Programmi >> Salford) 26
14 Sottoprogrammi: Concetti Avanzati >> Utilizzo del Debugger Utilizzo del Turbo Debugger Per usare il Turbo Debugger è necessario compilare il codice utilizzando l opzione di debugging v esempio: bcc32 v prova.cpp Per lanciare il Turbo Debugger td32 prova.exe Turbo Debugger >> 27 Sottoprogrammi: Concetti Avanzati >> Utilizzo del Debugger Utilizzo del Turbo Debugger 28
15 Sottoprogrammi: Concetti Avanzati >> Utilizzo del Debugger Utilizzo del Turbo Debugger Punti di Interruzione ( Breakpoint ) si attivano/disattivano selezionando la linea di codice sorgente corrispondente e premendo F2 attenzione: solo se la linea è preceduta da un punto (.) il codice dell applicazione è diviso in pezzi per il debugging per vedere l elenco dei pezzi CTRL-F 29 Sottoprogrammi: Concetti Avanzati >> Utilizzo del Debugger Utilizzo del Turbo Debugger In corrispondenza dei breakpoint vari comandi disponibili In particolare è possibile esplorare la pila è possibile valutare condizioni (es: condizioni di controllo degli if o dei while) è possibile effettuare il log su file o in una finestra particolare degli eventi è possibile continuare 30
16 Sottoprogrammi: Concetti Avanzati >> Utilizzo del Debugger Utilizzo del Turbo Debugger Continuare fino al breakpoint successivo continue Procedere passo passo esegue solo l istruzione successiva trace into (o step into ): se l istruzione contiene la chiamata di un sottoprog., dettagliare l esecuzione step over : se l istruzione contiene la chiamata di un sottoprog., ignorare i dettagli dell esecuzione 31 Sottoprogrammi: Concetti Avanzati >> Sommario Riassumendo Tecniche di Test e Correzione Il Metodo delle Stampe Utilizzo del Debugger Il Turbo Debugger 32
17 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 copia della licenza, è possibile visitare oppure inviare una lettera all indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. 33
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 6 Metodologia di Sviluppo - b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: Introduzione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Introduzione versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 5 Conclusioni versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Strumenti di Sviluppo: Introduzione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 2 (a) Sintassi e Semantica versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 3 Istruzioni Iterative (Cicli) versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 6 Il FORTRAN versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica: Convenzioni di Stile versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliProgrammazione 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)
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Concetti Avanzati versione 2.5 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte c versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Programmazione Web: Introduzione versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 3 Record versione 2.1 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: C# versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 1 Architettura del Calcolatore versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Polimorfismo - d Regole Sintattiche e Semantiche versione 1.2 Questo lavoro è concesso in uso secondo i termini di
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: C# versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 1 Introduzione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java : Conclusioni versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliTecnologie 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
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione su XML: Strato di Persistenza versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: C# Parte a versione 1.5 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Procedurale in Linguaggio C++
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)
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Presentazione del Corso Anno Accademico 2003-2004 http://www.db.unibas.it/users/mecca/corsi/progoggettii versione 1.0 Questo lavoro è concesso in
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Uso dei Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Linguaggi di Programmazione Sintassi
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliTesting, correttezza e invarianti
Testing, correttezza e invarianti Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Copyright 2018 Moreno Marzolla, Università
DettagliInformatica Applicata
Ing. Irina Trubitsyna Elementi di base di un programma Dichiarazione dei dati in un programma Sommario Panoramica Elementi di Base di un Programma Struttura Direttive Elementi Sintattici di Base Commenti
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Dati La Matrice versione. Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Date versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione 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.
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Programmazione su Basi di Dati: Tecnologie versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti Sintassi e Semantica Parte b: Peculiarità di Java versione 1.2 Questo lavoro è concesso in uso secondo i termini di una licenza
DettagliFondamenti di Informatica AA 2016/2017
Fondamenti di Informatica AA 2016/2017 Eng. Ph.D. Michela Paolucci DISIT Lab http://www.disit.dinfo.unifi.it Department of Information Engineering, DINFO University of Florence Via S. Marta 3, 50139, Firenze,
DettagliIntroduzione ai Calcolatori Elettronici
Introduzione ai Calcolatori Elettronici Elementi di Base dell ICT Information and Communication Technology Concetti Introduttivi A.A. 2013/2014 Domenica Sileo Università degli Studi della Basilicata Elementi
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Strati Applicativi versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università della Basilicata mecca@unibas.it
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Strumenti di Sviluppo: Ant Parte d versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Controllo >> Sommario Sommario Ricapitolazione Alcune
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: Conclusioni - Parte b Riflessione versione 1.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 3 Record G. Mecca M. Samela Università della Basilicata Tipi Strutturati: Record >> Sommario Sommario Introduzione Dichiarazione di Record
DettagliProgrammazione 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
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Incapsulamento versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Tipi Strutturati: Introduzione >> Sommario Sommario Panoramica Alcuni Esempi
DettagliIntroduzione alle reti telematiche
Introduzione alle reti telematiche Gruppo Reti TLC nome.cognome@polito.it http://www.telematica.polito.it/ INTRODUZIONE ALLE RETI TELEMATICHE - 1 Copyright Quest opera è protetta dalla licenza Creative
DettagliReti di calcolatori Introduzione al corso
Reti di calcolatori Introduzione al corso Gruppo Reti TLC nome.cognome@polito.it http://www.telematica.polito.it/ RETI DI CALCOLATORI Introduzione al corso - 1 Copyright Quest opera è protetta dalla licenza
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Conclusioni versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliDebug di un programma
Debug di un programma Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Clonazione e Serializzazione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative
DettagliIl problema dello zaino
Il problema dello zaino (knapsack problem) Damiano Macedonio mace@unive.it Copyright 2010 2012 Moreno Marzolla, Università di Bologna (http://www.moreno.marzolla.name/teaching/asd2011b/) This work is licensed
DettagliDebugger. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Debugger Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2017 2018 Errori sintattici e semantici Gli errori commessi in un programma si dividono
DettagliEsercitazioni di Fondamenti Informatica - Modulo A 1
Esercitazioni di Fondamenti Informatica - Modulo A 1 Raccolta requisiti Progettazione Implementazione Errori Sintattici Errori Semantici CICLO DI VITA DEL SOFTWARE Debug Test Trasferimento Assistenza Ammodernamento
DettagliProgrammazione 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
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed
DettagliIntroduzione 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
DettagliProgrammazione 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)
DettagliFondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse
Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse AA 2018/2019 Tutor lorenzo.rosa@unibo.it 2 Esercitazione 6 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso Eclipse
DettagliFUNZIONI. Ivan Lanese
FUNZIONI Ivan Lanese Argomenti Tecniche di debugging Funzioni Di solito i programmi non funzionano int main() { int n, prod = 1; do { cout > n; prod = prod
DettagliIntroduzione 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
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: Conclusioni Parte a versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliCOSTRUZIONE DI UN APPLICAZIONE
COSTRUZIONE DI UN APPLICAZIONE Per costruire un applicazione occorre: compilare il file (o i file se più d uno) che contengono il testo del programma (file sorgente) Il risultato sono uno o più file oggetto.
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Programmazione su Basi di Dati: Transazioni Parte b versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Framework per il Modello 2 Struts versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Thread Parte a versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliPrimo programma in C
Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Strumenti di Sviluppo: Linee Guida versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 2 Istruzioni Condizionali G. Mecca M. Samela Università della Basilicata Istruzioni Condizionali >> Sommario Sommario Introduzione
DettagliISTRUZIONI DEVC++ Autore: Luca Florio (luca.florio<at>polimi.it)
ISTRUZIONI DEVC++ Autore: Luca Florio (luca.floriopolimi.it) DevC++ è un ambiente di programmazione scaricabile gratuitamente che fornisce funzionalità per la creazione di applicativi in linguaggio
DettagliDEBUGGING. Ivan Lanese
DEBUGGING Ivan Lanese Argomenti Tecniche di debugging Di solito i programmi non funzionano int main() { int n, prod = 1; do { cout > n; prod = prod * n; }
DettagliSommario. 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
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Collezioni Parte b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliProgrammazione 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)
DettagliDEBUGGING. Ivan Lanese
DEBUGGING Ivan Lanese Argomenti Tecniche di debugging Di solito i programmi non funzionano int main() { int n, prod = 1; do { cout > n; prod = prod * n; }
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni 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
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Introduzione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Programmazione su Basi di Dati: JDBC Dettagli e Approfondimenti versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
Dettaglicout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;
Funzioni int n, ris; cout n; ris = n*2; cout
DettagliINTRODUZIONE A VISUAL STUDIO
INTRODUZIONE A VISUAL STUDIO Cosa è Visual Studio Visual Studio è un ambiente di sviluppo integrato (Integrated development environment o IDE) Sviluppato da Microsoft Supporta numerosi linguaggi C, C++,
DettagliCos'è il Debug? Il debug di un programma è la fase di ricerca e correzione di errori che si manifestano a runtime
GDB Debugger Cos'è il Debug? Il debug di un programma è la fase di ricerca e correzione di errori che si manifestano a runtime In genere questo accade quando sono presenti frammenti di codice errati detti
DettagliIntroduzione. Programma didattico
Introduzione Il corso contenuto in questa parte riguarda i concetti elementari della programmazione, al livello minimo di astrazione possibile, utilizzando il linguaggio C per la messa in pratica degli
DettagliCOSTRUZIONE DI UN APPLICAZIONE
COSTRUZIONE DI UN APPLICAZIONE Per costruire un applicazione occorre: compilare il file (o i file se più d uno) che contengono il testo del programma (file sorgente) Il risultato sono uno o più file oggetto.
Dettagli2 Lavorare con Eclipse
Corso Eclipse 2 Lavorare con Eclipse 1 Prerequisiti Conoscenza elementare ambiente Eclipse Compilare ed eseguire semplici applicazioni Java Conoscere i tipici errori di programmazione Individuare errori
DettagliIl linguaggio C Strutture
Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Copyright Mirko Viroli Copyright 2017, 2018 Moreno
DettagliLaboratorio di informatica Ingegneria meccanica
Laboratorio di informatica Ingegneria meccanica Esercitazione 6 7 novembre 2007 Correzione di un programma Un programma può contenere errori sintattici e/o errori logici. Gli errori sintattici vengono
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliProgrammazione in Python. Moreno Marzolla
Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative
DettagliCorso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010
Corso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010 Istruzioni: scrivere le risposte alle domande negli spazi presenti nel testo e riconsegnare
DettagliConcetti Introduttivi
Concetti Introduttivi Linguaggi di Programmazione http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Linguaggi di Programmazione Impartiscono
Dettagli