Università degli Studi di Brescia INFORMATICA · Nel calendario Gregoriano un anno è bisestilese...

16
Docente: Marco Sechi ‐ Informatica Università degli studi di Brescia D.S.C.S. ‐ A.A. 2018/2019 Dipartimento di Ingegneria Meccanica e Industriale DIPARTIMENTO DI SCIENZE CLINICHE E SPERIMENTALI Corso di studi: Medicina e Chirurgia Informatica INFORMATICA Docente: Marco Sechi E‐mail: [email protected] Università degli Studi di Brescia EXCEL EXCEL Vers. 08/10/2017*

Transcript of Università degli Studi di Brescia INFORMATICA · Nel calendario Gregoriano un anno è bisestilese...

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le

DIPA

RTIM

ENTO

 DI SCIEN

ZE CLINICHE

 E SPE

RIMEN

TALI

Corso di stud

i: Med

icina e Ch

irurgia

Inform

atica

INFORMATICA

Docente: Marco SechiE‐mail: [email protected]

Università degli Studi di Brescia

EXCELEXCEL

Vers. 08/10/2017*

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

2

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

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().

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

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

3

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

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 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

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

4

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

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).

Suggerimento: utilizzare le funzioni:

=LUNGHEZZA(Stringa)=MAIUSC(Stringa) o MINUSC()=SOSTITUISCI(Stringa)=CODICE.CARATT(Carattere) e CODICE()=SOMMA(Area1; … ; AreaN)

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

5

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

Si implementi una soluzione che fornisca le informazioni richieste relative alle date e agli orari contenuti in C2 e C3.

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()

N.B.: Nella soluzione proposta le funzioni INDIRETTO , CERCA.VERT ed INDICEdevono essere utilizzate almeno una volta!

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

6

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

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. 

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).

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.

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

7

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

Suggerimento: utilizzare le funzioni:=PICCOLO()=GRANDE()

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.

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.

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

8

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

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 sequenza sia in modo crescente (da sinistra a destra e dall'alto verso il basso) che decrescente.

NB: : Per evitare di scrivere 200 formule si consiglia di adottare un procedimento che cipermetta di digitarne solo due (in B17 e M17) e poi, mediante copia ed incolla, di replicarlein tutte le restanti celle della corrispondente matrice.

Suggerimento ‐ utilizzare le funzioni:

=PICCOLO()=GRANDE()

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

9

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

Si consideri la sequenza dei pesi di 100 neonati (generati con la funzione CASUALE()). Fornire la distribuzione di frequenza in figura. 

Suggerimento ‐ utilizzare le funzioni:

CONTA.SE(); RIPETI();

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).

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

10

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

Si considerino 12 misurazioni giornaliere relative alla temperatura corporea di un paziente.Fornire una soluzione, basata unicamente sulla funzione SE(...;...;...) cherestituisca in J7 e J8 la temperatura corporea massima e minima rilevata.

I valori devono essere visualizzaticon al massimo due cifre decimali. E'possibile utilizzare delle colonne disupporto. Non è richiesto alcuncontrollo dell'input.NB: Il procedimento adottato deveessere riutilizzabile (in tempiragionevoli!) anche quando ilnumero di misurazioni èestremamente elevato.

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().

VARIANTE: fornire  3 soluzioni alternative: 

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

11

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

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();

Provare a ricostruire la sequenza completa data/orario associata alla settimana dal 1/1/2018 al 7/1/2018 !

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

12

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

Metodo risolutivo: L'approccio risolutivo, di tipo iterativo, è il seguente:

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'elementocorrente diventa il nuovo minimo attuale altrimenti il minimo attuale resta inalterato".

Inizializzazione Inserisco una prima formula di supporto che considera il primo valore della sequenza (cella C5) come il primo minimo (minimo attuale).

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.

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

13

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

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 tempi ragionevoli!)anche a 100.000 rilevazioni.

Suggerimento ‐utilizzare le funzioni:

SE(); MAX(); TESTO(); TRONCA(); RESTO();

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

14

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

Inizializzazione Creo una 1° colonna di supporto dove nelle celle mostro 1 quando lamisurazione corrispondente riguarda uno stato febbrile 0 altrimenti. In una 2° colonna inizioil conteggio delle rilevazioni consecutive che hanno evidenziato uno stato febbrile. Inserisconella prima cella della 2° colonna una formula che richiama il contenuto della cella che sitrova in corrispondenza nella 1° colonna di supporto. Tale contenuto può essere inteso comela 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 questaconsiderazione: "se lo statoi (1° colonna) vale 1 incremento di 1 la durata del correntestato febbrile contenuta nella cella posta sopra quella in cui sto scrivendo la formula. Se lostatoi vale 0 la febbre è passata e pertanto pongo la durata del corrente stato febbrilea 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.

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

15

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

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!).

Suggerimento: Utilizzare per la classifica nella colonna B la funzione: =RANGO.UG(Valore; Area)

Dipa

rtim

ento di Scien

ze Clin

iche

 e Spe

rimen

tali –Co

rso di stud

i: Med

icina e Ch

irurgia 

16

Docente: Marco Sechi  ‐ Informatica – Università degli studi di Brescia  D.S.C.S. ‐ A.A. 2018/2019

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.

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();