Software e Linguaggi di programmazione - uniroma2.it · Facoltà di Ingegneria – Corso di Laurea...

36
Università degli Studi di Roma – Tor Vergata Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica Software Software e Linguaggi di programmazione Linguaggi di programmazione Interattività Software

Transcript of Software e Linguaggi di programmazione - uniroma2.it · Facoltà di Ingegneria – Corso di Laurea...

Università degli Studi di Roma – Tor VergataFacoltà di Ingegneria – Corso di Laurea in Ingegneria Medica

SoftwareSoftwareee

Linguaggi di programmazioneLinguaggi di programmazione

InterattivitàSoftware

SOFTWARE

SOFTWARE elemento “morbido”E’ la componente che consente di sfruttare le risorse fisiche (hardware) disponibiliSono i programmi che permettono di elaborare le informazioni, controllare le periferiche e produrre i risultati.

Software

Classificazione del software

Software di BASEE’ un complesso di programmi collegati tra loro che consente l’utilizzo minimo del sistema e la sua programmazione

Software APPLICATIVOComprende tutti i programmi destinati a risolvere specifici problemi non legati al funzionamento del sistema.

Software

Software di base

Fanno parte del software di baseFIRMWARE (BIOS - Basic Inpot/Output System - ROM)

SISTEMA OPERATIVO O.S. o D.O.S.Costituito da un insieme di programmi progettati per svolgere funzioni di gestione, controllo e supervisione sulle operazioni dell’intero sistemaGestore file - Controllo sulle funzioni I/OComandi di processo - Programmi di utilità

Software

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 6 of XX _

Sviluppo del software

Studio di fattibilità– Convenienza ed attuabilità del progetto

Analisi – studio degli algoritmi soluzione informale

Progettazione– descrizione delle procedure gerarchizzazione

Programmazione– scrittura dei programmi soluzione formale

Test – prove di congruità dei programmi

Revisione – cambiamenti e migliorie

Manutenzione– correzione di errori non evidenziati durante i test

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 7 of XX _

Processo di realizzazione del software

Analisi

Problema

Programmazione

Soluzione informale

Soluzione formale dell’

Algoritmo

Esecuzione

Programma macchina

Formalizzazione

Programma ad alto livello

Traduzione

Sistema informativo:Strumenti di supporto evoluti

Sistema informativo:Ambiente di sviluppo

Esecutoredel linguaggio

macchina (HW)

Esecutoredel linguaggioad alto livello

Linguaggibassomedio

alto livello

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 8 of XX _

Es. Scadenzario Farmaci

9/5/201313/12/20128Efferalgan

15/02/20133Sintron

22/05/201213/12/201210Tachipirina

13/12/201215/02/201315/02/201310/10/20125Aspirina

Conf4Conf3Conf2Conf1gg rioFarmaco

Si vuole avere l’avvertimento ogni giorno su Farmaco da riordinareFarmaco la cui data di scadenza è oggiFarmaco scaduto

Colonna 1

Riga 1

Rmax

Cmax

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 9 of XX _

1+= CC

Farmaco dariordinare

NO

