INFORMATICA PER LE SDS DEL DIPARTIMENTO - EXCEL - PROF. MARCO SECHI
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
SCUOLE DI SPECIALIZZAZIONE ‐ AREA MEDICA Università degli Studi di Brescia INFORMATICA per le SdS del dipartimento Informatica per le scuole di specializzazione EXCEL Dipartimento: Informatica Docente: Marco Sechi E‐mail: marco.sechi@unibs.it Vers. 08/10/2017 Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
2 Scrivere in K6, K8 e K10 le formule necessarie a visualizzare la distribuzione delle temperature corporee mostrata in figura e relativa ad un campione di 300 pazienti. Fornire una prima soluzione utilizzando solo CONTA.SE()e CONTA.NUMERI() oppure CONTA.PIU.SE(). Dipartimento di Informatica – Scuole di specializzazione Area Medica Variante: Fornire una seconda soluzione utilizzando solo le funzioni SE() e SOMMA(). Si consiglia in questo caso il ricorso a colonne di supporto per semplificare la complessità delle singole formule Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
3 Si implementi un foglio che consenta la gestione delle sacche di sangue di un centro trasfusionale. Costruire (utilizzando solo la funzione SOMMA.SE() ) un meccanismo capace di restituire il saldo tra le unità trasfuse e quelle acquisite mediante donazione. Non è richiesto alcun controllo sull'input. Variante 1: fornire una soluzione equivalente che utilizza solo le funzioni SOMMA e SE. E' permesso l'uso di celle Dipartimento di Informatica – Scuole di specializzazione Area Medica di supporto. Variante 2: Aggiungere alla soluzione della variante1 la generazione automatica delle quantità e del tipo di registrazione (Trasfusione/Donazione). Attenzione le q.tà che vengono via via generate non devono mai determinare un saldo progressivo negativo (del resto il totale delle trasfusioni eseguite fino ad un determinato istante non può superare l'ammontare delle giacenze acquisite fino a quel momento con le donazioni!) Suggerimento – utilizzare le seguenti funzioni SOMMA.SE(); SOMMA(); SE(); variante 1 CASUALE.TRA(); SOMMA(); SE() variante 2 Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
4 Si implementino le statistiche indicate in figura, relative alle prime sei terzine del primo canto dell'Inferno della Divina Commedia. Nella risoluzione del seguente esercizio si consiglia di utilizzare le celle di supporto (celle con lo sfondo in grigio). Dipartimento di Informatica – Scuole di specializzazione Area Medica Suggerimento: utilizzare le funzioni: =LUNGHEZZA(Stringa) =MAIUSC(Stringa) o MINUSC() =SOSTITUISCI(Stringa) =CODICE.CARATT(Carattere) e CODICE() =SOMMA(Area1; … ; AreaN) Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
N.B.: Nella soluzione proposta le funzioni 5 INDIRETTO , CERCA.VERT ed INDICE devono essere utilizzate almeno una volta! Si implementi una soluzione che fornisca le informazioni richieste relative alle date e agli orari contenuti in C2 e C3. Dipartimento di Informatica – Scuole di specializzazione Area Medica Suggerimento: utilizzare le funzioni: =ADESSO() =OGGI() =ORA(…) =MINUTO() =SECONDO() =TESTO() =RESTO() =GIORNO.SETTIMANA() =DATA.VALORE() =GIORNO() =O() =MESE() =ANNO() =SINISTRA() DESTRA() =SE() =TRONCA() =ASS() =CERCA.VERT() =INDICE() =INDIRETTO() =CASUALE() Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
6 Nel calendario giuliano (promulgato da Giulio Cesare nell'anno 46 a.C.) un anno è bisestile se il suo numero è divisibile per 4. Il primo anno bisestile fu il 45 a.C, anno in cui il nuovo calendario entrò in vigore. Dopo aver assegnato all'anno 708 di Roma (46 a.C. detto anche ultimus annus confusionis) una durata maggiore (si pensa di 445 giorni al posto dei normali 365) si stabilì che la durata dell'anno fosse di 365 giorni ma che ogni quattro anni si sarebbe aggiunto un giorno supplementare. L'anno di 366 giorni fu detto bisestile perché quel giorno supplementare doveva cadere 6 giorni prima delle calende di marzo (facendo raddoppiare il 23 febbraio!) e chiamarsi bis sexto die ante Kalendas Martias (tradotto: nel doppio sesto giorno prima delle calende di marzo). Purtroppo già l'anno successivo (44 a.C.), subito dopo la morte di Cesare, si iniziò a commettere errori, inserendo un anno bisestile ogni tre anziché ogni quattro anni (da un papiro egiziano sembra che gli anni bisestili siano stati: ‐43, ‐40, ‐37, ‐34, ‐31, ‐ 28, ‐25, ‐22, ‐19, ‐16, ‐13, ‐10). Sarebbe così stata fraintesa l'indicazione iniziale di inserire un anno bisestile ogni 4 anni, inserendo il giorno supplementare ogni tre anni compreso quello bisestile. Per rimediare all'errore che aveva già provocato uno sfasamento di 3 giorni Augusto ordinò che fosse sospesa l'intercalazione del giorno bisestile fino all'anno 4 d.C., che risultò quindi essere il primo anno bisestile dell'era cristiana. Secondo il calendario giuliano l'anno medio dura quindi 365 giorni e 6 ore. Questa durata non corrisponde esattamente a quella reale dell'anno solare (ricavata dalle osservazioni astronomiche). Quest'ultimo infatti è più corto di 11 minuti e 14 secondi. Di conseguenza, il calendario giuliano accumula un giorno di ritardo circa ogni 128 anni rispetto al trascorrere delle stagioni. Dipartimento di Informatica – Scuole di specializzazione Area Medica Per questo motivo nel 1582 fu introdotto il calendario gregoriano, che riduce l'errore a soli 26 secondi (un giorno ogni 3.323 anni circa). Con l'attuazione della riforma gregoriana si provvide anche a correggere gli errori che si erano accumulati nel passato: il giorno successivo a giovedì 4 ottobre 1582 divenne venerdì 15 ottobre, attuandosi così un salto di 10 giorni. Fu scelto tale periodo perché in esso non ricorrevano feste solenni. Si potrebbe ulteriormente migliorare il calendario gregoriano togliendo tre giorni ogni diecimila anni. A tale riguardo John Herschel (1792‐1871) suggerì di non considerare bisestili (mentre, in base al calendario gregoriano, lo sono!) gli anni 4000, 8000 e 12000. Nel calendario Gregoriano un anno è bisestile se il suo numero è divisibile per 4, con l'eccezione degli anni secolari (quelli divisibili per 100) che sono bisestili solo se divisibili per 400. Basandosi sulla precedente lettura abbiamo che: ‐ il 900 (Giuliano), il 1300 (Giuliano), il 1896 (Gregoriano) e il 1996 (Gregoriano) sono bisestili; ‐ il 1582 (Giuliano), il 1997 (Gregoriano) non sono bisestili (non sono divisibili per 4) ‐ il 1800 (Gregoriano) e il 1900 (Gregoriano) non sono bisestili (sono divisibili per 4 e 100 ma non per 400); ‐ il 1600 (Gregoriano) e il 2000 (Gregoriano) sono bisestili (sono divisibili per 400). Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
7 Si consideri la seguente sequenza contenente i pesi di 100 neonati (generati con la funzione CASUALE()). Costruire una soluzione che permetta di ottenere la stessa sequenza ordinata sia in modo crescente che in modo decrescente. Dipartimento di Informatica – Scuole di specializzazione Area Medica NB: Per evitare di scrivere 200 formule si consiglia di adottare un procedimento che ci permetta di digitarne solo due (in E4 ed F4) e poi, mediante copia ed incolla, di replicarle su tutte le restanti celle. Suggerimento: utilizzare le funzioni: =PICCOLO() =GRANDE() Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
8 VARIANTE 1: si consideri la medesima sequenza dell'esercizio base contenente i pesi di 100 neonati (generati con la funzione CASUALE()) ma distribuito in una matrice di celle 10x10. Costruire una soluzione che ordini tale Dipartimento di Informatica – Scuole di specializzazione Area Medica sequenza sia in modo crescente (da sinistra a destra e dall'alto verso il basso) che decrescente. Suggerimento ‐ utilizzare le funzioni: =PICCOLO() =GRANDE() NB: : Per evitare di scrivere 200 formule si consiglia di adottare un procedimento che ci permetta di digitarne solo due (in B17 e M17) e poi, mediante copia ed incolla, di replicarle in tutte le restanti celle della corrispondente matrice. Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
9 Si consideri la sequenza dei pesi di 100 neonati (generati con la funzione CASUALE()). Fornire la distribuzione di frequenza in figura. NB: Gli intervalli devono avere tutti la stessa dimensione e devono essere calcolati basandosi sui valori contenuti in B37 (estremo inferiore) e B17 (estremo superiore). Dipartimento di Informatica – Scuole di specializzazione Area Medica Suggerimento ‐ utilizzare le funzioni: CONTA.SE(); RIPETI(); Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
10 Si considerino 12 misurazioni giornaliere relative alla temperatura corporea di un paziente. Fornire una soluzione, basata unicamente sulla funzione SE(...;...;...) che restituisca in J7 e J8 la temperatura corporea massima e minima rilevata. I valori devono essere visualizzati con al massimo due cifre decimali. E' possibile utilizzare delle colonne di supporto. Non è richiesto alcun controllo dell'input. Dipartimento di Informatica – Scuole di specializzazione Area Medica NB: Il procedimento adottato deve essere riutilizzabile (in tempi ragionevoli!) anche quando il numero di misurazioni è estremamente elevato. VARIANTE: fornire 3 soluzioni alternative: la prima (in J10 e J11) deve utilizzare la coppia di funzioni MIN()e MAX(); la seconda (in J13 e J14) deve utilizzare solo la funzione PICCOLO() la terza (in J16 e J17) deve utilizzare solo la funzione GRANDE(). Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
11 VARIANTE 1: Si consideri una sequenza di temperature corporee (generate nello specifico mediante funzioni come CASUALE.TRA() e CASUALE() nell'area E5:E340) rilevate, nell'arco di una settimana, sullo stesso paziente ad intervalli regolari ogni mezzora. Fornire le 4 soluzioni che restituiscono la temperatura minima e massima rilevata con questi vincoli: La 1° (in K5 e K7) deve utilizzare solo la funzione SE(...;...;...); la 2° (in N5 e N7) deve utilizzare la coppia di funzioni MIN() e MAX(); la 3° (in K10 e K12) deve utilizzare solo la funzione PICCOLO(); la 4° (in N10 e N12) deve utilizzare solo la funzione GRANDE(); Dipartimento di Informatica – Scuole di specializzazione Area Medica Provare a ricostruire la sequenza completa data/orario associata alla settimana dal 1/1/2018 al 7/1/2018 ! Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
Metodo risolutivo: L'approccio risolutivo, di tipo iterativo, è il seguente: 12 Inizializzazione Inserisco una prima formula di supporto che considera il primo valore della sequenza (cella C5) come il primo minimo (minimo attuale). Step i‐esimo Imposto le formule successive basandomi su queste considerazione: "se l'elemento i‐esimo o elemento corrente (posto nella cella a sinistra della formula) è minore del minimo attuale (cella sopra la nostra formula) allora l'elemento corrente diventa il nuovo minimo attuale altrimenti il minimo attuale resta inalterato". Dipartimento di Informatica – Scuole di specializzazione Area Medica Lo schema presentato non fa riferimento a celle specifiche ma descrive uno schema legato alle posizioni relative dei dati rispetto alla cella contenente la formula che calcola il minimo attuale. Copiando ed incollando la formula nelle celle sottostanti otteniamo un effetto iterativo che ripete diverse volte l'operazione che determina il minimo attuale della sequenza. L'ultimo minino attuale contenuto nell'ultima cella della colonna è il minimo complessivo della sequenza analizzata. Il massimo si ottiene con un metodo analogo. Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
13 Si consideri una sequenza di temperature corporee (generate nello specifico mediante le funzioni CASUALE.TRA() e CASUALE() nell'area F6:F341) rilevate nell'arco di una settimana sullo stesso paziente ad intervalli regolari di mezzora. Costruire una soluzione che restituisca in H4 il numero massimo di misurazioni consecutive che hanno rilevato uno stato febbrile (≥ K6). Successivamente visualizzi in K4 la durata in ore e minuti dello stato febbrile più lungo. NB: Il procedimento adottato deve poter essere esteso (in Dipartimento di Informatica – Scuole di specializzazione Area Medica tempi ragionevoli!) anche a 100.000 rilevazioni. Suggerimento ‐ utilizzare le funzioni: SE(); MAX(); TESTO(); TRONCA(); RESTO(); Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
Inizializzazione Creo una 1° colonna di supporto dove nelle celle mostro 1 quando la 14 misurazione corrispondente riguarda uno stato febbrile 0 altrimenti. In una 2° colonna inizio il conteggio delle rilevazioni consecutive che hanno evidenziato uno stato febbrile. Inserisco nella prima cella della 2° colonna una formula che richiama il contenuto della cella che si trova in corrispondenza nella 1° colonna di supporto. Tale contenuto può essere inteso come la durata del corrente stato febbrile (1 se la 1° misurazione indica febbre, 0 altrimenti). Step i‐esimo Imposto la formula nella i‐esima cella della 2° colonna basandomi su questa considerazione: "se lo statoi (1° colonna) vale 1 incremento di 1 la durata del corrente Dipartimento di Informatica – Scuole di specializzazione Area Medica stato febbrile contenuta nella cella posta sopra quella in cui sto scrivendo la formula. Se lo statoi vale 0 la febbre è passata e pertanto pongo la durata del corrente stato febbrile a 0. Lo schema presentato è posizionale pertanto possiamo replicare le formule con il copia ed incolla. Copiando ed incollando la formula nelle celle sottostanti emuliamo un effetto molto simile all'iterazione (ovvero ripeto l'operazione "ricalcolo la durata attuale del corrente stato febbrile" un numero di volte pari al numero di celle su cui replico la formula). Il massimo valore nella 2° colonna è la soluzione del nostro esercizio. Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
15 Si consideri la sottostante tabella relativa al personale in servizio nel 2012 presso le Aziende Sanitarie Locali. Si forniscano 3 soluzioni equivalenti (una con INDIRETTO() e CONFRONTA(), l'altra con CERCA.VERT() e l'ultima con INDICE() e CONFRONTA()) che mostrino la classifica delle ASL per numero di dipendenti decrescente. Si precisa che tutte le regioni hanno un numero di dipendenti differente (questo semplifica la soluzione!). Dipartimento di Informatica – Scuole di specializzazione Area Medica Suggerimento: Utilizzare per la classifica nella colonna B la funzione: =RANGO.UG(Valore; Area) Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
16 Impostare un foglio che consenta il calcolo dell'indice di Massa Corporea in soggetti adulti. L'indice di Massa Corporea (IMC, kg/m2) si calcola dividendo il peso (espresso in Kg) per il quadrato dell'altezza (espressa in metri). E' una classificazione di tipo statistico e non si applica per forza a tutti gli adulti, soprattutto se sportivi o anziani. Dipartimento di Informatica – Scuole di specializzazione Area Medica Oltre al valore numerico IMC (cella C10) il foglio deve fornire, nella cella C11, anche il nome della categoria associata come indicato nella tabella qui sopra a lato (Grave magrezza, Sottopeso, Normopeso, …). Suggerimento – utilizzare le seguenti funzioni: SE.ERRORE(); oppure SE() ; VAL.ERRORE(); CERCA.VERT(); Docente: Marco Sechi ‐ INFORMATICA per le SdS del dipartimento – Università degli studi di Brescia A.A. 2018/2019
Puoi anche leggere