Introduzione all’ Informatica€¦ · 1 Introduzione all’ Informatica Carlo Strapparava...
Transcript of Introduzione all’ Informatica€¦ · 1 Introduzione all’ Informatica Carlo Strapparava...
1
Introduzione all’ Informatica
Carlo StrapparavaFBK-Irst Istituto per la ricerca scientifica e tecnologicaI-38050 Povo, Trento, [email protected]
Informatica
Informazione automatica Studia la distribuzione, la trasmissione e
soprattutto la trasformazionedell’informazione da parte degli elaboratorielettronici
Compito degli informatici è quello di studiarequeste cose in maniera che venganoelaborate dalle macchine
2
Informatica
Tre grandi aree:
1. Software2. Hardware3. Informatica teorica
Area del Hardware
I principi fisici della trasmissione dei segnalifino alla progettazione dei computers
Componenti elettronici Transistor Memorie Circuiti integrati …
3
Hardware
Area del Software
Programmazione Linguaggi di programmazione Sistemi operativi Database management Grafica Interfacce Intelligenza artificiale …
4
Informatica teorica E’ una branca della matematica Analisi degli algoritmi Formalismi per la computabilità
Funzioni ricorsive λ-calcolo
Teoria della computazione Problemi decidibili, indecidibili
Teoria degli automi Analisi numerica …
Introduzione alla programmazione
Il termine programma viene usatoquotidianamente in campi diversi:
“il programma di governo” “la programmazione economica” “il programma di uno spettacolo” …
5
Programma - definizioni (in generale)
piano d’esecuzione di una serie di azioni
(in informatica - genericamente) una serie di istruzioni per un elaboratore volte a
calcolare la soluzione di un determinato problema
Programmazione comegenerica attività intellettuale
Elaboratore elettronico
Un elaboratore elettronico può essere vistocome
Due canali da dove riceve informazioni, uncanale che fornisce informazioni
AutomamemoriaDati
Programma
Risultati
6
Elaboratore elettronico
Alla definizione data sopra risponde anche:
Qual è la differenza tra automa e lavatrice? Il numero di programmi nella lavatrice è limitato, è
fissato a priori nella macchina
Panni sporchiPanni puliti
Programma
Elaboratore elettronico
L’automa è capace di elaborare qualsiasiprogramma
Il programma non è fissato a priori ma èfornito dal programmatore
A priori nell’automa sono solo fissate alcunecapacità elementari (per es. deve essercidella memoria)
7
Come deve essere scritto un programma?
Un programma è la formulazione, secondo unben definito sistema di regole, di un algoritmo
Algoritmo => metodo di soluzione per unaclasse di problemi
La nozione di algoritmo a vari livelli diastrazione permea tutta l’informatica
al-Khuwarizmi ~ 800 D.C.
Es. Algoritmo: somma di due interi ditre cifre
1° passo: mettere in colonna gli addendi 2° passo: assumere il riporto della colonna di
destra uguale a 0 3° passo: per ogni colonna, procedendo da
destra a sinistra, finché non sono esaurite lecifre
8
Es. Algoritmo: somma di due interi ditre cifre
1° passo: mettere incolonna gli addendi
144 + 872 = 1016
144 + 872 =———
Somma di due interi di tre cifre (2)
2° passo: assumere ilriporto della colonna didestra uguale a 0 0
144 +872 =———
9
Somma di due interi di tre cifre (3)
3° passo: per ogni colonna,procedendo da destra a sinistra,finché non sono esaurite le cifre, fare: 3.1 Sommare le cifre della colonna 3.2 se il risultato è < 10 allora
scrivere il risultato del passo 3.1nella colonna e mettere a 0 ilriporto altrimenti
altrimenti togliere 10 dal riportodel passo 3.1 e mettere a 1 ilriporto sulla colonna successiva
4° abbassa l’ultimo riporto
1100 144 + 872 =———1016
Quando si fornisce un algoritmo dobbiamo domandarci:
Qual è il corredo di operazioni elementari ? Le operazioni che vogliamo fare eseguire sono algoritmizzabili ?
(es. con riga e compasso non possiamo trisecare un angolo)
0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9 0
2 2 3 4 5 6 7 8 9 0 1
3 3 4 5 6 7 8 9 0 1 2
4 4 5 6 7 8 9 0 1 2 3
5 5 6 7 8 9 0 1 2 3 4
6 6 7 8 9 0 1 2 3 4 5
7 7 8 9 0 1 2 3 4 5 6
8 8 9 0 1 2 3 4 5 6 7
9 9 0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 0 0 1 1
3 0 0 0 0 0 0 0 1 1 1
4 0 0 0 0 0 0 1 1 1 1
5 0 0 0 0 0 1 1 1 1 1
6 0 0 0 0 1 1 1 1 1 1
7 0 0 0 1 1 1 1 1 1 1
8 0 0 1 1 1 1 1 1 1 1
9 0 1 1 1 1 1 1 1 1 1
Tabella cifre Tabella riporti
10
Morale…
Posso ridurre l’operazione di somma a unasemplice trasformazione di simboli
Qualunque algoritmo opera su simboli
Es. invece di 144 avrei potuto scrivere CXLIV
CXLIV + MXXIV =———??????
Morale…
L’algoritmo di somma appena visto opera su numerinaturali in rappresentazione decimale
Considerare criticamente l’abitudine allarappresentazione in base 10
144 in ottale è 220, in esadecimale 90 Siamo talmente abituati che tendiamo a confondere il
numero con la sua rappresentazione
Rappresentazioni analogiche e simboliche In questo corso siamo interessati a quelle simboliche
11
Algoritmi
Fornire una sequenza di passi Fornire un corredo di operazioni elementari Ogni passo deve essere effettivo Ogni algoritmo opera su simboli Non ambiguità - un algoritmo deve essere
compiuto in se stesso
Programmi
Linguaggi artificiali di programmazione
Def. di Programma Un programma è la codifica di un algoritmo in un
determinato linguaggio di programmazione
12
Punti di vista
Punti di vista da cui dobbiamo esaminare unlinguaggio di programmazione Sintattico
Semantico
Estetico
Pragmatico
Enfatizzare la prg. come modo di esprimere idee,piuttosto che solo come un modo per far compierecose ad un computers
Programmi … agli albori