""),( =CRF

GriooggiC)F(RAND

oggiC)F(R

+<=

>

,

,

oggiCRF =),(

oggiC)F(R <,

maxCC =

maxRR =

Farmaco nelgiorno di scadenza

FarmacoSCADUTO

NO

NO

NO

NO

SI

SI

SI

SI

SI

Inizio ciclo

Fine ciclo

SI

1=R

3=C

1+= RR

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 10 of XX _

Linguaggi di programmazione

Gli algoritmi ci permettono di inquadrare e risolvere logicamente il problema, è poi necessario formalizzare l’algoritmo con delle sequenze di istruzioni elementari in modo che un opportuno esecutore svolga le operazioni descritte nell’algoritmo.L’algoritmo deve quindi essere trascritto in un linguaggio comprensibile all’esecutore.Il calcolatore per come è costruito è capace di eseguire solo le istruzioni elementari in codice binario che costituiscono il suoset di istruzioni, linguaggio macchina composto da sequenze di bit opportunamente organizzate.Nel tempo sono stati creati circa 2500 linguaggi.

http://it.wikipedia.org/wiki/Linguaggio_di_programmazionehttp://it.wikipedia.org/wiki/Elenco_cronologico_dei_linguaggi_di_programmazione

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 11 of XX _

Linguaggi di programmazione

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 12 of XX _

Linguaggi di programmazione

La scrittura dell’algoritmo per un esecutore è quindi caratterizzato da una sintassi, regole che specificano come comporre l’istruzione ben formate

una semantica, specifica il significato delle operazioni nell’esecuzione dell’istruzione

Linguaggio macchina prima generazioneLinguaggi di basso livello assemblativi seconda generazioneLinguaggi di medio e alto livello

Fortran, Cobol, Basic, Pascal, C++, Java

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 13 of XX _

Linguaggi di programmazione

Linguaggi di prima generazioneIl linguaggio macchina usa solo codice binario FattoriNegativi:Difficile da utilizzare in quanto utilizza solo numeri binari al piùesadecimaliPermette solo l’uso di indirizzi di memoria di tipo numericoDifficile da correggere e/o implementare ogni eliminazione o aggiunta di istruzioni comporta lo slittamento di tanti altri indirizzi che sono da verificare

Positivi:Molto efficienti in quanto il programma può essere ottimizzato sulle potenzialità dell’hardware

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 14 of XX _

Linguaggi di programmazione

Linguaggi assemblatori o di seconda generazione

Sono l’evoluzione del linguaggio macchina e pur restando legati alla struttura del linguaggio macchina, le istruzioni a differenza del precedente hanno nomi simbolici ed il programmatore può assegnare nomi simbolici alle variabili che vengono gestite e riorganizzate dall’assemblatore stesso.

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 15 of XX _

Linguaggi ad alto livelloDato che l’esecutore elettronico ha come sua principale caratteristica quella di eseguire operazioni in tempi estremamente contenuti gli esseri umani hanno pensato di dare alla macchina il compito di tradurre, istruzioni semanticamente più vicine a noi nelle più semplici sequenze di linguaggio macchina.Sono stati così concepiti tre diversi livelli di traduzione:

Traduzione a livello interpretatosi parte dal codice sorgente che viene tradotto in linea

Traduzione a livello compilatosi parte dal codice sorgente che viene tradotto nel suo complesso e quindi si può eseguire il codice esecutivo

Traduzione a livello emulativoÈ un tipo di traduttore utilizzato per far girare codice eseguibile prodotto per un dato processore su un processore diverso

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 16 of XX _

InterpreteIl software interprete legge le istruzioni nel linguaggio ad alto livello le traduce e le manda in esecuzione.FattoriPositivi:se ci sono errori di sintassi questi vengono rilevati al momentodell’esecuzione corretti e si può rieseguire immediatamente il codicesi possono monitorare le variabili ed identificare errori di implementazione dell’algoritmo, correggere in linea e rieseguire

Negativi:Ogni volta che viene eseguito necessita della traduzione che rallenta l’esecuzione e prevede la presenza del dizionario anche se viene protetta la manipolazione del codice sorgenteSe ci sono parti del software che non vengono testate o non vengono interessate nelle prove non si possono evidenziare errori di sintassi che saranno evidenziati solo più tardi

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 17 of XX _

Compilatore

Il software compilato legge le istruzioni codice sorgente nel linguaggio ad alto livello le traduce effettuando tutti i possibili controlli di sintassi e congruità delle variabili.FattoriPositivise ci sono errori di sintassi o congruità sulle variabili questi vengono rilevati tutti al momento della compilazione e possono essere correttinella compilazione si possono assemblare più parti anche testate e compilate precedentemente per ottenere l’eseguibile completo.

NegativiPer la correzione di eventuali errori di trascrizione del codice, questa può essere effettuata solo a posteriori durante le prove dell’eseguibile. Ogni correzione può essere fatta solo sul codice sorgente e comporta la ricompilazione del sorgente per ottenere un nuovo eseguibile

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 18 of XX _

Linguaggiomacchina

Linguaggioassemblativo

Linguaggi di programmazione Linguaggi

naturali

Linguaggi di basso livello

Hardwaredipendenti

Linguaggi a medio e alto livello

il legame con hardware avviene attraverso il compilatore

IngleseItalianoTedesco

Indipendentidall’hardware

Vari paradigmi di programmazioneImperativo- ProceduraleOrientato agli oggettiFunzionaleDichiarativo

Interpreti – Compilatori - Emulatori

Interfaccia Uomo - Macchina

HardwareSoftware per l’esecutore

in codice binario

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 19 of XX _

LinguaggiOgni linguaggio ad alto livello consente di esprimere gli algoritmi in programmi eseguibili su un esecutore automatico.

Nel tempo e con il presentarsi di problematiche di vario genere,si sono così sviluppati linguaggi con istruzioni più aderenti allo stile ed alle necessità del problema da risolvere:

I linguaggi possono così essere classificati nelle quattro seguenti categorie:Paradigma imperativo - proceduraleParadigma orientato agli oggettiParadigma funzionaleParadigma dichiarativo

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 20 of XX _

Le istruzioni

Un qualsiasi linguaggio deve avere:

Istruzioni di ingresso / uscitapermettono le comunicazioni con il mondo

Istruzioni aritmetico / logichepermettono le elaborazioni sequenziali

Istruzioni di controllopermettono di inserire punti di diramazione

e costruire un albero delle decisioni

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 21 of XX _

Paradigma imperativo - procedurale

Paradigma Imperativo – proceduraleÈ attualmente ancora il più diffuso; si basa sull’utilizzo di simboli definibili dal programmatore ed istruzioni elementari vicine alla logica con cui ci esprimiamo o con cui èstato realizzato il diagramma di flusso, nel quale le operazioni sono sequenziate secondo uno schema molto preciso e definito (imperativo)Dati ed istruzioni sono definiti separatamente

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 22 of XX _

Paradigma imperativo - proceduraleInizio

Fine

wm,

, n legg

i

NO SIni >

y)v(x,

stam

pa dati

mem

oriz

za

y)v(x,

w,

j, i, m,

n,

varia

bili

delle

one

Dic

hiar

azi

y)v(x,

w,

j, i, m,

n,

varia

bili

delle

neAsse

gnaz

io

wsu oper

azio

ni

j)v(i,

su oper

azio

ni

j indi

ce

sull'

oper

azio

ni

i indi

ce

sull'

oper

azio

ni

varia

bili

sulle op

eraz

ioni

delle

esec

uzio

ne

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 23 of XX _

Paradigma imperativo - procedurale

Bloccoistruzioni

NO

SI

......

Condizione

......

main () { ………

if (condizione) { blocco di istruzioni se vero;

} …….}

……if (condizione) then

blocco di istruzionise vero

end if…….

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 24 of XX _

Paradigma imperativo - procedurale

Bloccoistruzioni

......

NOSI Condizione

......

Bloccoistruzioni

main () { ………

if (condizione) { istruzioni se vero } else {istruzioni se falso}

…….}

……if (condizione) then

istruzioni se vero else

istruzioni se falso end if

…….

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 25 of XX _

NO

SI

Bloccoistruzioni

......

Condizione

......

Paradigma imperativo - proceduralemain ()

{ ………while (condizione) {

blocco di istruzioni finché vero; } …….}

……while condizione

blocco di istruzioni finché verowend

…….

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 26 of XX _

Paradigma imperativo - procedurale

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 27 of XX _

Paradigma imperativo - procedurale

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 28 of XX _

Dati

Le variabili sono i dati che devono essere elaborati e necessitano di spazi in memoria,Questi spazi devono essere definiti sia dal punto di vista delle dimensioni che dal punto di vista dell’usabilità.Scrivere z = z + v(i) è ammissibile solo se z, i e v(i) sono numeri z è un numero realei è un numero interov() è un vettore di numeri reali

oppure se le variabili sono tutti testi allora + può indicare concatena le parole / lettere per ottenere una frase

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 29 of XX _

Dati

Così come se devo costruire una frase le parole devono essere concatenate opportunamente a formare la frase in questo caso & rappresenta la funzione concatenazionetesto = “Pippo oggi deve andare “ & destinazione & “ per “ & azionetesto è una stringa formata da due costanti la prima di 23 caratteri e la seconda di 5 caratteri e due variabili di lunghezza variabiledestinazione è una stringa variabileazione è una stringa variabileSe destinazione e azione sono vuote il messaggio sarà“Pippo oggi deve andare per “

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 30 of XX _

Dati

Se destinazione = “al mercato” e azione = “fare la spesa”

Il messaggio sarà“Pippo oggi deve andare al mercato per fare la spesa“

Se destinazione = “al cinema” e azione = “vedere il film appena uscito”

Il messaggio sarà“Pippo oggi deve andare al cinema per vedere il film appena uscito “

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 31 of XX _

Definizione delle variabiliI dati possono essere definiti in vari modi in VBABoolean (booleano)

2 byte (Falso, Vero)

Integer (intero)2 byte (-32,768: 32,767)

Long (intero lungo)4 byte (-2,147,483,648:2,147,483,647)

Single (singola precisione)4 byte Floating-Point (numeri reali)

Double (doppia precisione)8 byte Floating-Point (numeri reali)

Date (rappresenta una data)8 bytes FP dal 1/1/1900 al 31/12/9999parte intera giorni dal riferimentoparte decimale, hh.mm.sec, contatore dalla mezzanotte

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 32 of XX _

Definizione delle variabili

Currency (valutario, monetario)8 byte Fixed-point (virgola fissa) dove è importante l’accuratezza nei calcoli valori-922,337,203,685,477.5808 a 922,337,203,685,477.5807.

String (testo di lunghezza variabile)1 byte per carattere – L byte lunghezza della stringa

String * length (testo di lunghezza fissa)length byte è la lunghezza definita dall’utilizzatore

Variant (assume la definizione data dal valore attuale)boolean, integer, long, single, double, date, currency, string

Object (riferimento – indirizzo ad un oggetto di office)4 byte

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 33 of XX _

Definizione delle variabiliI dati possono essere definiti in vari modi in Java

boolean(Vero, Falso) non hanno valore numerico occupa 1 byte

char(contiene caratteri tipo unicode a 2 byte + address)

Numerici interi

byte(1 byte, 8 bit - valori da -128 a 127)

short(2 byte, 16 bit - valori da -32768 a 32767)

int(4 byte, 32 bit - valori da -2,147,483,648 a 2,147,483,647)

long (8 byte, 64 bit – valori da -9223372036854775808 a 9223372036854775807)

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 34 of XX _

Definizione delle variabili

float(4 byte, 32 bit – numeri realivalori da +/- 140129846432481707*10^-45 a

+/- 340282346638528860*10^38 )

long(8 byte, 64 bit – – numeri realivalori da +/- 494065645841246544 * 10^-324 a

+/- 179769313486231570 * 10^308 )

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 35 of XX _

Dati strutturati

Dati strutturati o definiti dall’utente per la gestione Database

struct paziente { long IDchar nome [Dimensione]char cognome [Dimensione]date data_nascitadate data_eventoboolean vac_Antipolioboolean vac_Antitetanicaboolean vac_Antrabbicaint altezzaint peso

}

Type paziente ID as longnome as string * [Dimensione]cognome as string * [Dimensione] data_nascita as Datedata_evento as Datevac_Antipolio as Boolenvac_Antitetanica as Boolenvac_Antrabbica as Boolenaltezza as Integerpeso as Integer

End Type

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 36 of XX _

Matrici

matri(n,m)dove n numero di righe ed m numero di colonnematri(10,8) 10 (n) righe ed 8 (m) colonne

elem(5,8)……elem(5,4)elem(5,3)elem(5,2)elem(5,1)

………………………………

………………………………

elem(10,4)

elem(4,4)

elem(3,4)

elem(2,4)

elem(1,4)

……

……

……

……

elem(10,8)elem(10,3)elem(10,2)lem(10,1)

elem(4,8)elem(4,3)elem(4,2)elem(4,1)

elem(3,8)elem(3,3)elem(3,2)elem(3,1)

elem(2,8)elem(2,3)elem(2,2)elem(2,1)

elem(1,8)elem(1,3)elem(1,2)elem(1,1)

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 37 of XX _

Paradigma orientato agli oggetti

Si basa fondamentalmente sulle possibilitàgrafiche e prevede la presenza di strutture di interazione come nel mondo reale, oggetti come pulsanti, manopole, cursori, etc., metafora del desktop, i quali attivano determinate funzioni.Le istruzioni sono rappresentate dai metodi ed i dati dalle proprietàGli oggetti / dati possono essere strutturati in classi

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 38 of XX _

Paradigma orientato agli oggetti

Oggetto pulsante

Oggetto casellatesto

Oggetto casellaetichetta

Oggetto casellatesto multi linea

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 39 of XX _

Paradigma orientato agli oggetti – proprietà oggetti

Oggetto pulsante

Oggetto casellatesto

Oggetto casellaetichetta

Oggetto casellatesto multi linea

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 40 of XX _

Attività svolta dagli oggetti

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 41 of XX _

Dati e OggettiBicicletta

Mozzo

Ruota posteioreRuota Anteriore

Cerchione

Telaio

Mozzo Cerchione

Class Bicicletta {String Dati BiciclettaTelaio telaio;RuotaA Ruota anteriore RuotaP Ruota posteriore}

Class Telaio {String tipoNumero di serie}

Class Dati Bicicletta {String MarcaString Numero di serie}

Class RuotaA {String tipoMozzo mozzoCerchione cerchine}

Class RuotaP {String tipoMozzo mozzoCerchione cerchine}

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 42 of XX _

Dati e oggettiBicicletta

Mozzo

Ruota posteioreRuota Anteriore

Cerchione

Telaio

Mozzo Cerchione

ØControlla (bicicletta) richiedeØControlla (telaio) prodotto elementare

ØControlla (ruota anteriore) richiedeØControlla (mozzo) prodotto elementareØControlla (cerchione) prodotto elementare

ØControlla (ruota posteriore) richiedeØControlla (mozzo) prodotto elementareØControlla (cerchione) prodotto elementare

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 43 of XX _

Paradigma funzionale

Paradigma funzionaleGeneralmente utilizzati nei simulatori, in questo caso il problema viene inquadrato dal punto di vista della sua risoluzione matematica con blocchi funzionali che effettuano sui dati di ingresso una operazione specificaI dati e le istruzioni tendono ad essere un tutt’uno.

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 44 of XX _

Paradigma funzionale

112)( x

dtdx

dtdx

dtd

tu −+=

dtd

dtd

dtd

+

+-

u

2x

1x

22

2

dtxd

dtdx2

dtdx1

generatore

generatore

grafica

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 45 of XX _

Paradigma funzionale

112)( x

dtdx

Bdt

dxdtd

Atu −+=

dtd

dtd

dtd

+

+-

u

2x

1x

22

2

dtxd

dtdx2

dtdx1

'* ieB

''* ieA

generatore

grafica

generatore

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 46 of XX _

Paradigma dichiarativoQuesto tipo di organizzazione è orientata ai dati e alle loro relazioni

In genere nella soluzione di un problema si stabilisce cosa si vuole ottenere nella prima fase dell’analisi e quindi con la programmazione il come ciò che si vuole possa essere raggiunto.Nella programmazione dichiarativa invece viene descritta nella base di dati l’asserzione che lega degli argomenti e le relazioni che legano le varie asserzioni.Le richieste sono solo il cosa si vuole ed è compito del traduttore cercare il modo con cui risolvere il problema e farlo eseguire al processore.

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 47 of XX _

Paradigma dichiarativo

La realtà può essere considerata come composta daFatto : (asserzione) <predicato> (argomento, argomento, argomento,…)Regola : (clausole) relazioni condizionate fra oggetti

Luca è padre di Giovanni padre (Luca, Giovanni)asserzione Giovanni è figlio di Luca

Marco possiede la moto possiede (Marco, moto)Marco possiede il computer possiede (Marco, computer)

Struttura Dichiarazione dei fatti (database)Definizione delle regole tra i vari predicati Porre domande sui fatti [ ? possiede (Luca,moto) = falso ]

[ ? possiede (Marco,moto) = vero ][ ? possiede (marco,y) y = moto, y = computer ]

predicato argomenti

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 48 of XX _

Paradigma dichiarativo

Ad esempioplus (a,b,c)

dichiara una somma tra a e b con risultato su c

plus (10,5,c) riempirà c con 15plus (10,b,15) riempirà b con 5 plus (a,5,15) riempirà a con 10

ma dato l’asserto di base c = a + b allora b = c – a oppure a = c – b

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 49 of XX _

Paradigma dichiarativoLe funzioni dichiarative costituiscono la base di dati :padre (padre,figlio) madre(madre,figlio)

padre (Osvaldo,Pietro)padre (Giulio,Giuseppe)padre (Pietro,Francesca)padre (Pietro,Carlo)padre (Guiscardo,Pietro)padre (Giulio,Aldo)padre (Pietro,Adelaide)padre (Ernesto,Osvaldo)

madre (Monica,Carlotta)madre (Carlotta,Elvira)madre (Monica,Giuseppe)madre (Eva,Milena)madre (Elvira,Carlo)madre (Francesca,Milena)madre (Eva,Giuseppe)

DataBase e relazione

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 50 of XX _

Paradigma dichiarativo

genitore(X,Y) :- padre(X,Y). genitore(X,Y) :- madre(X,Y).

antenato(X,Y) :- genitore(X,Y). antenato(X,Y) :- genitore(X,Z), antenato(Z,Y).antenato(X,Y) :- genitore(X,Z), antenato(Z,W), antenato(W,Y)

fratello_sorella(X,Y) :-padre(Z,X), padre(Z,Y), madre(W,X), madre(W,Y), X \= Y.

? madre (x,Milena)x=Eva, x=Francesca

? padre (Pietro,y)y=Francesca, y=Carlo, y=Adelaide

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 51 of XX _

Paradigma dichiarativoLe funzioni dichiarative costituiscono la base di dati :genitore (genitore,figlio)

padre (Osvaldo,Pietro)padre (Giulio,Giuseppe)padre (Pietro,Francesca)padre (Pietro,Carlo)padre (Guiscardo,Pietro)padre (Giulio,Aldo)padre (Pietro,Adelaide)padre (Ernesto,Osvaldo)

madre (Monica,Carlotta)madre (Carlotta,Elvira)madre (Monica,Giuseppe)madre (Eva,Milena)madre (Elvira,Carlo)madre (Francesca,Milena)madre (Eva,Giuseppe)

? padre (Pietro,y)y=Francescay=Carloy=Adelaide

? madre (x,Milena)x=Evax=Francesca

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 52 of XX _

Paradigma dichiarativo

? genitore (x,Giuseppe)x=Giulio, x=Monica, x=Eva

? antenato (x,Carlo)x=Pietro, x=Osvaldo, x=Ernesto, x= Guiscardo, x=Elvira, x=Carlotta, x=Monica

padre (Pietro,Carlo), padre (Osvaldo,Pietro), padre (Ernesto,Osvaldo)padre (Guiscardo,Pietro)

madre (Elvira,Carlo), madre (Carlotta,Elvira), madre (Monica,Carlotta)

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 53 of XX _

Paradigma dichiarativoLe funzioni dichiarative costituiscono la base di dati :genitore (genitore,figlio)

padre (Osvaldo,Pietro)padre (Giulio,Giuseppe)padre (Pietro,Francesca)padre (Pietro,Carlo)padre (Guiscardo,Pietro)padre (Giulio,Aldo)padre (Pietro,Adelaide)padre (Ernesto,Osvaldo)

madre (Monica,Carlotta)madre (Carlotta,Elvira)madre (Monica,Giuseppe)madre (Eva,Milena)madre (Elvira,Carlo)madre (Francesca,Milena)madre (Eva,Giuseppe)

? genitore (x,Giuseppe)

x=Giuliox=Monicax=Eva

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 54 of XX _

Paradigma dichiarativoLe funzioni dichiarative costituiscono la base di dati :genitore (genitore,figlio)

padre (Osvaldo,Pietro)padre (Giulio,Giuseppe)padre (Pietro,Francesca)padre (Pietro,Carlo)padre (Guiscardo,Pietro)padre (Giulio,Aldo)padre (Pietro,Adelaide)padre (Ernesto,Osvaldo)

madre (Monica,Carlotta)madre (Carlotta,Elvira)madre (Monica,Giuseppe)madre (Eva,Milena)madre (Elvira,Carlo)madre (Francesca,Milena)madre (Eva,Giuseppe)

? antenato (x,Carlo)x=Pietrox=Elvira

x=Osvaldox= Guiscardox=Carlotta

x=Ernestox=Monica

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 55 of XX _

Linguaggi per la manipolazione dei dati

In molti casi non sono le operazioni matematiche ad essere la principale applicazione ma la gestione di informazioni organizzate in tabelle relazionate tra loro con un gran numero di informazioni nei DBMS(Database Management System)Questa problematica estremamente comune ai grandi archivi ha portato allo sviluppo di linguaggi specifici per la gestione delle tabelle a modello relazionale chiamati SQL (Structured Query Language) che hanno funzioni di:Creazione, inserimento, aggiornamento, cancellazione, ricerca ed estrazione di dati tra loro correlati.

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 56 of XX _

DBMS

Un database è normalmente formato da piùtabelle ed ogni tabella e definita dal suo schema che sono l’insieme dei campi da cui essa è formata e che rappresenta anche la tipologia ed eventuali limitazioni sui dati definiti nei campi.

I dati presenti nei campi sono gli item successivi definiti nello schema.

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 57 of XX _

Tutti gli item dello schema costituiscono il record.Tanti record costituiscono la tabella.Tante tabelle correlate costituiscono un database.

Nei DataBase sono anche inserite le eventuali relazioni tra le tabelle al fine di non dover duplicare dati presenti nelle tabelle di competenza (caratteristiche degli item della tabella)

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 58 of XX _

DBMSDataBase

Tabella 1

Record 1Record 2…………Record n

Record:key

Item 1Item 2……

Item g

Tabella 2

Record 1Record 2…………Record m

Record:key

Item 1Item 2……Item f

Tabella 3

Record 1Record 2…………Record h

Record:key

Item 1Item 2……

Item p

Tabella 4

Record 1Record 2…………Record k

Record:key

Item 1Item 2……

Item q

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 59 of XX _

DBMSOspedaliero

DB Medici

Record 1Record 2…………Record m

Record:Id

CognomeNome

SpecializzazioneReparto

DB Infermi

Record 1Record 2…………Record n

IdCognome

NomeSpecializzazione

Reparto

DB Pazienti

Record 1Record 2…………Record p

IdCognome

NomeDt Nascita

Dt RicoveroRepartoMedico

DB Reparti

Record 1Record 2…………Record q

Record:Id

Nome RepartoLetti

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 60 of XX _

DBMS

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 61 of XX _

DBMS Tabella

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 62 of XX _

Relazioni

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 63 of XX _

DBMS

La funzione principale dei data base è quella di selezionare i dati e fornirli aggregati in secondo le richieste dell’utente Select Pazienti.CognomeFrom DB_PazientiWhere DB_Pazienti.Rep1=“Urologia”

And ( Med_Rif =“Lorenzetti”Or Med_Sost = “Galli” )

Order by Cognome

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 64 of XX _

Linguaggi ipertestuali HTML

Hanno avuto un notevole impulso con l’avvento di INTERNET in quanto:Logica di tipo reticolare nella lettura e acquisizione dell’informazioneLa logica lineare con cui sono scritti i testi spesso non è in accordo con quella del lettore.Il lettore mentre legge può avere la necessità, curiositàdi chiarire, approfondire parti del discorso , oppure chi ha scritto la pagina può avere la necessità di indirizzare il lettore verso altri sitiHTML (HyperText Markup Language)

URL (Uniform Resource Locators)

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 65 of XX _

HTML (Hypertext Markup Language)Il formato HTML prevede la presenza dei solo testo e comandi (denominati markup o tag) che rappresentano i comandi che il software browser interpreterà per realizzare la pagina da visualizzareQuesti comandi sono inseriti con due simboli delimitatori di inizio e fine<nome_del_tag> seguiti da testo o comandi più complessi </nome_del_tag>Es.<U> sottolineato </U><I> italico </I><EM> enfatizzato </EM><BR> ritorno a capo<P> ritorno a capo con linea vuota<BODY> corpo del testo </BODY><UL> lista non numerato </UL><LI> elemento di lista </LI><A HREF=“path\...\indirizzo”>Partite 2011-2012</A> anchor point<IMG SRC=“path\...\nome immagine”>

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 66 of XX _

Linguaggi ipertestuali HTML

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 67 of XX _

HTML (Hypertext Markup Language)

Utilizzando la logica della definizione si possono costruire degli elenchi <UL>

<LI> D. Sciuto, G. Buonanno, L. Mari, W. Fornaciari<EM>Introduzione ai sistemi Informatici</EM> McGraw-Hill Italia 2008

<LI><U><I>autori<EM> Informatica </EM>

Editore</I></U>

</UL>

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 68 of XX _

XML ( Xtensible Markup Language)<LIBRO>

<AUTORE> D. Sciuto</AUTORE><AUTORE> G. Buonanno </AUTORE><AUTORE> L. Mari </AUTORE><AUTORE> W. Fornaciari </AUTORE><TITOLO> EM>Introduzione ai sistemi Informatici </TITOLO> <EDITORE> McGraw-Hill Italia </EDITORE>

<EM>Introduzione ai sistemi Informatici</EM> McGraw-Hill Italia 2008

</LIBRO>

UL lista non numerataLI eleneto di listaEM enfatizzato

Il simbolo / indica file della funzione

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 69 of XX _

DTD (Document Type Definition)<!------- Bibliografia ----><BIB>

<LIBRO nome=“info”><AUTORE id = “dony”> D. Sciuto</AUTORE><AUTORE id = “jack”> G. Buonanno </AUTORE><AUTORE id = “luca”> L. Mari </AUTORE><AUTORE id = “mau”> W. Fornaciari </AUTORE><TITOLO> EM>Introduzione ai sistemi Informatici </TITOLO> <EDITORE> McGraw-Hill Italia </EDITORE> <ANNO> 2008

</LIBRO>

<LIBRO nome=“DataBase”>< AUTORE idref = “luca”<TITOLO> Accesso a database via web</TITOLO><EDITORE> Apogeo </EDITORE><ANNO> 2001</ANNO>

</LIBRO>

</BIB>

Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 70 of XX _

Esempio di dati per il DB medico scientifico PubMed

Università degli Studi di Roma – Tor VergataFacoltà di Ingegneria – Corso di Laurea in Ingegneria Medica