Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
27/05/2017
1
Università degli Studi di Roma – Tor Vergata
Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica
Softwaree
Linguaggi di programmazione
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia
Interattività
Slide 2 of 75 _
Software
27/05/2017
2
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 3 of 77 _
SOFTWARE
SOFTWARE elemento “morbido”
E’ la componente che consente di sfruttare le risorse fisiche (hardware) disponibili
Sono i programmi che permettono di elaborare le informazioni, controllare le periferiche e produrre i risultati.
Un programma è un algoritmo scritto per poter essere eseguito da un calcolatore
Slide 3 of 75 _
Software
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 4 of 77 _
Classificazione del software
Slide 4 of 75 _
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
27/05/2017
3
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 5 of 77 _
Software di base
Fanno parte del software di baseFIRMWARE (BIOS - Basic Inpot/Output System - ROM residente)
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 sistema
Gestore file - Controllo sulle funzioni I/O
Comandi di processo - Programmi di utilità
Slide 5 of 75 _
Software
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 6 of 77 _
Sviluppo e ciclo di vita 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
Slide 6 of 75 _
27/05/2017
4
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 7 of 77 _
Processo di realizzazione del software
Slide 7 of 75 _
Analisi
Problema
Programmazione
Soluzione informale
Soluzione formale dell’
Algoritmo
Esecuzione
Programma macchina
Formalizzazionediagrammazione
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 -2017 - Franco Del Bolgia Slide 8 of 77 _
Linguaggi di programmazione
Slide 8 of 75 _
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 suo set di istruzioni, linguaggio macchina composto da sequenze di bit opportunamente organizzate.
Nel tempo sono stati creati più di 2500 diversi linguaggi (problem-oriented).
http://it.wikipedia.org/wiki/Linguaggio_di_programmazione
http://it.wikipedia.org/wiki/Elenco_cronologico_dei_linguaggi_di_programmazione
27/05/2017
5
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 9 of 77 _
Linguaggi di programmazione
Slide 9 of 75 _
Esempio di trascrizione in VB del diagramma della lezione
precedenteGestione armadietto farmaci
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 10 of 77 _
Linguaggi di programmazione
La scrittura dell’algoritmo per un esecutore è quindi caratterizzato da
1. una sintassi, regole che specificano come comporre l’istruzione ben formate
2. una semantica, specifica il significato delle operazioni nell’esecuzione dell’istruzione
Linguaggio macchina prima generazione
Linguaggi di basso livello assemblativi seconda generazione
Linguaggi di medio e alto livelloFortran, Cobol, Basic, Pascal, C++, Java, MatLab
Slide 10 of 75
27/05/2017
6
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 11 of 77 _
Linguaggi di programmazione
Linguaggi di prima generazioneIl linguaggio macchina usa solo codice binario (01001011) 8BFattoriNegativi: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
Slide 11 of 75 _
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 12 of 77 _
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.
Slide 12 of 75
27/05/2017
7
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 13 of 77 _
Linguaggi ad alto livello
Dato 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 (in tempo reale)
Traduzione a livello compilatosi parte dal codice sorgente che viene tradotto nel suo complesso (fase 1) e quindi si può eseguire il codice esecutivo (fase 2)
Traduzione a livello emulativoÈ un tipo di traduttore utilizzato per far girare codice eseguibile prodotto per un dato processore su un processore diverso
Slide 13 of 75
Slide 14 of 77 _
Interprete
Il 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 momento dell’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 può essere 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
Slide 14 of 75 Informatica - Ingegneria Medica -2017 - Franco Del Bolgia
27/05/2017
8
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 15 of 77 _
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.
Fattori
Positivi
se ci sono errori di sintassi o congruità sulle variabili questi vengono rilevati tutti al momento della compilazione e possono essere corretti
nella compilazione si possono assemblare più parti anche testate e compilate precedentemente per ottenere l’eseguibile completo.
Negativi
Per 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
Slide 15 of 75
Tipologie d'errore
Errori di formali (lessicali e sintattici)Una sequenza di simboli è mal formata e non corrisponde ad una istruzione valida
Producono sempre uno stop
Errori di logicaL'algoritmo esegue un percorso diverso da quello pensato dall'analista
Sono di difficile rilevazione, e vengono individuati solo se si verificano determinate condizioni.
Non produce quasi mai uno stop
Forniscono sempre risultati errati
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 16 of 79 _
27/05/2017
9
Tipologie d'errore
Errori in esecuzione (assegnazione, definizione)Sono assegnate informazioni a variabili non compatibili tra loro oppure il risultato ottenuto è fuori del range di validità
(div/0, elementi di matrice non definiti, )
Producono uno stop nel momento in cui viene eseguita l'istruzione.
Non produco stop ma forniscono risultati errati (perdita dei decimali)
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 17 of 79 _
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 18 of 77 _Slide 18 of 75
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
27/05/2017
10
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 19 of 77 _
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
Slide 19 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 20 of 77 _
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
Slide 20 of 75
27/05/2017
11
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 21 of 77 _
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
Slide 21 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 22 of 77 _
Paradigma imperativo - procedurale
Slide 22 of 75
Inizio
Fine
wm,,nleggi
NO SIni
y ︶v ︵x, stampadatimemorizza
y ︶v ︵x, w,j, i, m, n,variabilidelleoneDichiarazi
y ︶v ︵x, w,j, i, m, n,variabilidelleneAssegnazio
wsu operazionij ︶v ︵i, su operazioni
j indicesull' operazionii indicesull' operazioni
variabili sulleoperazioni delle esecuzione
27/05/2017
12
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 23 of 77 _
Paradigma imperativo - procedurale
Slide 23 of 75
Bloccoistruzioni
NO
SI
....
Condizione
....
main ()
{
………
if (condizione) {
blocco di istruzioni se vero;
}
…….
}
……
if (condizione) then
blocco di istruzioni se vero
end if
…….
Program …
begin
if (condizione)
then
blocco di istruzioni se vero;
end.
…….
Programmazione strutturata
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 24 of 77 _
Paradigma imperativo - procedurale
Slide 24 of 75
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
…….
Program …
begin
if (condizione)
then
blocco di istruzioni se vero
else
blocco di istruzioni se falso;
end.
…….
27/05/2017
13
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 25 of 77 _
Paradigma imperativo - procedurale
Slide 25 of 75
NO
SI
Bloccoistruzioni
....
Condizione
....
main ()
{ ………
while (condizione) {
blocco di istruzioni finché vero;
}
…….
}
……
while condizione
blocco di istruzioni finché vero
wend
…….
……
while condizione do
begin
blocco di istruzioni finché vero
end;
…….
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 26 of 77 _
Paradigma imperativo - procedurale
Slide 26 of 75
……
repeat
blocco di istruzioni
until condizione ;
…….
NO
SI
Bloccoistruzioni
....
Condizione
....
……
For I=1 to 10
blocco di istruzioni
next I
…….
……
For Each object as integer
blocco di istruzioni
next object
…….
……
Do (while o Until) condizione
blocco di istruzioni
Loop
…….
……
Do
blocco di istruzioni
Loop (while o Until) condizione
…….
....
NO
SI
Bloccoistruzioni
Condizione
....
27/05/2017
14
Slide 27 of 77 _
Paradigma imperativo - procedurale
Slide 27 of 75 Informatica - Ingegneria Medica -2017 - Franco Del Bolgia
Routine richiamo funzione da oggetto pulsante che acquisisce il valore da cercare
Ricerca delle ricorrenze di un valore su un vettore numerico
Es. Visualizza la frase "Il valore 23 è stato trovato per 7 volte"
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 28 of 77 _
Paradigma imperativo - procedurale
Slide 28 of 75
Ricerca ricorrenze in Java
27/05/2017
15
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 29 of 77 _
DatiLe 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 fraseanche il simbolo & è usato per concatenare stringhe
Slide 29 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 30 of 77 _
DatiCosì come se devo costruire una frase le parole devono essere concatenate opportunamente a formare la frase in questo caso & rappresenta la funzione di concatenazione. Le stringhe vengono rappresentate all’interno di “
la stringa vuota ““testo = “Pippo oggi deve andare “ & destinazione & “ per “ & azione
testo è una stringa formata da due costanti la prima di 23 caratteri e la seconda di 5 caratteri e due variabili di lunghezza variabile
destinazione è una stringa variabile
azione è una stringa variabile
Se destinazione e azione sono vuote il messaggio sarà
“Pippo·oggi·deve·andare··per·“ · simbolo spazio
Slide 30 of 75
27/05/2017
16
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 31 of 77 _
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 “
Slide 31 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 32 of 77 _
Definizione delle variabiliLe variabili possono avere varie tipizzazioni statiche (es. VBA)Boolean (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
Slide 32 of 75
27/05/2017
17
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 33 of 77 _
Definizione delle variabiliCurrency (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 e 1 o 2 byte per lunghezza della stringa
String * length (testo di lunghezza fissa)length byte è la lunghezza definita dall’utilizzatore
Object riferimento (indirizzo ad un oggetto di office)
4 byte
Definizione dinamica
Variant (assume la definizione data dal valore attuale)boolean, integer, long, single, double, date, currency, string
Slide 33 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 34 of 77 _
Definizione delle variabiliA seconda del linguaggio si hanno molte differenti alternative (es. Java, C++)
boolean(Vero, Falso) non hanno valore numerico occupa 1 byte
char(contiene caratteri tipo unicode a 2 byte + address)serve per inserire codici ASCII particolari
Numeri interi (variabili statiche)
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)
Slide 34 of 75
27/05/2017
18
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 35 of 77 _
Definizione delle variabili
float(4 byte, 32 bit – numeri reali 6 o 7 cifre decimali significativevalori da +/- 140129846432481707*10^- 45 a
+/- 340282346638528860*10^ 38 )
double(8 byte, 64 bit – – numeri reali 15 cifre decimali significativevalori da +/- 494065645841246544 * 10^-324 a
+/- 179769313486231570 * 10^308 )
Definizione dinamicaVar
Variabili di tipo dinamico può assumere tutte le tipologie consentite, che vengono applicate al momento di assegnazione l'errore si evidenzia quando viene applicato l'operatore
Slide 35 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 36 of 77 _
Regole legate alla tipizzazione di variabileQuasi tutti i linguaggi interpreti / compilatori hanno delle limitazioni stringenti nella definizione dei dati costanti o variabiliTipizzazione StaticaDevono essere definite prima del loro utilizzo
Le variabili una volta definite nella loro tipologia
hanno range di variabilità definito del tipohanno valori assegnabili definito dal tipohanno operatori validi e non validi
Tipizzazione Dinamica
Assumono la tipizzazione al momento dell'assegnazione (serve maggior tempo di elaborazione e spazio)
Slide 36 of 75
27/05/2017
19
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 37 of 77 _
Regole legate alla tipizzazione di variabile
Le stringhe generalmente sono racchiuse tra singoli apici o doppi apici e possono essere identificate nel nome con il simbolo $ che le precede
'Pippo' "Pippo" $Nome="Pippo"
Valutario @
Data # 10/08/2016 #
La definizione della variabile ne stabilisce il comportamento "00100" è una stringa sulla quale non si possono effettuare operazioni algebriche.
Slide 37 of 75
Struttura di una procedura
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 38 of 79 _
Modulo principale
Menu scelta
Modulo 1 Modulo 2
Modulo Sa
Modulo 3
Uscita
Modulo Sb
Modulo Sc
Modulo Sd
Moduli secondarispecifiche attività
richiamati da vari livelli
27/05/2017
20
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 39 of 77 _
Visibilità delle variabili
Localvisibilità limitata alla classe o metodo
Globalvisibilità a livello locale e di modulo
Publicvisibilità a livello totale
Privatevisibilità a livello locale di classe
Slide 39 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 41 of 77 _
Dati strutturati
Dati strutturati o definiti dall’utente per la gestione Database
Slide 41 of 75
struct paziente {
long ID
char nome [Dimensione]
char cognome [Dimensione]
date data_nascita
date data_evento
boolean vac_Antipolio
boolean vac_Antitetanica
boolean vac_Antrabbica
int altezza
int peso
}
Type paziente
ID as long
nome as string * [Dimensione]
cognome as string * [Dimensione]
data_nascita as Date
data_evento as Date
vac_Antipolio as Boolen
vac_Antitetanica as Boolen
vac_Antrabbica as Boolen
altezza as Integer
peso as Integer
End Type
Linguaggio C Basic
27/05/2017
21
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 42 of 77 _
Gestione vettoriale dei dati strutturati
Slide 42 of 75
main ()
{ struct paziente P[300];
ID=0;
fine=1
while ( fine<>0)
{ ID=ID+1;
scanf P(ID).nome;
scanf P(ID).cognome;
scanf P(ID). data_nascita;
……….
scanf P(ID).Antirabbica;
scanf P(ID).altezza;
scanf P(ID).peso;
scanf fine;
}
Dim P(300) as paziente
ID=0;
fine=1
while fine<>0
ID=ID+1
input P(ID).nome
input P(ID).cognome
input P(ID). data_nascita
……….
input P(ID).Antirabbica
input P(ID).altezza
input P(ID).peso
input fine
wend
Linguaggio C Basic
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 43 of 77 _
EsempioEsempio: controllare il testo digitato e trasformare in maiuscolo la prima lettera di ogni parola digitata
qualunque siano le modalità con cui sono state digitate le parole queste devono essere verificate e corrette inoltre eliminare la presenza di spazi iniziali e finali e ridurre ad uno gli spazi tra le parole.
i puntini tra le lettere rappresentano il carattere
spazio il simbolo finale rappresenta fine testo.
Slide 43 of 75
27/05/2017
22
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 44 of 77 _
Esempio di routine di input e controllo dati1 – Introduzione testo2 - Eliminazione di eventuali spazi all’inizio e alla fine
del testo e spazio digitato più voltericerca dalla posizione 1 chr spazio e se presente elimina fino a chr<>spazioricerca dalla posizione 2 chr spazio e se il chr (i+1) = spazio elimina ricerca nella posizione n chr spazio elimina. Considerare che la L str varia
3 – Converto tutto in minuscoloaggiungo 32 al valore del carattere se 64<Valore<91
4 – Converto il 1° carattere in maiuscolosottraggo 32 al suo valore
5 - Cerco gli spazi presenti e converto la lettera immediatamente successiva in maiuscolociclo dal 2° carattere cerco il valore 64, aggiungo 1 al puntatore, sottraggo 32 al valore del carattere puntato, continuo il ciclo fino alla lunghezza della stringa
6 – Visualizzo il risultato
Slide 44 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 45 of 77 _
Definizione di matrici
matrice(n,m)
dove n numero di righe ed m numero di colonne
matri(10,8) 10 (n) righe ed 8 (m) colonne
Matri(1 to 10, 1 to 8)
Slide 45 of 75
elem(1,1) elem(1,2) elem(1,3) elem(1,4) …… elem(1,8)
elem(2,1) elem(2,2) elem(2,3) elem(2,4) …… elem(2,8)
elem(3,1) elem(3,2) elem(3,3) elem(3,4) …… elem(3,8)
elem(4,1) elem(4,2) elem(4,3) elem(4,4) …… elem(4,8)
elem(5,1) elem(5,2) elem(5,3) elem(5,4) …… elem(5,8)
…… …… …… …… …… ……
…… …… …… …… …… ……
lem(10,1) elem(10,2) elem(10,3) elem(10,4) elem(10,8)
27/05/2017
23
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 46 of 77 _
Definizione di matrici
matrice(n,m)
dove n numero di righe ed m numero di colonne
matri(10,8) 10 (n) righe ed 8 (m) colonne
Matri(0 to 9, 0 to 7)
Slide 46 of 75
elem(0,0) elem(0,1) elem(0,2) elem(0,3) …… elem(0,7)
elem(2,0) elem(2,1) elem(2,2) elem(2,3) …… elem(2,7)
elem(3,0) elem(3,1) elem(3,2) elem(3,3) …… elem(3,7)
elem(4,0) elem(4,1) elem(4,2) elem(4,3) …… elem(4,7)
elem(5,0) elem(5,1) elem(5,2) elem(5,3) …… elem(5,7)
…… …… …… …… …… ……
…… …… …… …… …… ……
lem(9,0) elem(9,1) elem(9,2) elem(9,3) elem(9,7)
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 47 of 77 _
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
Slide 47 of 75
27/05/2017
24
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 48 of 77 _
Paradigma orientato agli oggetti
Slide 48 of 75
Oggetto pulsante
Oggetto casellatesto
Oggetto casellaetichetta
Oggetto casellatesto multi linea
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 49 of 77 _
Paradigma orientato agli oggetti – proprietà oggetti
Slide 49 of 75
Oggetto pulsante
Oggetto casellatesto
Oggetto casellaetichetta
Oggetto casellatesto multi linea
27/05/2017
25
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 50 of 77 _
Attività svolta dagli oggetti
Slide 50 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 51 of 77 _
Dati e Oggetti
Slide 51 of 75
Bicicletta
Mozzo
Ruota posteioreRuota Anteriore
Cerchione
Telaio
Mozzo Cerchione
Class Bicicletta {
String Dati Bicicletta
Telaio telaio;
RuotaA Ruota anteriore
RuotaP Ruota posteriore
}
Class Telaio {
String tipo
Numero di serie
}
Class Dati Bicicletta {
String Marca
String Numero di serie
}
Class RuotaA {
String tipo
Mozzo mozzo
Cerchione cerchine
}
Class RuotaP {
String tipo
Mozzo mozzo
Cerchione cerchine
}
27/05/2017
26
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 52 of 77 _
Dati e oggetti
Slide 52 of 75
Bicicletta
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 -2017 - Franco Del Bolgia Slide 53 of 77 _
Paradigma funzionale
Paradigma funzionale
Generalmente 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 specifica
I dati e le istruzioni tendono ad essere un tutt’uno.
Un esempio tipico è il linguaggio LISP
Slide 53 of 75
27/05/2017
27
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 54 of 77 _
Paradigma funzionale LISP
(print (+ 12 23))Notaz Inv Pol (12 23 +)
(defun max (x y) (if (>=x y) x y))
print 12 + 32
Function max(x,y)If a>=b then
max=aElsemax=b
End ifEnd function
LISPBasic
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 55 of 77 _
Paradigma funzionale
Slide 55 of 75
112)( x
dt
dx
dt
dx
dt
dtu
dt
d
dt
d
dt
d
+
+
-u
2x
1x
22
2
dt
xddt
dx2
dt
dx1
generatore
generatore
grafica
27/05/2017
28
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 56 of 77 _
Paradigma funzionale
Slide 56 of 75
112)( x
dt
dxB
dt
dx
dt
dAtu
dt
d
dt
d
dt
d
+
+
-u
2x
1x
22
2
dt
xddt
dx2
dt
dx1'* ieB
''* ieA
generatore
grafica
generatore
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 57 of 77 _
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.
Slide 57 of 75
27/05/2017
29
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 58 of 77 _
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
Slide 58 of 75
predicato
argomenti
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 59 of 77 _
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 ]
Slide 59 of 75
predicato argomenti
27/05/2017
30
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 60 of 77 _
Paradigma dichiarativoLe funzioni dichiarative costituiscono la base di dati :padre (padre,figlio) madre(madre,figlio)
Slide 60 of 75
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 -2017 - Franco Del Bolgia Slide 61 of 77 _
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
Slide 61 of 75
27/05/2017
31
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 62 of 77 _
Paradigma dichiarativoLe funzioni dichiarative costituiscono la base di dati :genitore (genitore,figlio)
Slide 62 of 75
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 -2017 - Franco Del Bolgia Slide 63 of 77 _
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)
Slide 63 of 75
27/05/2017
32
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 64 of 77 _
Paradigma dichiarativoLe funzioni dichiarative costituiscono la base di dati :genitore (genitore,figlio)
Slide 64 of 75
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=Giulio
x=Monica
x=Eva
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 65 of 77 _
Paradigma dichiarativoLe funzioni dichiarative costituiscono la base di dati :genitore (genitore,figlio)
Slide 65 of 75
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
27/05/2017
33
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 66 of 77 _
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.
Slide 66 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 67 of 77 _
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.
Slide 67 of 75
27/05/2017
34
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 68 of 77 _
DBMS
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)
Slide 68 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 69 of 77 _
DBMS
Slide 69 of 75
DataBase
Tabella 1
Record 1
Record 2
…………
Record n
Record:
key
Item 1
Item 2
……
Item g
Tabella 2
Record 1
Record 2
…………
Record m
Record:
key
Item 1
Item 2
……
Item f
Tabella 3
Record 1
Record 2
…………
Record h
Record:
key
Item 1
Item 2
……
Item p
Tabella 4
Record 1
Record 2
…………
Record k
Record:
key
Item 1
Item 2
……
Item q
27/05/2017
35
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 70 of 77 _
DBMS
Slide 70 of 75
Ospedaliero
DB Medici
Record 1
Record 2
…………
Record m
Record:
Id
Cognome
Nome
Specializzazione
Reparto
DB Infermieri
Record 1
Record 2
…………
Record n
Id
Cognome
Nome
Specializzazione
Reparto
DB Pazienti
Record 1
Record 2
…………
Record p
Id
Cognome
Nome
Dt Nascita
Dt Ricovero
Reparto
Medico
DB Reparti
Record 1
Record 2
…………
Record q
Record:
Id
Nome Reparto
Letti
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 71 of 77 _
DBMS
Slide 71 of 75
27/05/2017
36
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 72 of 77 _
DBMS Tabella
Slide 72 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 73 of 77 _
Relazioni tra gli elementi delle tabelle
Slide 73 of 75
27/05/2017
37
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 74 of 77 _
DBMS
La funzione principale dei data base è quella di selezionare i dati e fornirli aggregati secondo le richieste dell’utenteSeleziona tutti i pazienti presenti nella tabella DB_Pazienti, ricoverati al primo in Urologia, i cui medici di riferimento sono Lorenzetti o Galli ordina elenco sul cognome
Select Pazienti.Cognome
From DB_Pazienti
Where DB_Pazienti.Rep1=“Urologia”
And (DB_Pazienti.Med_Rif =“Lorenzetti”
Or DB_Pazienti.Med_Sost = “Galli” )
Order by Cognome
Slide 74 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 75 of 77 _
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)
Slide 75 of 75
27/05/2017
38
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 76 of 77 _
HTML (Hypertext Markup Language)Il formato HTML prevede la presenza di solo testo e comandi (denominati markup o tag) che rappresentano i comandi che il software browser interpreterà per realizzare/assemblare la pagina da visualizzare
Questi comandi sono inseriti con due simboli delimitatori di inizio e fine oppure codice di comando<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 numerata </UL><LI> elemento di lista </LI><A HREF=“path\...\indirizzo”>Partite 2011-2012</A> anchor point<IMG SRC=“path\...\nome immagine”>
Slide 76 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 77 of 77 _
Linguaggi ipertestuali HTML
Slide 77 of 75
27/05/2017
39
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 78 of 77 _
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>
Slide 78 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 79 of 77 _
XML ( Xtensible Markup Language)<UL>
<LI><LIBRO><AUTORE> D. Sciuto</AUTORE><AUTORE> G. Buonanno </AUTORE><AUTORE> L. Mari </AUTORE><AUTORE> W. Fornaciari </AUTORE><TITOLO> <EM>Introduzione ai sistemi Informatici </EM> </TITOLO> <EDITORE> McGraw-Hill Italia </EDITORE>
</LIBRO></LI><LI><LIBRO>
……………<LIBRO></LI><LI><LIBRO>
……………</LIBRO>></LI>
</UL>
UL Lista non numerata LI Elemento di lista numerata EM enfatizzatoIl simbolo / indica termine funzione
Slide 79 of 75
27/05/2017
40
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 80 of 77 _
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>
Slide 80 of 75
Informatica - Ingegneria Medica -2017 - Franco Del Bolgia Slide 81 of 77 _
Esempio di dati per il DB medico scientifico PubMed
Slide 81 of 75
27/05/2017
41
Università degli Studi di Roma – Tor Vergata
Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica
Domande ?