Process synchronization Operating System Lab 4 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Matteo Ferroni – matteo.ferroni@polimi.it Ver. aggiornata al 20 Ottobre 2015 © 2005 William Fornaciari
Calendario dei Labs: MATLAB 15 Dic 2015, 10.30am-12.30pm, @ B6.27 MATLAB: Ambienti di sviluppo e primi codici 12 Gennaio 2016, 10.30am-12.30pm, @ B6.27 MATLAB: strutture di controllo, tipi di dato strutturato, e vettori 19 Gennaio 2016, 10.30am-12.30pm, @ B6.27 MATLAB: funzioni ricorsive 26 Gennaio 2016, 10.30am-12.30pm, @ B6.27 MATLAB: funzioni ricorsive, funzioni di ordine superiore, grafici 2D e 3D
Per macchine PoliMI https://virtualdesktop.polimi.it
Lab 4: Agenda Warm Up (20’) Qualche cosa un pò più divertente (70’) Confronta Stringhe Qualche cosa un pò più divertente (70’) Matrice trasposta (30’) Schedina (40’) Altri exe… (60’) Agenda
Lab 4: Agenda Warm Up (20’) Qualche cosa un pò più divertente (70’) Confronta Stringhe Qualche cosa un pò più divertente (70’) Altri exe… (60’)
Confronta Stringhe 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
Confronta Stringhe
Confronta Stringhe: Inserimento
Confronta Stringhe: Confronto
Confronta Stringhe: Risultato
Versione corretta ;)
Lab 4: Agenda Warm Up (20’) Qualche cosa un pò più divertente (70’) Matrice trasposta (30’) Schedina (40’) Altri exe… (60’)
Matrice trasposta Si definisce matrice trasposta AT di A la matrice ottenuta scambiando ordinatamente le righe con le colonne della matrice A. Es:
Matrice trasposta 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.
Matrice trasposta – Soluzioni
Matrice trasposta: Inserimento
Matrice trasposta: Calcolo
Matrice trasposta V2
Matrice trasposta V2
Schedine: problema 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
Schedine: inserimento dati
Schedine: copia valori
Schedine: stampa dei risultati
Lab 4: Agenda Warm Up (20’) Qualche cosa un pò più divertente (70’) Altri exe… (60’) Agenda
Agenda 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
Agenda 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?)
Agenda 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
Agenda – librerie e definizioni
Agenda – inizializzazione
Agenda – Ciclo principale
Agenda – Switch
Switch: Inserisci Appuntamento
Switch: Visualizza Dati Giornata
Switch: Inserisci Pagamento
Switch: Stampa Ricevuta
Agenda – Switch
Fonti per lo studio + Credits Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 5 Credits Emanuele Panigati https://sites.google.com/site/engpanigati/