Laboratorio di Informatica Introduzione Informatica: definizione

Laboratorio di Informatica
Introduzione
Laboratorio di Informatica
AA 2009/2010
1
Informatica: definizione
• Informatica: disciplina che cerca di dare
un fondamento scientifico ad argomenti
come la progettazione di computer, la
programmazione, l’elaborazione delle
informazioni, le soluzioni algoritmiche dei
problemi, il processo algoritmico stesso.
Laboratorio di Informatica
AA 2009/2010
2
1
Concetti base
• Algoritmo (informalmente): sequenza di passi
che definiscono il modo in cui viene eseguita
un’operazione (es. ricetta).
• Primi algoritmi Æ ambito matematico, es.
algoritmo della divisione (serie di operazioni ben
codificate che permettono di calcolare il risultato
della divisione ed il resto).
• Spesso l’esecuzione di un algoritmo implica il
ripetersi di una serie di operazioni elementari.
Laboratorio di Informatica
AA 2009/2010
3
Concetti base
• Un algoritmo necessita di un esecutore
(es. cuoco per algoritmo ricetta).
• L’algoritmo deve essere rappresentato in
forma tale da garantire che l’esecutore
comprenda le istruzioni dell’algoritmo.
• Ogni rappresentazione di un algoritmo è
detta programma.
Laboratorio di Informatica
AA 2009/2010
4
2
Algoritmo di Euclide
• Dati due numeri interi e positivi m e n,
calcola il più grande intero che li divide
1. dividere m per n, e sia r il resto della divisione
(con 0 ≤ r < n)
2. se r = 0 allora la risposta è n e STOP
3. porre m ← n e n ← r e ripetere il passo 1
Laboratorio di Informatica
AA 2009/2010
5
Programma_euclide
(due diverse rappresentazioni dello stesso algoritmo)
#include <stdio.h>
void main( );
int m = 0, n = 0, a, b, r, q;
{
printf(“dammi il dividendo\n”);
if scanf(“%d”, &m) == 0 {
printf(“errore, fine programma\n”);
exit(-1);
}
printf(“dammi il divisore\n”);
if scanf(“%d”, &n) == 0 {
printf(“errore, fine programma\n”);
exit(-1);
}
a = m;
b = n;
do
q = m/n;
r = m - q*n;
m = n;
n = r;
while r <> 0;
printf(“il MCD tra %d e %d e` %d\n”,
a,b,n);
}
Laboratorio di Informatica
AA 2009/2010
6
3
Il computer è…
• Il computer è un esecutore di algoritmi!
Laboratorio di Informatica
AA 2009/2010
7
Algoritmo vs procedura di
calcolo
• Gli algoritmi definiscono un insieme finito di
istruzioni che danno luogo a una sequenza
finita di operazioni
• Il processo di ripetizione di cicli deve terminare
– nell’algoritmo di Euclide, la sequenza dei resti r
• sequenza di numeri interi positivi decrescenti
• Se il requisito non e` soddisfatto, si parla di
procedure di calcolo
Laboratorio di Informatica
AA 2009/2010
8
4
Concetti base
• L’esecutore deve essere in grado di capire
l’algoritmo Æ necessaria un’opportuna
codifica dell’algoritmo
• Es. ricetta per cuoco, linguaggio macchina
per un elaboratore.
• Programmazione = sviluppo di un
programma, codifica in un opportuno
formato, inserimento nella macchina.
Laboratorio di Informatica
AA 2009/2010
9
Concetti di base
• Hardware
• Software
– Esecutore (cuoco,
circuiti elettronici,
…)
– Programmi (insiemi
di algoritmi)
Programmazione
Laboratorio di Informatica
AA 2009/2010
10
5
Cosa studia l’informatica?
• L’informatica studia:
– i calcolatori, nati in risposta all’esigenza di
eseguire “meccanicamente” operazioni
ripetitive inizialmente il calcolo matematico
– gli algoritmi, nati in risposta all’esigenza di
definire procedure “meccaniche” per la
soluzione di problemi
– le applicazioni, in risposta all’esigenza di
sviluppare sistemi di supporto in varie aree
Laboratorio di Informatica
AA 2009/2010
11
Cosa studia l’informatica?
… tutto quello che sta tra (estremi compresi)…
…l’hardware …
(equipaggiamento fisico
del computer)
… e il software.
(equipaggiamento logico
del computer)
Laboratorio di Informatica
AA 2009/2010
12
6
Distinzione Hw/Sw
HARDWARE
equipaggiamento fisico del computer, costituito
da componenti meccanici, elettrici, ed
elettronici che fanno svolgere al calcolatore un
insieme di funzioni generiche
(si puo` prendere a calci!)
SOFTWARE
equipaggiamento logico del computer,
costituito da programmi che utilizzano i
componenti dell’hardware integrandoli al fine di
svolgere compiti specifici
(si puo` solo imprecargli contro!)
Laboratorio di Informatica
AA 2009/2010
13
Il calcolatore
• Composto da
– processore, o CPU (Central Processing Unit)
o microprocessore
– memoria centrale, o RAM (Random Access
Memory)
– periferiche
Laboratorio di Informatica
AA 2009/2010
14
7
Il calcolatore
Periferiche
Monitor
Tastiera Mouse
Memorie
di massa
Memoria CPU
centrale
BUS
Input
Output
Input/Output (I/O)
Laboratorio di Informatica
AA 2009/2010
15
Il calcolatore
• Il processore, o CPU, esegue i programmi
• La memoria contiene dati e programmi Il
calcolatore svolge funzioni diverse in base al
programma eseguito
• Il calcolatore e` una macchina di Von
Neumann
Laboratorio di Informatica
AA 2009/2010
16
8
La macchina di von Neumann
memoria
programma gestionale
programma editor
processore
periferiche
compilatore C
dati sugli stipendi
libro di testo
programma sorgente in C
Modello di macchina a programma memorizzato
- lo stesso dagli anni 1940 ad oggi
Laboratorio di Informatica
AA 2009/2010
17
Il software
• Equipaggiamento logico del calcolatore
• Costituito dai programmi che fanno
svolgere al calcolatore un insieme di
funzioni
• Si distingue quello di sistema e quello
applicativo
Laboratorio di Informatica
AA 2009/2010
18
9
Il software
di sistema
• per la gestione delle
risorse del sistema
• per il supporto nella
stesura di programmi
applicativi
• per la comunicazione
con l’utente
applicativo
• programmi destinati
all’utente finale
(videoscrittura, fogli
elettronici, posta
elettronica, browser,
ecc.)
Laboratorio di Informatica
AA 2009/2010
19
Il software - Esempi
di sistema
• sistema operativo
• compilatori
• driver di I/O
• interfaccia utente
applicativo
• videoscrittura
• gestione biblioteca
• controllo impianto
industriale
• sequenziazione
genoma
• progettazione (CAD)
• previsioni finanziarie
Laboratorio di Informatica
AA 2009/2010
20
10
Il software - Esempi
compilatori
Software
di sistema
S.O.
utilità
HW
CAD
biblioteca
videoscrittura
Software
applicativo
Laboratorio di Informatica
AA 2009/2010
21
Quindi l’informatica per…
di
i
l
g
Fo olo…
lc
ca
e
Pr
rd r…
o
W so
es
c
pro
Laboratorio di Informatica
AA 2009/2010
nta
e
s
i…
n
o
zi
on
n
Ma lo…
so
22
11
… Ma anche per…
- … Elaborazione di immagini radiografiche
dentali…
Laboratorio di Informatica
AA 2009/2010
23
… E per…
• … Simulazione di interventi chirurgici in
oftalmologia…
Laboratorio di Informatica
AA 2009/2010
24
12
… E per…
• Analisi automatica del segnale ECG… etc.
Laboratorio di Informatica
AA 2009/2010
25
13