I dispositivi di input/output: il mouserossano/DIDATTICA/MDAMS-0203/lezione15.pdf · 1 Informatica...
Transcript of I dispositivi di input/output: il mouserossano/DIDATTICA/MDAMS-0203/lezione15.pdf · 1 Informatica...
1
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
I dispositivi di input/output: il mouse
• Oggi quasi tutti i computer hanno un dispositivo di puntamento detto mouse
• Una freccia indica la posizione del mouse sul video e lo spostamento del mouse sul tavolo viene comunicato al processore, che produce lo spostamento corrispondente della freccia sul video
• Una volta raggiunta la posizione desiderata, premendo uno dei pulsanti del mouse si genera un segnale in input che può corrispondere a diverse funzioni
2
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
I dispositivi di input/output: le stampanti
• La stampante è un dispositivo di output che consente la stampa su carta delle informazioni
• Parametri in base ai quali si valutano le prestazioni di una stampante– La velocità di stampa: viene solitamente misurata in pagine al
minuto o in caratteri al secondo,
– la risoluzione (qualità) di stampa: indica quanto precisa è la riproduzione dei simboli. Si misura in dpi (dot per inch).
3
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
I dispositivi di input/output: le stampanti
• Esistono diversi tipi di stampanti; i più comuni sono:– Stampanti a margherita o a testina rotante– Stampanti ad aghi– Stampanti a getto di inchiostro. – Stampanti laser
4
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Lo scanner
• Dispositivo che permette l’acquisizione di immagini in formato digitale
• La sua precisione (risoluzione) si misura in DPI (Dot Per Inch).
• Maggiore il DPI maggiore la risoluzione delle immagini acquisibili
• La risoluzione ottica indica il numero massimo di “puntini” in cui lo scanner è capace di scomporre una immagine, riferita alla lunghezza/larghezza di un pollice (25,4 mm).
• I dot (puntini in inglese) sono l’equivalente dei pixel• Può essere connesso alla porta parallela o all’USB
5
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Lo scanner
C i a o !
6
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Lo scanner
• Quanta memoria occupa una immagine 2``x3`` acquisita tramite uno scanner a 300 DPI, 256 colori?
300 DPI x 2 Inch = 600 Dot300 DPI x 3 Inch = 900 Dot
600x900 = 540.000 Dot256 colori 8 bit/pixel = 1 byte/pixel
540.000 byte circa 0.5 MB
7
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Lo scanner: che risoluzione usare?
• Per una visualizzazione sullo schermo di un monitor è del tutto inutile superare i 100DPI, visto che il monitor ne può rappresentare normalmente una novantina (perché?). Questo consente oltretutto un buon risparmio di memoria.
• Per l'editoria vanno normalmente usati 300DPI, limite fisico delle più comuni macchine da stampa, salvo diverse richieste dell'editore o pubblicazione di dettagli ingranditi tratti da quell'immagine.
• Per l'archiviazione quale originale vale la pena di salvaguardare al massimo il dettaglio dell'immagine, utilizzando i 600DPI dello scanner.
8
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Altri dispositivi di input/output
• Lettori di codici a barre
• Modem
• Fax
• Microfono (il controller si chiama scheda audio)
• Casse acustiche (il controller si chiama scheda audio)
• Plotter
9
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Interazione tra processore e memorie e dispositivi di I/O
PROCESSORE
UC ALU
MEMORIA CENTRALE
BUS
CLOCK
LETTORECD_ROM
HARD DISK
TASTIERA
MONITOR
CONTROLLER
CONTROLLER
CONTROLLER
CONTROLLER
10
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Programmazione: Sommario
• Concetti di Base della Programmazione;• Algoritmi;• Diagrammi di Flusso;• Istruzioni Sequenziali, Condizionali, Cicliche;• Logo
– Variabili, Procedure e Parametri;
11
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Il Problema computazionale
• È computazionale un problema che da alcuni dati iniziali porta ad un risultato tramite almeno una sequenza preordinata di passi;
• Esempi nella vita pratica si trovano facilmente nell’arte culinaria o nella musica.
12
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio
Il Risotto alla Zucca:- Abbiamo gli ingredienti (riso, zucca, olio, prezzemolo, cipolla,
sale, etc.) con le giuste quantità;- Seguiamo la ricetta;- Serviamo il piatto a tavola.
13
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Altro esempio
L’esecuzione della nona di Beethoven:- Abbiamo l’orchestra, il direttore ed i musicisti;- Seguiamo lo spartito;- La musica riempie la sala.
14
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Ma…
• Non è così facile come sembra!• Per scrivere la “sequenza di passi” bisogna essere un
bravo cuoco o un bravo compositore (o entrambi, come Rossini);
• Anche per sapere “eseguire” bisogna imparare l’arte.
15
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Il “cuore” dell’informatica?
• definizione di un particolare problema computazionale • scrittura di un algoritmo che lo risolve• scrittura del programma che traduce i passi
dell’algoritmo in termini comprensibili dal computer
16
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Algoritmo
• Un algoritmo è una sequenza finita di passi da eseguire affinché venga risolto un dato problema computazionale. Ogni passo deve essere esauribile in tempo finito.
• La cosa difficile è scrivere una sequenza di passi che risolvano il problema computazionale
17
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Il programma
• Il programma è la “scatola nera” che risolve il problema computazionale;
• Il programma è una sequenza di istruzioni che devono essere eseguite;
• Il programma è la traduzione per il computer dei passi dell’algoritmo
• Deve essere scritto tramite un linguaggio che il computer capisca (linguaggio macchina);
• Il programmatore utilizza un linguaggio di programmazioneche poi viene tradotto in linguaggio macchina;
18
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Il Problema Computazionale
INPUT
OUTPUT
PROGRAMMA
19
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Un esempio di algoritmo
Ricetta del Risotto alla Zucca:1. Preparare il soffritto ed il brodo;2. Aggiungere la zucca a pezzettini al soffritto;3. Mescolare fino a quando la zucca non è un purè;4. Aggiungere il riso al soffritto;5. Fare tostare il riso; poi bagnarlo con il vino;6. Aggiungere brodo fino a quando il riso è cotto;7. Aggiungere prezzemolo, pepe e burro; 8. Se preferisci salato, allora aggiungi sale;
20
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Fasi di creazione di un programma
1. Studio Preliminare
2. Analisi del Sistema
3. Progettazione
4. Sviluppo
5. Implementazione
6. Manutenzione e Test
21
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Le fasi dell’implementazione
• Analisi del problema computazionale (individuare input ed output, etc.)
• Progettazione di una soluzione proponendo una suddivisionedel problema in sottoproblemi più semplici; alla fine di questa fase, per ogni sottoproblema si deve scrivere l’algoritmo utilizzando pseudo-codici e diagrammi di flusso;
• Stesura del programma a partire dall’algoritmo: implementazione vera e propria
• Test del programma: alfa testing, beta testing, debugging• Produzione documentazione e distribuzione
22
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Sottoproblemi
• La ricetta precedente è un esempio di cosa significa scomporre un problema in sottoproblemi;
• Ogni sottoproblema può essere scomposto in problemi via via più elementari;
• Per ogni problema elementare deve esistere un’istruzione nel linguaggio adottato la cui esecuzione lo risolve.
23
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Alto e basso livello
• Man mano che si suddivide il problema in sottoproblemi, si scende di livello;
• Se ci si avvicina al linguaggio umano, si parla di linguaggi di Alto livello;
• Se ci si avvicina al linguaggio macchina, si parla di linguaggi di Basso livello;
24
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Linguaggi di Programmazione
Linguaggio Macchina
Linguaggio umano (es. Italiano)
Descrizione di un algoritmo (es. diagrammi di flusso,pseudo codice, etc…)
Linguaggi di Programmazione (es. C, VBasic, Java, Logo, etc…)
25
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Linguaggi di programmazione
• Linguaggio macchina– Codifica binaria delle istruzioni– Diverso per ogni architettura– Istruzioni e operazioni elementari coincidono
• Linguaggio Assembler– Sempre a livello macchina, ma codifica simbolica delle istruzioni– Es: ADD R1, #5
STORE R1, M[255]
26
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Linguaggi di programmazione
• Linguaggio ad alto livello (HLL - High-Level Languages– Elaboratore virtuale
• Operazioni molto più astratte delle operazioni HW– Es: x = y+2
z = cos(x)
– Linguaggio indipendente dalla piattaforma!– Possibile mediante l’esistenza di traduttori
27
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Linguaggi di programmazione
Programmasorgente(HLL)
Programmaeseguibile(bit)
Traduttore
28
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Traduttori
TraduttoreTraduttore
“somma due interi”…“stampa un messaggio”...
010101010111010101111111101010101010101010101011
Uomo Macchina
29
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Traduttori
• Due schemi– Compilatori– Interpreti
30
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Compilatori
• Traduzione avviene in due passi:– Compilazione vera e propria– Collegamento (link)
• Dopo la fase di link, il programma può essere eseguito direttamente
• Ogni fase produce un file corrispondente all’aggiunta di informazioni di vario tipo– Formato oggetto– Formato eseguibile
31
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Compilatori
sorgente
oggetto
eseguibile
Libreria
COMPILATORECOMPILATORE
LINKERLINKER
010110100101010011111111...
32
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Linker
• Risolve i riferimenti ad indirizzi di memoria– Indirizzi logici => indirizzi fisici
• Aggiunge al codice le librerie:– Funzioni pre-compilate e riutilizzabili (es. funzioni matematiche)
e distribuite con il compilatore– Codice scritto in precedenza– Due schemi:
• Librerie statiche• Librerie dinamiche
33
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Interpreti
• Il formato interno viene generato interpretando e traducendo il formato sorgente
• Il programma viene interpretato ed immediatamente eseguito istruzione per istruzione.
• Non viene generato né formato intermedio (oggetto) né eseguibile.
34
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Compilatori vs. interpreti
• Linguaggi compilati:– Vantaggi:
• Formato del programma eseguibile più efficiente → esecuzione più veloce• Migliore supporto per istruzioni “complesse” e programmi di grandi
dimensioni– Svantaggi:
• Rallentamento tempo di sviluppo dei programmi• Maggiori requisiti di spazio di memoria (il compilatore è un programma
sofisticato)
• Linguaggi interpretati:– Ideali in ambiente didattico per lo sviluppo rapido di programmi.
35
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Portabilità del software
• Possibilità per un programma di poter essere eseguito su piattaforme HW e SW diverse da quelle su cui è stato sviluppato
• Software portabile in genere rappresenta l’eccezione!– Es: Programmi su PC intel in ambiente windows
36
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Linguaggi di programmazione
• FORTRAN– FORmula TRANslation (1956)
• calcoli tecnico-scientifici (ambiente fisico/matematico)• svariate librerie • compilato
• COBOL– COmmerce and Business Oriented Language (1960)
• elaborazione di archivi, tabulati• applicazioni contabili
37
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Linguaggi di programmazione
• BASIC– Beginner’s All-purpose Symbolic Instruction Code (1962)
• relativamente semplice• capacità grafiche• interpretato• versioni “evolute” (VisualBasic)
• PASCAL– (1972)
• Linguaggio molto “formale” (progetto accademico)• Programmazione strutturata• Utile per la didattica• Compilato
38
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Linguaggi di programmazione
• C– Bell Labs (1972)
• Evoluzione più efficiente del PASCAL• Istruzioni per ottimizzazione del codice• efficiente• Molto usato nella programmazione di sistema• compilato
• C++– Bell Labs (‘80)
• Evoluzione del C ad oggetti• Diverso paradigma di programmazione• Include il C• compilato
39
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Linguaggi di programmazione
• Java– Sun MicroSystems (‘90)
• Evoluzione del C++• Schema misto compilato+interpretato• Portabilità universale tramite formato intermedio (bytecode)• Vasta gamma di librerie• Supporto alla programmazione web
• Perl– GNU project (‘90)
• interpretato• complesso, ma molto potente• molto utilizzato nella programmazione web• programmi=>script