Posto qui il testo del MidTerm sia per discuterne insieme per chi sta facendo il midterm (ma anche per chi vuole aiutare) sia per consultazioni future.
DISCLAIMER L’elaborato deve essere prodotto personalmente e inviato per email indicando nome, cognome, matricola e piattaforma usata per lo sviluppo della soluzione. È consentito discutere con altri le linee generali dei problemi, purché alla fine ciascuno studente formuli la propria soluzione. Ci si aspetta come minimo che ciascuno studente comprenda e sia in grado di spiegare la soluzione che consegna. È consentito utilizzare strumenti di programmazione (compilatore e debugger) e di analizzare librerie (es. sorgenti di Mono) o documentazione in rete per approfondire le tecniche e le loro implementazioni. Non è considerato accettabile: • Sviluppare codice o pseudo-codice insieme con altre persone • Utilizzare codice scritto da altri • Consentire ad altri di utilizzare il proprio codice come soluzione ad un esercizio • Mostrare o esaminare il lavoro di altri studenti. La violazione di queste regole provocherà l’annullamento della prova e una segnalazione al Presidente del Consiglio di Corsi di Studio. Si prega ai partecipanti di attenersi alle regole dell'esame.
Va bene quindi discutere di IDEE di soluzione ma è vietato sia postare codice che pseudocodice che risolva interamente o una parte di un esercizio.
MIDTERM 06/02/2015 Esercizio 1 Una easing function (o interpolatore) è una funzione che calcola i valori intermedi di un parametro tra due valori estremi (come ad esempio http://easings.net/). Molti framework di animazione introducono un concetto di timeline in cui si specificano tuple come ad esempio (x, 0, 100, 500, 1000) che si interpretano che la proprietà x deve variare dal valore 0 al valore 100 dopo 500ms dell’avvio della storyboard in 1000ms. Si dia un esempio, in pseudocodice, di easing functions che cambino le proprietà x e y della posizione di un oggetto per descrivere un moto circolare ed uno parabolico.
Esercizio 2 Scrivere una pagina HTML che consenta di selezionare un DIV, lo “rivesta” con un frame che ne consente lo spostamento nella pagina come se fosse una finestra. Con un opportuno link dovrà essere possibile invertire il processo.
Esercizio 3 Si vuole realizzare un controllo grafico che consenta di assemblare un insieme di ingranaggi dentati. Gli ingranaggi dovranno essere realizzati utilizzando un solo GraphicsPath. Si realizzino opportune aree cliccabili per aggiungere ingranaggi ridimensionabili. Gli ingranaggi non dovranno sovrapporsi e potranno avere dimensioni differenti. Quando accostati i denti si allineeranno alle ruote vicine. Un ingranaggio potrà sempre essere selezionato per essere spostato o eliminato. Altre aree cliccabili dovranno consentire zoom, pan e rotate della vista.
Esercizio 4
Si estenda il controllo dell’esercizio 3 con una funzione per indicare un verso di rotazione che sarà evidenziato ciascun ingranaggio (destro, sinistro o libero). Gli ingranaggi che hanno un verso di rotazione non libero sono vincolati a girare nella direzione indicata. Si aggiunga una funzione che animi un sistema di ingranaggi assemblato nel rispetto dei vincoli. L’animazione dovrà tener conto che il sistema accelera fino ad una velocità e poi, quando fermata il sistema dovrà rallentare fino a fermarsi come in presenza di attriti.
[MidTerm] Febbraio 2015
Torna a “[PI] Programmazione di interfacce”
Vai a
- Generale
- ↳ Discussioni
- ↳ Discussions (in english)
- ↳ I rappresentanti rispondono
- ↳ Parliamone
- ↳ Mercatino
- ↳ Tirocini
- ↳ Annunci
- ↳ Announcements (in english)
- ↳ Eventi
- I anno
- ↳ Algebra Lineare
- ↳ Analisi Matematica
- ↳ Fondamenti dell'Informatica
- ↳ Laboratorio I
- ↳ Programmazione e Algoritmica
- II anno
- ↳ Architetture e Sistemi Operativi
- ↳ Calcolo Numerico
- ↳ Calcolo Numerico - Vecchio Ordinamento
- ↳ Laboratorio II
- ↳ Paradigmi di Programmazione
- ↳ Ricerca Operativa
- ↳ Ricerca Operativa - Vecchio Ordinamento
- ↳ Statistica
- ↳ Statistica - Vecchio Ordinamento
- III anno
- ↳ Basi di Dati
- ↳ Basi di Dati - Vecchio Ordinamento
- ↳ Introduzione all'Intelligenza Artificiale
- ↳ Introduzione all'Intelligenza Artificiale - Vecchio Ordinamento
- ↳ Ingegneria del Software
- ↳ Ingegneria del Software - Vecchio Ordinamento
- ↳ Reti e Laboratorio III
- Complementari
- ↳ Algebra
- ↳ Cloud Computing
- ↳ Cloud e Green Computing
- ↳ Computer Grafica
- ↳ Crittografia
- ↳ Elementi di Calcolabilità e Complessità
- ↳ Elementi di Calcolabilità e Complessità - Vecchio Ordinamento
- ↳ Esperienze di programmazione
- ↳ Fisica
- ↳ Fisica - Vecchio Ordinamento
- ↳ Gestione di Reti
- ↳ Green Computing
- ↳ Interazione Uomo-Macchina
- ↳ Laboratorio di Basi di Dati
- ↳ Laboratorio di Web Scraping
- ↳ Sicurezza di Sistemi ICT
- ↳ Sviluppo di Applicazioni Mobili
- ↳ Sviluppo di Applicazioni Web
- ↳ Teoria dell'Informazione
- Vecchio Ordinamento
- ↳ I anno
- ↳ [ALL] Algoritmica e Laboratorio
- ↳ [AM] Analisi matematica
- ↳ [FIS] Fisica
- ↳ [LPP] Logica per la programmazione
- ↳ [MDAL] Matematica discreta e algebra lineare
- ↳ [PRL] Programmazione I e laboratorio
- ↳ II anno
- ↳ [AE] Architettura degli elaboratori
- ↳ [BD] Basi di dati
- ↳ [CPS] Calcolo delle probabilità e statistica
- ↳ [CN] Calcolo numerico
- ↳ [IS] Ingegneria del software
- ↳ [PR2] Programmazione II
- ↳ [RO] Ricerca Operativa
- ↳ [SOL] Sistemi operativi e laboratorio
- ↳ III anno
- ↳ [ECC] Elementi di calcolabili e complessità
- ↳ [PI] Programmazione di interfacce
- ↳ [IIA] Introduzione all'intelligenza artificiale
- ↳ [RCL] Reti di calcolatori e laboratorio
- ↳ Advanced databases
- ↳ Advanced programming
- ↳ Advanced software engineering
- ↳ Algorithm design
- ↳ Algorithm engineering
- ↳ Artificial intelligence fundamentals
- ↳ Bioinformatics
- ↳ Competitive programming and contests
- ↳ Computational mathematics for learning and data analysis
- ↳ Data mining
- ↳ Human language technologies
- ↳ ICT infrastructures
- ↳ ICT risk assessment
- ↳ Information Retrieval
- ↳ Intelligent Systems for pattern recognition
- ↳ Laboratory for innovative software
- ↳ Languages, compilers and interpreters
- ↳ Machine learning
- ↳ Mobile and cyber-physical systems
- ↳ Parallel and distributed systems: paradigms and models
- ↳ Peer to peer systems and blockchains
- ↳ Principles for software composition
- ↳ Smart applications
- ↳ Software validation and verification
- Links
- ↳ HomePage Dipartimento
- ↳ Portale Esami