DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – [email protected] Riccardo Cattaneo – [email protected] Ver. aggiornata al 18 Novembre 2014 Lezione di Ven 21 Nov DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Demo 1mo compitino Inizio 8:15am Durata 75’ Correzione: 9.45am Aula: BL.27.06 2 Calendario dei Labs: C DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 21 Ottobre 2014, 10am-12pm, @ LM1 Installation Party: strumenti di sviluppo per il corso di Info B • 28 Ottobre 2014, 10am-12pm, @ LM1 C: Strutture di controllo e cicli • 4 Novembre 2014, 10am-12.45pm, @ LM1 C: array e matrici • 18 Novembre 2014, 10am-1.45pm, @ LM1 C: tipi di dato e strutture 3 Per macchine PoliMI DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE https://virtualdesktop.polimi.it 4 Lab 4: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Warm Up (20’) Confronta Stringhe • Qualche cosa un pò più divertente (80’) Matrice trasposta (30’) Schedina (50’) • Altri exe… (70’) Agenda (70’) 5 Lab 4: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Warm Up (20’) Confronta Stringhe • Qualche cosa un pò più divertente (80’) • Altri exe… (70’) 6 Confronta Stringhe DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva in C un programma che date due stringhe inserite dall’utente dice quale delle due precede alfabeticamente l’altra. Non si può usare la funzione strcmp Esempio 1 - dati: array1=”pippo” - array2=”pio” Esempio 1 - risultato: L’array2 precede l’array1 Esempio 2 - dati: array1=”super”- array2=”supercalifragili” Esempio 2 - risultato: L’array1 precede l’array2 7 Confronta Stringhe DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 8 Confronta Stringhe: Inserimento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 9 Confronta Stringhe: Confronto DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10 Confronta Stringhe: Risultato DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11 Versione corretta ;) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 12 Lab 4: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Warm Up (20’) • Qualche cosa un pò più divertente (80’) Matrice trasposta (30’) Schedina (50’) • Altri exe… (70’) 13 Matrice trasposta DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si definisce matrice trasposta AT di A la matrice ottenuta scambiando ordinatamente le righe con le colonne della matrice A. • Es: é ù é ù ê A =ê ê ë 2 4 8 ú 3 9 27 ú 4 16 64 úû ê A =ê ê ë T 2 3 4 ú 4 9 16 ú 8 27 64 úû 14 Matrice trasposta DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • In pratica, l’elemento a(i,j) della matrice A diventa l’elemento a(j,i) della matrice AT. • Scrivere un programma che calcoli la matrice trasposta di una matrice 4x4 (4 righe, 4 colonne) di numeri reali maggiori o uguali a 0. 15 Matrice trasposta – Soluzioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16 Matrice trasposta: Inserimento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 17 Matrice trasposta: Calcolo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 18 Matrice trasposta V2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 19 Matrice trasposta V2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 20 Schedine: problema DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il programma, partendo da un array di dimensione prefissata che contiene in ogni cella: data della giocata colonna con i tredici segni • Copia in un altro vettore solo le giocate dell’anno 2010 • Quindi, visualizza queste giocate. Schedine: dati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: inserimento dati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: copia valori DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: stampa dei risultati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Warm Up (20’) • Qualche cosa un pò più divertente (80’) • Altri exe… (70’) Agenda (70’) 26 Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Uno studio medico richiede di realizzare una piccola agenda degli appuntamenti settimanali. • Per semplicità si considerino solo i giorni e le ore lavorativi (5 giorni a settimana, dalle 8 alle 17). • Sempre per semplicità, gli appuntamenti vengono allocati su base oraria 27 Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Per ogni appuntamento occorre memorizzare: Nome e Cognome del paziente Prestazione richiesta Eventuali note Cifra pagata • Piccolo suggerimento: vi servirà anche uno “stato” (typedef enum?) 28 Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si devono poter effettuare le seguenti operazioni: Inserire un nuovo appuntamento Vedere tutti gli appuntamenti di un giorno Inserire un pagamento Stampare una “ricevuta” di pagamento 29 Agenda – librerie e definizioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 30 Agenda – inizializzazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 31 Agenda – Ciclo principale DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 32 Agenda – Switch DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 33 Switch: Inserisci Appuntamento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 34 Switch: Visualizza Dati Giornata DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 35 Switch: Inserisci Pagamento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 36 Switch: Stampa Ricevuta DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 37 Agenda – Switch DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 38 Fonti per lo studio + Credits DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Fonti per lo studio Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill • Capitolo 5 • Credits Emanuele Panigati https://sites.google.com/site/engpanigati/ 39