GAME DEV: tools programming. Parte 2: programming
|
|
- Gaetana Vecchio
- 7 anni fa
- Visualizzazioni
Transcript
1 GAME DEV: tools programming Parte 2: programming Marco Tarini Tools per programmare un tool: 1. Tools per GUI programming 2. API grafiche (opengl, directx) 3. Interfacciamento con SO (sist. op.) finestre (o fullscreen) mouse, keyboard, joystick timers eventi double buffering 4. Ambiente di sviluppo (IDE IDE) 5. libs per strutture dati come liste vettori alberi 6. libs per immagini geometria 1
2 QT fa anche strutture dati base + algoritmi (module: qtcore) qvector, qset, qlist, qstring, <== simile a STL, ma meno completo multi-threading (module: qtcore) networking (module: qtnetworking) TCP, UDP video e audio (module: qtphonon) formati file (mp3, mpeg) XML (e html) (module: qtxml) databases (module: qtsql) portable devices x Symbian: simulazione, OpenGL ES tools di supporto sviluppo: style sheets for GUI (QML) traduzioni (QT Linguist) version control (sia SVN che Hg-Mercury) GUIs: WYSIWYG editor in QT-creator Struttura programma nel paradigma Event-Based Sistema a eventi main() init(); while (true) ciclo get_event() ; degli process_event(); eventi eventi tipo: mouse, tastiera... sistema di finistre reshape, minimizzazione... generati dall'applicazione stessa o da thread differenti 2
3 Esempio: applicazione con lib SDL int main() SDL_Init(SDL_INIT_VIDEO); SDL_SetVideoMode(640, 480, 0, SDL_OPENGL); ciclo degli eventi bool done = false; while (! done ) /* ciclo degli eventi */ SDL_Event event; SDL_WaitEvent(&event); switch(event.type) case SDL_VIDEOEXPOSE: /* evento "ridisegnati" */ myrendering(); /* riempi screen buffer*/ break; case SDL_QUIT: done = true; break ; case SDL_KEYDOWN: if ( event.key.keysym.sym == SDLK_ESCAPE ) done = true; break; SDL_Quit(); return 1; Programmare un Event-Based con CallBack CallBack: funzione preposta alla gestione di un evento in (free)glut, un funtore da registrare per ogni evento void myrendering() // la mia callback per l evento disegnati... void main() glutdisplayfunc ( myrendering ); // registra la callback... 3
4 Programmare un Event-Based con CallBack void mia_display_callback() glclearcolor( 0,0,0,0); glclear( GL_COLOR_BUFFER_BIT ); glbegin(gl_triangles); glvertex2d(-1,-1); glvertex2d(0,1); glvertex2d(1,0); glend(); glutswapbuffers(); // x double buffering int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode(glut_rgb GLUT_DOUBLE); glutcreatewindow("a test"); glutdisplayfunc( mia_display_callback ); return 0; Programmare un Event-Based con CallBack void mia_reshape_callback( int size_x, int size_y) // la finestra e cambiata // (ora e grande size_x X size_ypixel //... che voglio fare? int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode(glut_rgb GLUT_DOUBLE); glutcreatewindow("a test"); glutdisplayfunc( mia_display_callback ); glutreshapefunc( mia_reshape_callback ); return 0; 4
5 Programmare un Event-Based con CallBack void mia_keyboard_callback( char c, int x, int y) // l utente ha premuto il tasto c // (mentre il pointer era in pos x,y (viewport coords) //... che voglio fare? int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode(glut_rgb GLUT_DOUBLE); glutcreatewindow("a test"); glutdisplayfunc( mia_display_callback ); glutreshapefunc( mia_reshape_callback ); glutkeyboardfunc( mia_keyboard_callback ); return 0; Programmare un Event-Based con CallBack void mia_keyboard_callback( char c, int x, int y) // l utente ha premuto il tasto c // (mentre il pointer era in pos x,y (viewport coords) //... che voglio fare? int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode(glut_rgb GLUT_DOUBLE); glutcreatewindow("a test"); glutdisplayfunc( mia_display_callback ); glutreshapefunc( mia_reshape_callback ); glutkeyboardfunc( mia_keyboard_callback ); return 0; 5
6 Parentesi: Double buffering Piccolo trucco utile nelle applicazioni interattive nascondere il frame buffer mentre viene riempito evita flickering ( sfarfallio ) Vertici proiettati (punti in R 2 ) punti triangoli segmenti frammenti (candidati pixels) computazioni per frammento frame buffer A [ pronto ] frame buffer B [ in costruzione ] al video A Parentesi: Double buffering Piccolo trucco utile nelle applicazioni interattive nascondere il frame buffer mentre viene riempito evita flickering ( sfarfallio ) Vertici proiettati (punti in R 2 ) punti triangoli segmenti frammenti (candidati pixels) computazioni per frammento frame buffer A [ in costruzione ] frame buffer B [ pronto ] al video B 6
7 Programmare un Event-Based con SIGNALS e SLOTS Object1 signal1 signal2 connect(object1, signal1, Object2, slot1) connect(object1, signal1, Object2, slot2) Object2 signal1 Object3 signal1 slot1 connect ( Object1, signal2, Object4, slot1 ) Object4 slot1 slot2 connect(object3, signal1, Object4, slot3) slot1 slot2 slot3 QT: slots, signals, e connect class A : public class QObject Q_OBJECT public: A(); // costruttore protected:...; public slots: void unmetodo( ); // uno slot! ; class B : public class QObject Q_OBJECT signals: void untrigger( ); // un signal! ; quando a emette quel segnale ==> b deve eseguire quel metodo (da B: emit untrigger( ); ) A *a = new A(); B *b = new B(); connect( b, SIGNAL( untrigger() ), a, SLOT( unmetodo() ) ); 7
8 QT: slots, signals, e connect class A : public class QObject Q_OBJECT public: A(); // costruttore protected:...; public slots: void unmetodo( int ); // uno slot! ; class B : public class QObject Q_OBJECT signals: void untrigger( int ); // un signal! ; quando a emette quel segnale ==> b deve eseguire quel metodo (da B: emit untrigger(5); ) A *a = new A(); B *b = new B(); connect( b, SIGNAL( untrigger( int ) ), a, SLOT( unmetodo( int ) ) ); QT: un hello-world #include <QApplication> class MiaMainWindow:public QWidget public: MiaMainWindow ():QWidget(0) setwindowtitle( Hello World"); ; int main(int argc, char** argv) QApplication app(argc, argv); MiaMainWindow win; win.show(); return app.exec(); 8
9 QT classes signals & slots QObject QWidget QSlider QWindow QButton Stringhe in QT #include <QString> void Pippo() Persona pers; QString a a = QString( La persona %1 ha %2 anni (%3 - %4 = %2) ).arg( pers.nome ) // argomento 1 (un char*).arg( pers.eta() ) // argomento 2 (un int).arg( pers.annonascita ) // argomento 3 (un int).arg( ANNO_CORRENTE ) // argomento 4 (un unsigned int) ; La persona Mario ha 22 anni ( = 22) 9
Introduzione. Costruzione di Interfacce Primi passi in OpenGL. Sierpinski Gasket. Sierpinski gasket. Event driven programming. Stuttura del programma
Introduzione Costruzione di Interfacce Primi passi in OpenGL cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Abbiamo visto Cosa significa rendering L approccio object viewer Mettiamo in pratica
DettagliIntroduzione a Qt. Marco Martin
Introduzione a Qt Marco Martin Cos'è Qt Insieme modulare di librerie in C++ Framework per la costruzione di UI Cross platform: Linux, Mac, Windows, Symbian, Android... Cross device: desktop e mobile Iniziato
DettagliGrafica Computazionale
Grafica Computazionale OpenGl + SDL Fabio Ganovelli fabio.ganovelli@isti.cnr.it a.a. 2005-2006 Storia Specifica di libreria per la scrittura di applicazioni di grafica 3D Cross-Language Cross-Platform
DettagliSOMMARIO. Programmazione orientata agli eventi. Programmazione orientata agli eventi. Programmazione orientata agli eventi
SOMMARIO Programmazione orientata agli eventi Graphical User Interface (GUI) Programmazione in Windows MFC GUI multipiattaforma Qt Applicazione di esempio (Qt) Programmazione orientata agli eventi Un evento
DettagliProgrammare con Qt4. Ing. Giovanni Venturi Roma, 27 ottobre 2007 - Linux Day
Immagine Ing. Giovanni Venturi - http://www.kde-it.org/ - Roma - Linux Day 2007 1/ Ing. Giovanni Venturi Roma, 27 ottobre 2007 - Linux Day rilasciato con Creative Commons Attribuzione-Non commerciale-condividi
DettagliIntroduzione al mondo Qt Qt Creator, il framework e una prima applicazione
Introduzione al mondo Qt Qt Creator, il framework e una prima applicazione Politecnico Open unix Labs Corso programmazione Qt e KDE Indice Una breve panoramica Strutture dati Tipi di dato semplici Contenitori
DettagliIntroduzione. Costruzione di Interfacce Primi passi in OpenGL. Sierpinski Gasket. Sierpinski gasket. Event driven programming. Stuttura del programma
Introduzione Costruzione di Interfacce Primi passi in OpenGL cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Abbiamo visto Cosa significa rendering L approccio object viewer Mettiamo in pratica
DettagliGLUI: GLUT-based User Interface
GLUI: GLUT-based User Interface La GLUI è una libreria di oggetti C++ costruita utilizzando le GLUT e mette a disposizione tutta una serie di oggetti per rendere l interfaccia di un programma più user-friendly.
DettagliLuca Ottaviano. Ottimizzare applicazioni Qt Gui. Firenze, 8 luglio 2013
Luca Ottaviano Ottimizzare applicazioni Qt Gui Firenze, 8 luglio 2013 Chi sono Luca Ottaviano lottaviano@develer.com @lucaotta Sviluppatore su sistemi embedded presso Develer Qt certified developer Sviluppatore
DettagliINFORMATICA GRAFICA. 5 Maggio Interattività. Michele Antolini
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 5 Maggio Interattività michele.antolini@mail.polimi.it Input Libreria glut interfaccia con il window system gestione
DettagliINTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C
12 10 8 INTRODUZIONE 6 4 ALLA PROGRAMMAZIONEColonna 1 Colonna 2 Colonna 3 in linguaggio C 2 0 Riga 1 Riga 2 Riga 3 Riga 4 di Mauro Casula { Scopi del seminario Essere chiaro ed esauriente; Spiegare nei
Dettagli.pro files. Moebius3ds.pro. default.pro. SDL e QT. .pro details. Come migliorare l integrazione tra.net e designer.
.pro files Costruzione di Interfacce Lezione 24 Scene Graphs e Xml for dummies cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Come migliorare l integrazione tra.net e designer. nel passare da
DettagliIntroduzione SOMMARIO
SOMMARIO Introduzione alle librerie grafiche e a OpenGL Implementazioni hw e sw e supporto multipiattaforma Esempi di programma con OpenGL Sistemi di coordinate 2D e 3D Proiezioni Primitive 3D Pipeline
DettagliInformatica Applicata Laboratorio 1. Ing. Antonella Dimasi
Laboratorio 1 Ing. Antonella Dimasi Ambiente di sviluppo L ambiente di sviluppo utilizzato in questo corso è DEV- C++. Dev-C++ è un ambiente di sviluppo integrato (IDE) per la programmazione C/C++. Utilizza
DettagliInterfacciamento laser scanner Hokuyo UHG-08LX
UNIVERSITÀ DI BRESCIA FACOLTÀ DI INGEGNERIA Dipartimento di Elettronica per lʼautomazione Laboratorio di Robotica Avanzata Advanced Robotics Laboratory Corso di Robotica Mobile (Prof. Riccardo Cassinis)
DettagliIntroduzione a Java. Riferimenti
Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia
DettagliInterfacciamento sensore Hokuyo URG-04
UNIVERSITÀ DI BRESCIA FACOLTÀ DI INGEGNERIA Dipartimento di Elettronica per lʼautomazione Laboratorio di Robotica Avanzata Advanced Robotics Laboratory Corso di Robotica Mobile (Prof. Riccardo Cassinis)
DettagliFunzioni. 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
DettagliJava, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM
Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM ERRATA CORRIGE dei programmi della prima stampa (Aprile 2004) aggiornato al 20/05/2017 Nota: il codice corretto è ottenibile da quella errato
DettagliProcessi in Linux. Stru/ura file eseguibili
SISTEMI OPERATIVI Processi in Linux Stru/ura file eseguibili» ELF - Executable and Linking Format formato di default degli eseguibili in Linux definizione nel file include » StruGura un header contenente
DettagliEsercitazione n 3. Obiettivi
Esercitazione n 3 Obiettivi Capacità di analisi e di estensione di progetti esistenti Linguaggio Java: Ereditarietà delle classi Utilizzo di costruttori e metodi di superclasse Visibilità: public, private,
DettagliCorso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
DettagliLaboratorio di Algoritmi e Strutture Dati. Dizionari
Laboratorio di Algoritmi e Strutture Dati Dizionari Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso dal
DettagliTutorial Qt software
Tutorial Qt software Applicazione di esempio Premessa Questo tutorial è rilasciato sotto Licenza Creative Commons: Attribution-NonCommercial-NoDerivativeWorks (http://creativecommons.org/licenses/by-nc-nd/3.0/deed.it).
DettagliIntroduzione a OpenGL e alle GLUT
Introduzione a OpenGL e alle GLUT s OpenGL (Open Graphics Library) è una libreria per fare computer grafica. Il programmatore, per poter visualizzare sullo schermo quanto elaborato con opengl, necessita
DettagliGianni Valdambrini. Everywhere
Gianni Valdambrini Qt Certified Specialist Everywhere Firenze, 25 settembre 2012 Cosa è Qt Qt è un framework cross platform, con cui potete scrivere il codice un'unica volta ed effettuare il deploy su
DettagliRELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA
RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA Anno scolastico Lab informatica AULA n 35 Data inizio svolgimento Progr. relazione primo trimestre secondo pentamestre Cognome e Nome DATI DELLO STUDENTE
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice
DettagliC++ E QT, BINOMIO PERFETTO
C++ E QT, BINOMIO PERFETTO Luca Ottaviano Software developer, Develer 1 CHI SONO Team leader e sviluppatore embedded presso Develer Sviluppo con Qt da 8 anni, mi occupo principalmente di realizzare interfacce
DettagliEsercitazione n 3. Capacità di analisi e di estensione di progetti esistenti Linguaggio Java:
Esercitazione n 3 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Linguaggio Java: Ereditarietà delle classi Utilizzo di costruttori e metodi di superclasse Classi astratte Visibilità:
DettagliPrinciples of Concurrent Programming
Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliUn esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)
Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Macchina astratta: un linguaggio di programmazione trasforma un calcolatore in una macchina
DettagliINTRODUZIONE AL FRAMEWORK QT
INTRODUZIONE AL FRAMEWORK QT Luca Ottaviano Software developer, Develer CHI SONO Team leader e sviluppatore embedded presso Develer Sviluppo con Qt da 8 anni, mi occupo principalmente di realizzare interfacce
DettagliCorso di Fondamenti di Informatica Algoritmi su array / 2
Corso di Fondamenti di Informatica Algoritmi su array / Anno Accademico 00/009 Francesco Tortorella Algoritmi su array Operazioni tipiche sugli array: inizializzazione lettura stampa ricerca del minimo
DettagliLPR 2005/ 2006 Lezione n.9. Elementi di grafica per lo svolgimento del progetto Double Buffering Caricamento delle immagini Gestione degli eventi
LPR 2005/ 2006 Lezione n.9 Elementi di grafica per lo svolgimento del progetto Double Buffering Caricamento delle immagini Gestione degli eventi JAVA 2D PROGRAMMING Schermo : Matrice rettangolare composta
DettagliProgrammazione ad Oggetti. Java Parte II
Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una
DettagliESERCIZIO 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
DettagliAlgoritmi su array / 2
Corso di Informatica Algoritmi su array / Anno Accademico / Francesco Tortorella Algoritmi su array Operazioni tipiche sugli array: inizializzazione lettura stampa ricerca del minimo e del massimo ricerca
DettagliTipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
DettagliTutorial Librerie Qt Parte 2
Tutorial Librerie Qt Parte 2 Premessa Questo tutorial è rilasciato sotto Licenza Creative Commons: Attribution-NonCommercial-NoDerivativeWorks (http://creativecommons.org/licenses/by-nc-nd/3.0/deed.it).
DettagliProgrammazione modulare
Programmiamo in.. Programmazione modulare Un programma complesso si suddivide in più sottoprogrammi o funzioni. Un programma suddiviso in piccoli pezzi, è più semplice da gestire da aggiornare da correggere
DettagliLaboratorio 9 ( Java 4 ) Classe astratta per BFS su grafo
Laboratorio 9 ( Java ) Classe astratta per BFS su grafo Testo esercitazione Scaricare il file EseBFS.zip, scompattarlo ed analizzare le classi in esso contenute con particolare attenzione alla classe astratta
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliImpianti di Elaborazione (allievi Gestionali)
Impianti di Elaborazione (allievi Gestionali) Giuseppe Pozzi Impianti di Elaborazione per Allievi Gestionali - Como Facoltà di Ingegneria dell Informazione Politecnico di Milano giuseppe.pozzi@polimi.it
DettagliPrecedenza e associatività. Complementi sul C - 2. Esempi. Esempi
Complementi sul C - 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Precedenza e associatività () [] ->. S D! ~ ++ + * & (cast ) sizeof S D * / % S D + - (somma e sottrazione) S D >
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
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,
DettagliBloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012
Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Pagina 1 di 8 Dev-C++ - Installazione Con sistema operativo Windows, potete
DettagliGESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O Gestione e organizzazione dei dischi COMPITI
Dettaglia.a Codice corso: 21012, 22010
ESERCIZIO 1 Scrivere un sotto-programma in linguaggio C++ che ricevuta una matrice quadrata come parametro restituisca al chiamante un valore booleano indicante se la matrice è simmetrica oppure no. Scrivere
DettagliPolitecnico di Torino
Politecnico di Torino INFORMATICA II Esame del 19 Luglio 2008 1. Realizzare un programma in linguaggio C per evidenziare le variazioni percentuali di un insieme di azioni quotate in borsa. In un file di
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento
DettagliLe command line di Java
Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,
DettagliLinguaggio C++ Linguaggi di terza generazione
Linguaggio C++ Linguaggi di terza generazione Insieme di primitive ad alto livello, ognuna traducibile in una sequenza di primitive in linguaggio macchina Es.: pesolordo pesocarico + pesoveicolo Due load,
DettagliFutures Esempi di codice
:Future[T] :T Futures val x = future { someexpensivecomputation() val y = future { someotherexpensivecomputation() val z = for (a
DettagliINFORMATICA GRAFICA!
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA! 11 Maggio! Interattività! Michele Antolini michele.antolini@mail.polimi.it! Input! Libreria glut! interfaccia con
DettagliERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }
ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il
Dettaglifile fisico file logico
I files Un file è una struttura di dati residente su una memoria di massa (file fisico) Un programma vede un file come una sequenza di bytes (file logico) Generalizzando, un file può comprendere qualsiasi
DettagliCorso 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
DettagliTemplate (1) Molte volte l operato di una funzione o le proprietà di una classe non dipendono dal tipo dei dati coinvolti
Template (1) Molte volte l operato di una funzione o le proprietà di una classe non dipendono dal tipo dei dati coinvolti int sumvector(int *array, int n) { int sum(0); for (int i = 0; i < n; ++i) sum
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliPassare argomenti al programma
Passare argomenti al programma Quando si invoca un programma è possibile passare degli argomenti ad esso durante la chiamata. Gli argomenti ricevuti saranno stringhe (array di char) quindi l insieme di
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA stdio.h
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comuni di I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliIL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
DettagliLaboratorio di Elementi di Architetture e Sistemi Operativi Esercizi del 18 Aprile 2012
Laboratorio di Elementi di Architetture e Sistemi Operativi Esercizi del 18 Aprile 2012 Esercizio 1. Modificare l Esercizio 3 della lezione scorsa (occorrenze di ogni lettera dell alfabeto) in modo che
Dettagli/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }
import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO
DettagliSistemi Operativi Teledidattico
Sistemi Operativi Teledidattico Anno 2002 3a esercitazione 5/10/2002 Paolo Torroni processi fork (creazione di un figlio) exec (sostituzione di codice del programma in esecuzione) wait (attesa della terminazione
DettagliGESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O COMPITI DEL SOTTOSISTEMA DI I/O 1. Nascondere
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comunidi I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliSistemi Operativi. Descrizione e controllo dei processi
Sistemi Operativi Descrizione e controllo dei processi Servizi di un Sistema Operativo Permettere ad un utente di creare processi (lanciare programmi) Interallacciare l esecuzione di diversi processi,
DettagliC espressioni condizionali
C espressioni condizionali Esiste un particolare operatore, detto operatore condizionale, che rappresenta un istruzione if else. estremamente compattata?: Supponiamo di voler inserire nella variabile intera
DettagliEsercizio 1: archivio CD e DVD
Esercizio 1: archivio CD e DVD Realizzare un applicazione Java per la creazione e la consultazione di un archivio di dischi ottici (CD e DVD). L applicazione riceve da standard input in maniera interattiva
DettagliEsercizi Calcolo Parallelo Algoritmi, Strutture Dati e Calcolo Parallelo. Daniele Loiacono
Esercizi Calcolo Parallelo Algoritmi, Strutture Dati e Calcolo Parallelo MPI Esercizio 1 3 Implementare in MPI una soluzione parallela del seguente algoritmo per approssimare PI scanf( %d,npoints); count
DettagliLa sintassi del C APPENDICE H
APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i
DettagliIndice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma
Indice Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java Introduzione all ambiente di sviluppo - Compilazione ed esecuzione di un programma - Compilazione ed esecuzione
DettagliLinguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia
Linguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia Elementi di Informatica e Programmazione Università di Brescia 1 Sviluppo ed esecuzione
DettagliAlgebra 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
Dettagli18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliFunzioni con numero variabile di parametri: Funzioni Variadiche in C. Massimo Benerecetti Laboratorio di Algoritmi e Strutture Dati
Funzioni con numero variabile di parametri: Funzioni Variadiche in C Massimo Benerecetti Laboratorio di Algoritmi e Strutture Dati Funzioni «variadiche» Le funzioni che ricevono un numero variabile di
DettagliCorso di Programmazione Concorrente Processi. Valter Crescenzi
Corso di Programmazione Concorrente Processi Valter Crescenzi http://crescenzi.inf.uniroma3.it Sommario Processi vs Thread Creazione e terminazione di processi chiamata di sistema fork() chiamata di sistema
DettagliL ambiente di simulazione SPIM
Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/20
DettagliSmallShell Piccolo processore comandi
SmallShell Piccolo processore comandi /* file smallsh.h */ #include #include #define EOL 1 #define ARG 2 #define AMPERSAND 3 #define SEMICOLON 4 #define RIDIRIN 5 #define RIDIROUT 6
DettagliHOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.
HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di
DettagliPrinciples of Concurrent Programming
Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
Dettaglivoid char void char @param void int int int int
1 2 /** 3 * @ file definition_ thread. c 4 * contiene l' implementazioni delle diverse funzioni 5 */ 6 7 /** 8 * @ name elaborato Terzo 9 * @ author Nicola Milani VR360442 10 */ 11 12 13 # include " definition_
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Introduzione alla programmazione in C++ 1 Un introduzione Che cosa è il C++? La programmazione procedurale La programmazione orientata agli oggetti La programmazione
DettagliEsempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un
Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un giocatore, ogni giocatore una scheda Ci vengono già fornite le classi necessarie
DettagliCreare 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
DettagliLinguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java
DettagliCorso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica
Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare
DettagliEsercizi di programmazione in linguaggio C Ricerca
Esercizi di programmazione in linguaggio C Ricerca Nota: memorizzare i programmi in cartelle separate. Ogni cartella deve contenere, oltre al codice sorgente e al file eseguibile, gli eventuali file di
DettagliIterazioni. L istruzione while. while (condition) istruzione
Iterazioni L istruzione while while (condition) istruzione Ripete l esecuzione di istruzione fino a che la condizione resta vera while (balance < targetbalance) year++; double interest = balance * rate
DettagliAlberi Binario in Java
Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un
DettagliEsercizio 1 (15 punti)
Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 16 giugno 2017 Il noto gioco MasterMind
Dettagli