sistemi informativi di rete aa 2000-01 introduzione alla programmazione
TRANSCRIPT
![Page 1: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/1.jpg)
Sistemi Informativi di Rete
AA 2000-01
Introduzione alla programmazione
![Page 2: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/2.jpg)
Informazioni Generali
• Prof. Letizia Tanca, Dip. Elettronica e Informazione, stanza 128, tel. 3531– ricevimento mercoledì h. 14:16
• Esercitazioni: ing. Matteo Valsasna, ing. Gianfranco Mattia
![Page 3: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/3.jpg)
Materiale didattico consigliato
Testi ufficiali• Ron White, "Il computer, come è fatto e come funziona", Mondadori
Informatica.
• S.Ceri, D.Mandrioli, L.Sbattella, "Informatica: arte e mestiere", McGraw-Hill, Italia, 1999.
Letture consigliate• Manuali di Java (v. Valsasna)
• G.Buonanno, W.Fornaciari, L.Mari, D.Sciuto, Introduzione ai sistemi informatici, McGraw-Hill, 1997.
• P.Atzeni, S.Ceri, S.Paraboschi, R.Torlone, "Basi di dati", McGraw-Hill, II ed., 1999.
![Page 4: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/4.jpg)
L’informatica
E’ la scienza che si occupa della
rappresentazione dell’ informazione
e della sua gestione
![Page 5: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/5.jpg)
L’informatica• Scienza: approccio rigoroso e sistematico• Informazione: e’ parte di qualsiasi attivita’ umana• Rappresentazione: il problema di astrarre i
concetti importanti da quelli trascurabili per poter modellare la realta’ di interesse:ci serve studiare metodi di rappresentazione appropriati all’elaborazione da parte di una macchina digitale
• Gestione: uso e trasformazione dell’informazione in maniera funzionale agli obiettivi
![Page 6: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/6.jpg)
Argomenti del corso• Programmazione:
– impariamo un linguaggio di programmazione: Java
– impariamo come si imposta una procedura:• l’astrazione
• i tipi di dati e le strutture dati
• le strutture di controllo e gli algoritmi
• l’ingegneria del software
• Sistemi di elaborazione: comprendiamo l’architettura HW e SW di un computer e di una rete.
• Sistemi informativi: impariamo a progettare sistemi informativi di rete.
![Page 7: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/7.jpg)
Architettura di un ComputerHardware
• l’Unita’ Centrale (CPU),• la Memoria Centrale (RAM)• la Memoria di Massa• il Bus di Sistema• le Unita’ Periferiche• le Reti di Computer
Il linguaggio della macchina è l’aritmetica binaria
![Page 8: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/8.jpg)
Architettura di un Computer:Software di sistema
• il sistema operativo• i sistemi di gestione di basi di dati• il software di rete• gli ambienti di programmazione: editors,
traduttori, collegatori, debuggers..• gli strumenti di produttivita’: word processors,
fogli elettronici, strumenti per la produzione di slide, strumenti per la produzione di ipertesti…..
![Page 9: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/9.jpg)
Architettura di un Computer:Software applicativo
• gestionale (sistemi informativi aziendali, elaborazione paghe, fatturazione, automazione del terziario, ….office automation: workflow management)
• numerico (metereologia, applicaz. statistiche,..)
• telematico (terminali bancari, prenotazioni aeree, ….Internet….)
• automazione industriale (robotica, CAD, CIM…)
• controllo di processi (centrali elettriche, nucleari, controllo traffico aereo…)
• realta’ virtuale e interfacce utente …software multimediale
![Page 10: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/10.jpg)
Strumenti di Produttivita’• Word processors, agende elettroniche,...• I fogli elettronici: Microsoft Excel • Le basi di dati: Microsoft Access
La rete Internet• Le reti di calcolatori, sistemi distribuiti• Il World Wide Web• La posta elettronica• Telnet, FTP
![Page 11: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/11.jpg)
I calcolatori elettronici• strumenti in grado di eseguire operazioni
non complesse
modello attuale (macchina di Von Neumann):– Capacità di scelta (possibilità di scegliere percorsi
diversi in base allo stato interno del sistema);
– Funzionalità programmata (capacità di modificare il proprio comportamento in base al programma);
– Dispositivi digitali (utilizzano valori binari).
– Di tipo sequenziale: può processare una sola istruzione per volta.
![Page 12: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/12.jpg)
La macchina di von Neumann
• l’Unita’ Centrale (CPU),
• la Memoria Centrale (RAM)
• la Memoria di Massa• il Bus di Sistema• le Unita’ Periferiche
CPU
MM
BUSRAM
UP1
UPn
![Page 13: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/13.jpg)
Risoluzione automatica di problemi
• Ripetizione di un gran numero di operazioni relativamente semplici
• Capacita’ di trattare grandi quantita’ di dati senza errori
• Rapidita’ e precisione di esecuzione• Le attitudini umane si adattano tipicamente a
individuare metodi per ottenere le soluzioni
![Page 14: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/14.jpg)
Dal problema alla soluzione automatica
• Specifiche: descrizione precisa e corretta dei requisiti (verificabilita’) ---> cosa?
• Progetto: procedimento con cui si individua la soluzione ---> come?
• Soluzione: algoritmo
![Page 15: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/15.jpg)
Definizione di algoritmo
Dato un problema e un esecutore, un algoritmo e’:
• una successione finita di passi elementari
• eseguibili senza ambiguita’ dall’esecutore
• che risolve il problema dato
• nel nostro caso: algoritmi sequenziali
![Page 16: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/16.jpg)
Prodotto di due interi positivi
• Leggi W
• Leggi Y
• Somma W a se stesso Y volte
• Scrivi risultato
![Page 17: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/17.jpg)
Prodotto di due interi positivi1 Leggi W
2 Leggi Y
3 SP = 0
4 NS = Y
5 SP = SP + W
6 NS = NS - 1
7 NS = 0?
Se NO: torna a 5; se SI :
8 Z = SP
9 Scrivi Z
• Procedimento sequenziale
• Non ambiguo
• Formulazione generale
• Prevede tutti i casi
(che succede se Y < 0?)
![Page 18: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/18.jpg)
ALGORITMITre aspetti fondamentali:
– Gli oggetti su cui esso agisce (variabili o costanti), alcuni acquisiti dall’esterno (INPUT) e manipolati, altri interni, di supporto, altri forniti come risultati (OUTPUT);
– Le operazioni effettuate;
– Il flusso di controllo (successione delle operazioni da eseguire).
Flusso di esecuzione: descrive la sequenza di operazioni
effettuate in una particolare esecuzione.
![Page 19: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/19.jpg)
ALGORITMI
• Criteri di valutazione di un buon algoritmo:– Correttezza: capacità di pervenire alla soluzione
appropriata del problema prevedendo tutti i casi significativi che possono presentarsi;
– Efficienza: proprietà strettamente correlata al tempo di esecuzione e alla memoria occupata.
![Page 20: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/20.jpg)
Strumenti per la descrizionedegli algoritmi
• Semi-formali (specifiche iniziali, ancora intelligibili solo all’essere umano)
• Formali (programmi da eseguire):
linguaggi di programmazione
![Page 21: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/21.jpg)
Linguaggi semi-formali
• pseudo-codice:
IF A>0 THEN A=A+1 ELSE A=0
• diagrammi di flusso (flow chart, schemi a blocchi):
![Page 22: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/22.jpg)
Prodotto di due interi positivi1 Leggi W
2 Leggi Y
3 SP = 0
4 NS = Y
5 SP = SP + W
6 NS = NS - 1
7 NS = 0?
Se NO: torna a 5; se SI:
8 Z = SP
9 Scrivi Z
Leggi (W)
Leggi (Y)
SP = 0
NS = Y
do
{ SP = SP + W
NS = NS - 1} while NS > 0
Z = SP
Scrivi (Z)
![Page 23: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/23.jpg)
Gli oggetti
Sono variabili o costanti:• alcuni acquisiti dall’esterno (INPUT) e manipolati, altri
interni, detti ausiliari o di supporto, altri forniti come risultati (OUTPUT)
• gli oggetti possono avere una struttura molto complessa
• le variabili sono dei contenitori di informazioni.
• durante l’esecuzione del programma devono avere sempre un valore definito, significativo o meno. Per questo motivo le variabili devono essere inizializzate.
![Page 24: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/24.jpg)
Gli oggetti
Gli oggetti possono avere una struttura molto complessa. Esempi:
• vettori (array): A[1],A[2],…A[N]
a una o piu’ dimensioni
• strutture:
data:giorno: 1..31,
mese: string,
anno: integer
![Page 25: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/25.jpg)
Operazioni ed espressioni• Operatori aritmetici: +, -, *, / …:Agiscono su valori, detti
operandi, di tipo numerico rappresentati da variabili o costanti e producono un valore numerico.
• Operatori di confronto: < , > , = …:Agiscono anch’essi sugli operandi e producono risultati di tipo booleano (VERO o FALSO).
• Funzioni: cos(x), log(x), …:Restituiscono valori; esistono funzioni predefinite (BUILT IN).
• Procedure: leggi (x), scrivi (n):Effettuano delle operazioni su valori detti parametri.
• Espressioni:Sono una composizione di operatori, funzioni, variabili e valori costanti.
![Page 26: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/26.jpg)
Operazione di assegnamentoOperazione di assegnamento: es. A:=B+C• Consente di assegnare un nuovo valore alla
variabile a sinistra dell’operatore di assegnamento (:= oppure =).
• Tale valore è determinato dalla valutazione dell’espressione a destra dell’operatore di assegnamento.
• Altro modo di assegnare valori: lettura dall’esterno
![Page 27: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/27.jpg)
Flusso di controllo
Il flusso di controllo e’ la successione delle operazioni da eseguire. Si utilizzano:
• istruzioni di tipo condizionale• istruzioni che impongono un flusso di controllo
ciclico: condizioni di permanenza nel ciclo:» ciclo a condizione iniziale
» ciclo a condizione finale
![Page 28: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/28.jpg)
Somma dei primi N naturali(uso di istruzione condizionale)
1. Leggi(N)
2. S=0
3. I=1
4. S=S+I
5. I=I+1
6. If I >N then go to 4
7. Scrivi(“La somma e’” S)
8. End
• Implementa un ciclo a condizione finale
• e’ corretto se N >= 1
![Page 29: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/29.jpg)
Istruzione Condizionale
Selezione semplice: if ….then…
Esempio: caso precedente.
Si tratta di una scelta tra eseguire oppure non eseguire una sequenza di istruzioni.
![Page 30: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/30.jpg)
Istruzione Condizionale
Selezione doppia: if ….then…else…
Esempio: caso precedente.
Si tratta di una scelta tra eseguire una sequenza di istruzioni oppure eseguirne un’altra sequenza .
![Page 31: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/31.jpg)
Somma dei primi N naturali(uso esplicito di ciclo)
1. Leggi(N)
2. S=0
3. I=1
4. do { S=S+I
5. I=I+1}
6. while I <= N
7. Scrivi(“La somma e’” S)
8. End
• implementa un ciclo a condizione finale
• e’ corretto se N >= 1 • esce dal ciclo dopo
averlo eseguito almeno una volta
![Page 32: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/32.jpg)
Elementi del flusso di controllo ciclico
• Variabile di controllo: inizializzata prima di entrare nel ciclo
• Condizione di permanenza nel ciclo:– a condizione iniziale– a condizione finale
• Modifica della variabile di controllo: avviene nel corpo del ciclo
![Page 33: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/33.jpg)
Somma dei primi N naturali(uso esplicito di ciclo)
1. Leggi(N)
2. S=0
3. I=1
4. while I <= N do
5. { S=S+I
6. I=I+1}
7. Scrivi(“La somma e’” S)
8. End
• implementa un ciclo a condizione iniziale
• e’ corretto se N >= 0
• non entra nel ciclo se N=0
![Page 34: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/34.jpg)
Linguaggi e programmi
Java e` un linguaggio di programmazione
Che cos’e` un l.p.?
linguaggio artificiale per programmare un computer
preciso e rigoroso
il computer e` meno tollerante agli “errori” di un “umano”
Che cos’e` un programma?
e` cio` che un computer esegue
realizza un’applicazione (es. Excel, Word, …)
![Page 35: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/35.jpg)
Linguaggi di Programmazione
Consentono di scrivere gli algoritmi sotto forma di programmi eseguibili dal calcolatore. Suddivisi in:
• Linguaggi di alto livello (più vicini linguisticamente al linguaggio naturale);
• Linguaggi assemblatori (più vicini al codice macchina)
![Page 36: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/36.jpg)
• Java ha successo come “linguaggio per internet”:
consente di creare “applet”:
(semplici) programmi che vengono eseguiti quando un browser carica una pagina HTML
Le applicazioni hanno un utente previsto (“end user”), ma questo termine e` ambiguo se non si specifica il contesto
JAVA
![Page 37: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/37.jpg)
I Traduttori
• I compilatori sono programmi che traducono i programmi scritti in alto livello in Assembler.
• Gli interpreti interpretano direttamente le operazioni eseguendole.
• Esempi di linguaggi:• Interpretati LISP, PROLOG (usatI
nell’intelligenza artificiale;• Compilati C, C++, PASCAL, FORTRAN.
![Page 38: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/38.jpg)
Costruzione ed esecuzione dei programmi (caso tradizionale)
editor compilatoretesto
sorgente
linguaggio macchina
(eseguibile)(codice oggetto)
bleah!errori
![Page 39: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/39.jpg)
Il computer esegue programmi scritti nel proprio linguaggio (linguaggio macchina) inadatto alla comunicazione umana: usa una codifica binaria (“0” e “1”), che e` direttamente interpretabile da circuiti elettronici
Il computer esegue programmi che sono memorizzati nella propria RAM
Parole =+bytes =+bit
System.out.println(“xxx”)
![Page 40: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/40.jpg)
Problema: ogni macchina (486, Pentium, …) ha il proprio linguaggio
- occorrono tanti compilatori quante sono le macchine
- non posso trasferire il codice oggetto
L’idea di Java
- definire un linguaggio macchina “universale” (Bytecode)
editor compilatoretesto
sorgente Bytecode
![Page 41: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/41.jpg)
Assomiglia ai linguaggi macchina, ma non coincide con nessuno, quindi non e` eseguibile direttamente dall’hardware
Alternativa 1
Esiste uno speciale compilatore per il Bytecode
Alternativa 2 (quella piu` comune)
Esiste una speciale applicazione che fa da “interprete” del linguaggio Bytecode
hardware
interprete Bytecodee` una macchina “virtuale”
Il bytecode e` una “lingua franca”
![Page 42: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/42.jpg)
Vantaggi e svantaggi dell’alternativa 2
• + portabilita` del codice tra macchine diverse (fondamentale nel caso di applet!)
• - efficienza !!
![Page 43: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/43.jpg)
Errori
• attenzione: il compilatore puo` rilevare solo alcuni errori (tipicamente errori sintattici)
• durante l’esecuzione del programma possono sorgere altri errori (errori “runtime” ), per esempio divisione per una grandezza che vale zero
![Page 44: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/44.jpg)
Struttura di un programma(linguaggio di alto livello)
• Parte dichiarativa: dichiarazione degli elementi del programma (dati e funzioni)
• Parte eseguibile: istruzioni:– input/output– assegnazione– controllo:
» condizionali
» cicli
![Page 45: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/45.jpg)
Dichiarazione dei dati
• Interi : valori:{…-4,-3,-2,-1,0,1,2,3,4,…
(int) operazioni: {+, -, *, /}
• Booleani: valori: {vero, falso}
(bool) operazioni: {and, or, not, implica}
• Reali: valori: R (float) operazioni: {+, -, *, /, sqrt, ...}
Le costanti: es. const float Pi=3,14
![Page 46: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/46.jpg)
Dichiarazione dei dati:tipi di dati
Il tipo e’ un concetto astratto che esprime:
• allocazione di spazio
• operazioni permesse:non posso fare “3 and 4”
non posso fare “vero * falso”
![Page 47: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/47.jpg)
Oggetti e classiAbitualmente operiamo con oggetti che hanno certi attributi e su cui si possono compiere operazioni
il mio televisore è un oggetto
il video del mio computer è un oggetto
il mio amico Pippo è un oggetto
Gli oggetti sono elementi (esemplari, “istanze”) di una classe
Tutti gli oggetti di una stessa classe condividono le stesse proprietà
![Page 48: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/48.jpg)
L’astrazione
E’ un processo mentale che:
• evidenzia alcune proprieta’ rilevanti ai fini dell’applicazione
• esclude le proprieta’ irrilevanti ai fini dell’applicazione
![Page 49: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/49.jpg)
Concetto: persona• Persona: nome, cognome, codice fiscale,
indirizzo, data di nascita, n. telefono, ...
• Persona come studente: nome, cognome, numero di matricola, corso di laurea, esami sostenuti, voti, anno di corso…
• Persona come paziente: nome, cognome, data di nascita, gruppo sanguigno, malattie avute, risultati esami medici,...
![Page 50: Sistemi Informativi di Rete AA 2000-01 Introduzione alla programmazione](https://reader033.vdocuments.site/reader033/viewer/2022060106/5542eb77497959361e8e1b4b/html5/thumbnails/50.jpg)
Classe Persona• Si introduce la classe delle persone, che avrà un certo insieme di
proprietà:– Persona: nome, cognome, codice fiscale, indirizzo, data di nascita, n.
telefono, …
• Si introducono le sottoclassi:– Studente: nome, cognome, numero di matricola, corso di laurea, esami
sostenuti, voti, anno di corso…
– Paziente: nome, cognome, data di nascita, gruppo sanguigno, malattie avute, risultati esami medici,…
• Si possono introdurre dei comportamenti (metodi)
per gli elementi di una certa sottoclasse:– Persona.trova i genitori