Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


algoritmi parte terza, Dispense di Informatica Medica

Slide delle lezioni del professor Del Bolgia- informatica

Tipologia: Dispense

2018/2019

Caricato il 20/03/2019

giuuuuls
giuuuuls 🇮🇹

4.5

(43)

39 documenti

1 / 19

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
05/05/2018
Informatica - Ingegneria Medica -2018 - Franco Del Bolgia 1
Università degli Studi di Roma – Tor Vergata
Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica
Algoritmi
Rev.2.2 of 2016-04-20
Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 3
Elaborazione dati
Problemi che si presentano spesso sono
1. ricorsivo (es. successione di Fibonacci, triangolo di Pascal, )
2. ricerca
1. sequenziale, selezione, estrazione
2. binaria o dicotomica
3. ordinamento (vettori, matrici, …)
1. relazione d'ordine, relazione topologica, ….
4. calcoli su matrici
5. elaborazione booleana di stringhe
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Anteprima parziale del testo

Scarica algoritmi parte terza e più Dispense in PDF di Informatica Medica solo su Docsity!

Università degli Studi di Roma – Tor Vergata

Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica

Algoritmi

Rev.2.2 of 2016-04-

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 3

Elaborazione dati

Problemi che si presentano spesso sono

1. ricorsivo (es. successione di Fibonacci, triangolo di Pascal, )

2. ricerca

1. sequenziale, selezione, estrazione

2. binaria o dicotomica

3. ordinamento (vettori, matrici, …)

1. relazione d'ordine, relazione topologica, ….

4. calcoli su matrici

5. elaborazione booleana di stringhe

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 4

Min

35

Ricerca di ricorrenza di un valore riprendiamo il vettore voti e proponiamoci di cercare il / i valori minimi e il numero di ricorrenze

conta

0

Min

29

Min

23

Min

20

Min

19

conta

1

conta

2

Min

18

conta

1

conta

2

conta

3

Valore minimo corrente Numero di valori minimi trovati

Indice

1

Indice

2

Indice

3

Indice

4

Indice

5

Indice

6

Indice

7

Indice

8

Indice

9

Indice

10

Indice

11

Indice

12

Indice

13

Indice

14

Indice

15

Indice

16 Indice +

La ricorrenza o occorrenza rappresenta la frequenza della presenza del dato se data in percentualmente Il numero 18 è presente 3 volte su 16 = 18,75%

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 5

Ricerca del minimo e ricorrenza

Inizio

Fine

min, conta

stampa

leggi n

conta

vi

 1

() min

NO

in SI

i  1  i

NO

v ( i ) min SI

NO SI

v ( i ) min

conta  1  conta

i indice corrente n elementi del vettore conta contatore ricorrenze

0n (^0)  i 35min 0conta

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 8

Assegna alla variabile Ci il valore numerico interodella lettera alla posizione i-esima della stringa ingresso

Il simbolo precedente è lo spazio?

Ingresso stringa di input (sequenza di simboli ASCIICi valore numerico del simbolo i in codice ASCII Cp valore numerico del simbolo precedente ad iCo valore numerico del simbolo per la stringa d'uscita Lunghezza = numero di simboli della stringa inputI indice scorrimento simboli stringa ingresso Uscita stringa corretta da fornire in uscita

Si forma la stringa corretta per l'uscita

Inizializzazione delle variabili

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 9

Assegnazione variabili

Lettura stringa in ingresso

Inizializzazione variabili

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 10 of 26 _

Ho analizzato tutti i caratteri?

Assegno alla Variab Ci il valore del carattere i-esimo della stringa d'ingresso

Analizzo il 1° carattere? Ci è minuscola?

Ci è minuscola?

Ci è spazio (32) oppure Ci è minuscola?

Assegno alla var Cp il valore del carattere i-esimo- di ingresso

Costruisco la var. di Uscita aggiungendo via via di seguito il simbolo giusto

Maiuscola

Minuscola Maiuscola

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 11

riprendiamo il vettore voti e proponiamoci di creare un nuovo vettore ordinato dal minimo al massimo supponiamo di avere solo 16 dati

Ordinamento di un vettore

Ci potremmo chiedere: È possibile sapere quanto tempo (passi da eseguire) sono necessari per arrivare alla soluzione? La risposta è no! ma dato che si tratta di una operazione computabile potranno valutarsi un tempo minimo ed un tempo massimo

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 14

Ordinamento di un vettore Inizio

Fine

( 1 )

( 1 ) ()

()  

 

t v i

Vi vi

vi t

n c

t

i

 0

(^0) NO

SI

vettore

stampa

NO

SI

i  ( c  1 )

NO

SI

v ( i ) v ( i  1 )

1  i

c  1  c

i  1  i

i indice corrente t deposito temporaneo c contatore cicli (decrescente)

c =

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 15

Ordinamento di un vettore CICLO 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 29 23 27 30 19 20 18 19 25 28 18 30 18 24 28 18

Indice i 1

Tempor 29

cicli 1

Indice i 1

Tempor 29

Indice i 2

Tempor 29

Indice i 3

Tempor 29

Indice i 4

Tempor 30

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 16

Ordinamento di un vettore CICLO 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 30 18 19 25 28 18 30 18 24 28 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 30 19 25 28 18 30 18 24 28 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 19 30 25 28 18 30 18 24 28 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 19 25 30 28 18 30 18 24 28 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 19 25 28 30 18 30 18 24 28 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 19 25 28 18 30 30 18 24 28 18

Indice i 5

Tempor 30

Indice i 6

Tempor 30

Indice i 7

Tempor 30

Indice i 8

Tempor 30

Indice i 9

Tempor 30

Indice i 10

Tempor 30

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 17

CICLO 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 19 25 28 18 30 30 18 24 28 18

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 19 25 28 18 30 18 30 24 28 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 19 25 28 18 30 18 24 30 28 18

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 19 25 28 18 30 18 24 28 30 18

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 29 19 20 18 19 25 28 18 30 18 24 28 18 30 È terminato il primo ciclo di ordinamento ed il valore massimo si trova nella giusta posizione

Indice i 11

Tempor 30

Indice i 12

Tempor 30

Indice i 13

Tempor 30

Indice i 14

Tempor 30

Indice i 15

Tempor 30

cicli 1

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 20

CICLO 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 19 20 18 19 25 28 18 29 18 24 28 30 18 30

Indice i 13

Tempor 30

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 19 20 18 19 25 28 18 29 18 24 28 18 30 30

Indice i 14

Tempor 30

Indice i 15

Tempor 30

cicli 2

È terminato il secondo ciclo di ordinamento ed il Secondo valore 30, è stato inserito nella giusta posizione

Il 15° confronto/scambio NON deve essere eseguito in quanto la posizione 16 e già corretta

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 21

CICLO 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 27 19 20 18 19 25 28 18 29 18 24 28 18 30 30

Indice i 1

Tempor 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 27 20 18 19 25 28 18 29 18 24 28 18 30 30

Indice i 2

Tempor 27 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 27 18 19 25 28 18 29 18 24 28 18 30 30

Indice i 3

Tempor 27 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 27 19 25 28 18 29 18 24 28 18 30 30

Indice i 4

Tempor 27 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 19 27 25 28 18 29 18 24 28 18 30 30

Indice i 5

Tempor 27 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 19 25 27 28 18 29 18 24 28 18 30 30

Indice i 6

Tempor 27

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 22

CICLO 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 19 25 27 28 18 29 18 24 28 18 30 30

Indice i 7

Tempor 27

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 19 25 27 18 28 29 18 24 28 18 30 30

Indice i 8

Tempor 28 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 19 25 27 18 28 29 18 24 28 18 30 30

Indice i 9

Tempor 28 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 19 25 27 18 28 18 29 24 28 18 30 30

Indice i 10

Tempor 29 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 19 25 27 18 28 18 24 29 28 18 30 30

Indice i 11

Tempor 29 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 19 25 27 18 28 18 24 28 29 18 30 30

Indice i 12

Tempor 29

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 23

CICLO 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 23 19 20 18 19 25 27 18 28 18 24 28 18 29 30 30

Indice i 13

Tempor 29

Indice i 14

Tempor 29

Questo ciclo non deve essere seguito in quanto le posizioni 15 e 16 sono già corrette

cicli 3

I cicli si ripetono finché il contatore non raggiunge 15 ( caso contatore crescente) oppure finché il contatore cicli non raggiunge 1 ( caso contatore decrescente)

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 26

Ordinamento di un vettore – Insert sort Inizio

Fine

p i t vi Vi vi vi t       ( 1 ) ( 1 ) () ()

n c

t

i

 0

(^0) NO

c  1 SI

vettore

stampa

NO

SI

i  ( c  1 )

NO

SI

v ( i ) v ( i  1 )

1  i

c  1  c

i  1  i

i indice corrente p indice secondario t deposito temporaneo c contatore cicli

NO SI

v ( p  1 ) v ( p )

SI NO

p  1

p p t vp V p vp vp t        1 ( 1 ) ( 1 ) () ()

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 27

Quick Sort

Quicksort è un algoritmo di ordinamento ricorsivo in place che, come merge

sort, si basa sul paradigma divide et impera. La base del suo funzionamento

è l'utilizzo ricorsivo della procedura partition: preso un elemento da una

struttura dati (es. array) si pongono gli elementi minori a sinistra rispetto a

questo e gli elementi maggiori a destra.

Il Quicksort, termine che tradotto letteralmente in italiano indica ordinamento

rapido, è l'algoritmo di ordinamento che ha, in generale, prestazioni migliori

tra quelli basati su confronto. È stato ideato da Charles Antony Richard

Hoare nel 1961.

https://it.wikipedia.org/wiki/Quicksort

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 28

Successione di Fibonacci

Si tratta di una successione numerica di numeri naturali dove ogni elemento è legato ai due numeri precedenti dalla relazione Zn = Zn-2 + Zn-1 forma vettoriale C = A + B (^) forma variabili singole

1 2 3 4 5 6 7 8 9 10 0 1 1 2 3 5 8 13 21 34

11 12 13 14 15 16 17 18 19 20 55 89 144 233 377 610 987 1597 2584 4181

Successione di Fibonacci

Ad ogni passo devo scambiare le variabili e dato che A non mi serve più ed il risultato diventa uno dei due addendi Inizio con A=0 e B=1 ……. C = A + B A = B B = C Ciclico fino a che …..

Non viene raggiunta la condizione di fine

procedura

valore di C dato o max numero di cicli

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 29

C A B

Calc

Calc

Calc

Calc

Calc

Calc

Scadenzario farmaci 10/06/2004 32

Analisi dei tempi

Tempo

ScadenzaFarmaco

necessarioTempo necessario^ Tempoper il riordinoper il riordino

Odierna^ Data

Oggi < ScadenzaOggi+Riordino < Scadenza

Oggi < ScadenzaOggi+Riordino > Scadenza

Oggi >ScadenzaOggi+Riordino > Scadenza

Oggi < ScadenzaOggi+Riordino < Scadenza

Oggi < ScadenzaOggi+Riordino > Scadenza

Oggi >ScadenzaOggi+Riordino > Scadenza

Scadenzario farmaci 10/06/2004 33

Diagramma decisionale

Scadenza > Oggi + x

Oggi < Scadenza <= Oggi+x

Scadenza < Oggi

SCADENZAGiorno di^ SCADUTO RIORDINARE^ Devo^ Non ho problemi

falso

falso

falso

vero

vero

vero

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 34

Armadietto farmaci

CC  1

Farmaco da riordinare

NO

F ( r , c )" "

F(rANDc) oggi Grio

F(rc) oggi  

 ,

,

F ( r , c ) oggi F(r , c)oggi

cC max

rR max

Farmaco nel giorno di scadenza Farmaco SCADUTO

NO

NO NO NO

SI

SI SI

SI

SI

Inizio ciclo

Fine ciclo

SI

oggir ^1  data _ odierna

c  3

(, 2 )

1 GrioF r

r r



Rmax = numero di farmaci (righe) Cmax = numero di confezioni (colonne) F(r,c) = scadenza della confezione c-esima del farmaco r-esimo Grio = giorni necessari al riordino [F(r,2)]

Normografi di programmazione anni ‘

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 35

Università degli Studi di Roma – Tor Vergata

Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica

Domande?