Estratto del documento

INFO B. exe

G. M .

INFORMATICA

Scienza dell’informazione. Capire i dati, quali sono importanti e cosa farci.

÷

L’informazione può essere concreta o astratta.

Cosa fare con informazione?

1) Rappresentarla - sotto forma di immagine, suono, parola, ecc.

2) Elaborarla - trovare modo per cui l’informazione diventi di valore per noi, tramite delle

operazioni capire se l’informazione ha valore per noi (tipo diagnosi da radiografia). ALGORITMI

ALGORITMO:

Qualcosa che trasforma ed elabora le informazioni.

Un algoritmo è eseguibile anche da un umano, ma usiamo il calcolatore perché è in grado di

considerare tanti dati insieme e quindi svolgere velocemente l’algoritmo.

DEFINIZIONE

Un algoritmo è una sequenza di operazioni, definite con precisione (non possono essere vaghe),

-

| -

che portano alla realizzazione di un compito preciso. (es. algoritmo per fare la pasta, non puoi dire

solo “fai la pasta”, devi dare tutte le istruzioni precise in sequenza).

-

Le operazioni devono essere:

- COMPRENSIBILI —> No ambiguità

← -

- ESEGUIBILI da strumento automatico (esecutore)

- ←

- Portare a realizzazione del compito in un TEMPO DEFINITO (numero finito di passi, ognuno con

tempo definito)

Inizialmente useremo un linguaggio naturale, in italiano, ma comunque sarà caratterizzato da:

- SEQUENZIALITÀ delle istruzioni (istruzioni scritte eseguite dall’alto in basso) [ordine temporale]

=

- COSTRUTTO CONDIZIONALE (istruzioni eseguite a volte alcune, a volte altre) [se...allora...sennò]

- COSTRUTTO ITERATIVO (ripetizione di più volte della stessa operazione) [fai...finché]

Useremo “foglietti”, dove scriveremo i nostri valori.

Sempre, quando risolveremo un problema, passeremo dal linguaggio naturale, per capire e

strutturare il problema, poi scriveremo in codice. )

RAPPRESENTAZIONE A BLOCCHI Èe

Ogni blocco è un istruzione, blocchi

eseguiti dall’alto in basso, quindi devono +

avere coerenza e ordine temporale COSTRUITO

! ↳

F è

iter

cono f-

.

← t

t |

L puoi essere ESEGUE €

ANCHE solo KCICLO

↳ DEL

RAMO '

FINCHE

venatoria " Diventa

-

CONTINUA falso

Oltre

& sto

Esempio del pallottoliere: non posso dire sposto tutte le palline, devo dare precise istruzioni

ATOMICHE, ovvero sposto una pallina alla volta, fino a quelle che mi servono (in caso vedi slide).

In un algoritmo devo controllare:

CORRETTEZZA: arriva alla soluzione del problema per cui è progettato

EFFICIENZA: deve usare un numero minimale o ragionevole di risorse, ovvero il minor numero

=

possibile di operazioni e utilizzare il minor spazio possibile del calcolatore, risparmiare spazio e

tempo.

ALGORITMI TIPO:

- Per SCAMBIARE il contenuto di due foglietti devo servirmi di un terzo foglietto.

- Per trovare il numero MASSIMO (o minimo), prendo il primo a prescindere e lo scambio con

eventuali altri più grandi, confrontando il numero che ho con tutti quelli che restano (importante: al

primo istante prendo il primo valore).

- Per verificare se una condizione è VERA PER TUTTI gli elementi di una entità (insieme): appena

ne trovo uno falsa mi interrompo e ho verificato che non è vera per tutti.

- Per CERCARE un elemento: utilizzando un archivio ordinato per autore, cerco libro in biblioteca.

Ricerca scheda del libro, segnare su un foglio numero scaffare e posizione libro, raggiungere scafale.

Esamino una scheda e vedo se è quella che contiene il libro giusto, se non è quella vado avanti e

rifaccio. Ma non è efficiente, le schede sono ordinate, quindi utilizzo N/2 (dove N è il numero delle

schede), e verifico se è quella, sennò confronto la lettera iniziale di N/2 con la mia, e vedo se

prendere in considerazione la prima o la seconda metà dell’archivio, e di quella metà fare idem.

È un problema ripetuto su delle istanze più piccole e semplici. È un algoritmo RICORSIVO, ripete le

stesse operazioni ma su problemi sempre più semplici. Quando (se) N=0 mi fermo, posso non aver

trovato il libro che quindi non c’è.

Ma noi vogliamo usare il calcolatore, quindi da algoritmo dobbiamo passare al codice.

calcolatore

Il è:

Rapido:

- grandi quantità di informazioni

Preciso:

- non commette mai errori

Non spirito critico

- ha

PROGRAMMI: comprensibili da un calcolatore.

algoritmi codificati in linguaggi

Lingua molto formale, errori di ortografia/sintassi/grammatica possono compromettere il tutto.

Compito dell’informatico (strettamente in questo ordine):

Ideare

- l’algoritmo: conoscere soluzione del problema con determinati passi (parte più difficile)

Codificare

- l’algoritmo in un programma: tramite il linguaggio di programmazione (traduzione)

Passaggi:

Capire

- e definire correttamente il problema.

- Ricavare l’algoritmo: difficile, richiede creatività e rigore.

codice:

- Scrivere il è la parte più semplice ma deve essere corretto ed efficiente. Questi linguaggi

via di mezzo umano calcolatore.

sono una tra linguaggio e linguaggio del

Compilazione:

- traduzione da linguaggio di programmazione a linguaggio macchina, eseguibile

dal calcolatore (fa lui questa operazione).

RAPPRESENTAZIONE DELL’INFORMAZIONE

0 1, stati di tensione,

I calcolatore capiscono solo e ovvero bassa (0V) e alta (5V).

Non ci sono valori intermedi, es (2.5V) perché potrebbe stararsi nel tempo.

BIT; 1 BYTE 2^8 (256) numeri diversi).

Ogni 0 o 1 è un 8 bit = (può rappresentare

base 10,

Noi usiamo solitamente la decimale.

posizionale:

La nostra notazione è la posizione della cifra dà più o meno valore, significati diversi.

Abbiamo a disposizione 10 cifre, da 0 a 9. I numeri sono sequenze ordinate di cifre da 0 a 9.

m cifre 10^m numeri differenti.

Con in base 10 in un numero posso scrivere

base 2 con m cifre, 2^m NUMERI DIVERSI.

Se abbiamo posso fare

Conversione: " 21

23

10010 22 2° 8

1

1 2 1-

+

0

+ 0 0

+ +

-

= . =

. .

1 Byte = 8 bit = 2^3 bit

1 KiloByte (kB) = 10^3 Byte (in realtà 1024 Byte, ovvero 2^10 Byte, 2^13 bit)

1 MegaByte = 10^6 Byte (1024 KiloByte, ovvero 2^20 Byte, 2^23 bit)

1 GigaByte = 2^33 bit

1 TeraByte = 2^43 bit

LETTERE: ASCII a 8 bit.

codifica Ogni carattere alfanumerico specifico codice binario di 8 bit.

l’ASCII base non ha ad esempio i caratteri accentati, ha solo i caratteri base (byte che iniziano con lo

0), per gli altri caratteri si usano quelli che iniziano con 1 e ogni paese sceglie cosa farci, in base ai

caratteri di cui necessitano.

IMMAGINI: ogni pixel un numero.

è associato a

- ALTO —> BIANCO ; basso —> scuro (es. nero = 00000000).

Ogni pixel: 1 Byte.

(WB) 8 bit = Immagini pesanti perché ogni pixel pesa 1 Byte.

Tre canali

(COLORI) (RGB, rosso - verde - blu): ogni canale 1 Byte (livello di saturazione del canale),

Ogni pixel 3 Byte.

pesa Più è alto il numero, più è saturato il colore.

256^3 colori diversi, ovvero 2^24.

Quindi in RGB ci sono ovvero (2^8)^3,

pixel per pixel

Non per forza la codifica è scritta (bitmap).

codifiche riducono le dimensioni,

Spesso conviene che in due modi:

lossless: senza perdere informazioni.

- codifiche permettono di comprimere l’immagine

lossy: perdita di qualità.

- codifiche comprimono l’immagine ma con

Ad esempio si possono esprimere funzioni per cui una certa zona è tutta di un certo colore (tipo jpg).

-

SISTEMI INFORMATICI

Esecutore di un programma (pc, smartphone, sensori, server, ecc)

Sono costituiti da elementi complessi che comunicano tra loro, divisi in:

Hardware:

- componenti fisici del sistema.

Software:

- componenti non tangibili che vanno a utilizzare l’hardware (programmi).

MACCHINA (O ARCHITETTURA) DI VON NEUMANN

quattro elementi

Modello composto da funzionali:

Unità di elaborazione (CPU):

- interpreta/esegue programmi, coordina la macchina, fa operazioni.

Memoria centrale (MM, Main Memory):

- contiene dati e istruzioni (RAM), dati salvati

volatile,

temporaneamente. È una memoria informazioni restano solo su necessità.

Interfacce delle periferiche:

- scambio di informazioni con mondo esterno (stampante, HDD, ...)

Bus di sistema:

- collegamenti tra gli altri elementi funzionali.

MEMORIA CENTRALE

Contiene i programmi, sequenze di istruzioni, relativi dati.

sotto forma di in esecuzione e i

sequenza di celle:

Schema:

Ogni cella

- di memoria h bit detti “parola”, “word”. +

numero massimo di bit

h è il per ogni informazione.

cella indirizzo: 2^k spazi.

- Ogni ha un servono altri

(k=numero di celle, di bit) per indicare gli indirizzi

Se abbiamo 1024 celle abbiamo bisogno 1024 indirizzi diversi.

dati istruzioni.

Nella cella: ed

diversi tipi

Ci sono di memoria:

RAM volatile.

(random acces memory), è

ROM permanente,

(read only memory, c’è solo in certi casi) non è volatile, è non si può cambiare.

EPROM intermedia, riprogrammabili.

è rimangono le informazioni ma sono

CPU

Sottoparti:

CU (unità di controllo): preleva/decodifica le istruzioni da MM e invia segnali per eseguire istruzioni.

Clock di sistema: sincronizza operazioni della CPU, determina l’ordine e il “quando”.

ALU (unità aritmetico logica): esegue le operazioni logiche e aritmetiche.

REGISTRI: memorie molto molto veloci che registrano informazioni utili alle operazioni:

dati

- Registro (DR), lungo h bit (come word) memorizza il dato che arriva da MM.

indirizzi

- Registro (AR) lungo k bit, memorizza indirizzo che arriva da MM.

Istruzione Corrente

- Registro (CIR): lungo h bit, registra l’istruzione in esecuzione.

Contatore di Programma

- Registro (PC): dice dove siamo arrivati nel programma.

Interruzioni

- Registro (INTR): indica stato delle periferiche, per rilevare i segnali.

Registri intermedi: per capire cosa succede nella ALU

di stato:

- Registri verifica se operazione è andata a buon fine o meno.

operando:

- Registro dove vengono inseriti i dati per eseguire certa operazione (es. somma).

di lavoro:

- Registri contiene altre informazioni utilizzate di frequente.

BUS DI SISTEMA:

connessioni tra due entità funzionali.

Insieme di che trasferiscono informazioni

OGNI informazione passa attraverso bus di sistema.

Ci sono solo due tipi di connessione:

CPU (leader) <-> MM (follower)

- CPU (leader) <-> Interfaccia periferica (follower)

- leader l’unica che può dare istruzioni

CPU è perché tutto passa da lei ed è

Non esiste connessione diretta tra MM e periferica.

Tre tipi di linee per scambiare tre tipi di informazioni differenti:

Bus dati

- Bus indirizzi

- Bus controlli

- (si occupa di controllare gli stati delle operazioni, se andate a buon fine).

LETTURA E SCRITTURA SU MEMORIA

Lettura:

Passo indirizzo bus indirizzi.

1) da cui voglio leggere tramite

CPU dice alla MM di leggere bus controlli.

2) La l’informazione in quell’indirizzo con

MM passa l’informazione bus dati.

3) riceve l’istruzione e sul

MM controlli).

4) dice che ha inviato l’informazione (bus

Scrittura: dove indirizzo.

1) Passo il vogliamo scriverla, quindi inviamo l’informazione

dato dati).

2) Passo il che voglio scrivere (bus

scrivere bus controlli.

3) Dico di con

MM scrive bus controlli.

4) e dà l’ok su

INTERFACCE:

Collegano calcolatore periferiche estrarne.

il alle

registri per scambio dati

Ogni interfaccia ha con periferica:

Registro dati

- della periferica (PDR): per scambio dati con periferica. I

Registro comandi

- della periferica (PCR): contiene comandi dati dalla periferica.

Registro di stato

- (PCS): contiene informazioni sullo stato della periferica. VEDI

- SCHEMI

VARI

SLIDE

SULLE .

PROGRAMMI NELLA MACCHINA DI VON NEUMANN /

Istruzioni: binario parole nella MM.

codificate in e sono salvate in

Divise in:

codice operativo (4 bit): tipo

- indica il di istruzione, cosa fare

due zeri (00)

- Indirizzo operando (10 bit): dove

- indica il eseguire l’operazione.

Codici operativi (istruzioni eseguibili da CPU):

lettura

- da periferica;

scrittura

- su periferica;

load: caricare dato

- da MM a Registro CPU;

store: salvare dato

- su MM da Registro CPU;

operazioni aritmetiche;

- istruzioni di salto:

- per cambiare flusso di esecuzione del programma.

TRE FASI PER ESEGUIRE OPERAZIONE

Fetch:

1) Acquisizione dell’istruzione dalla MM;

Trasferimento da PC a AR

a. dell’indirizzo della cella contenente l’istruzione da eseguire.

Lettura istruzione dalla MM

b. nella cella all’indirizzo in AR.

Spostamento istruzione da DR a CIR

c. poiché è l’istruzione in esecuzione.

Incremento PC.

d.

Decodifica: dal CIR codice operativo.

2. legge il

Esecuzione: specifica.

3. dipende dall’istruzione

Ricorda: due istruzioni carica possono avere codici diversi a seconda del luogo di riferimento.

Es.

- 0000 —> carica nel registro A

- 0001 —> carica nel registro Bn

LINGUAGGI DI PROGRAMMAZIONE

calcolatore istruzioni.

permettono ad un di eseguire le

BASSO livello: linguaggio macchina.

- a vicino al

ALTO livello: lingua comune

- ad vicino alla parlata.

~ Linguaggio macchina: poche difficile

istruzioni, codificare algoritmi e interpretare codice

È un linguaggio:

Preciso.

- controllo completo

- Dotato di di tutte le risorse.

~ Alto livello:

preciso, sintetico

- Rimane ma più (tipo: fai la somma, senza registri ecc.).

simbolici

- Riferimenti (non dico ogni volta dove certo dato, ma solo come si chiama, es. ‘a’).

linguaggio naturale,

- Istruzioni vicine a più comprensibile.

Traduzione: compilatore: alto livello macchina.

eseguita da programma detto linguaggio —>

LINGUAGGIO C (1972)

sistemi operativi,

Pensato per scrivere poi adottato anche

programmi “generici”.

per

interfaccia più semplice della

Si all’hardware in un modo ancora

macchina di Von Neumann solo due periferiche,

(sempre e t

un solo input e un solo output)

VARIABILI cella di

Utilizziamo (equivalenti dei fogliettini visti in precedenza): corrispondono a una

memoria nella macchina C.

nome:

Ogni variabile —> (lettere, cifre, _ : carattere iniziale esclusivamente lettera; no spazi).

CASE SENSITIVE, mai

Anteprima
Vedrai una selezione di 10 pagine su 45
Appunti Informatica B Pag. 1 Appunti Informatica B Pag. 2
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Informatica B Pag. 6
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Informatica B Pag. 11
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Informatica B Pag. 16
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Informatica B Pag. 21
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Informatica B Pag. 26
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Informatica B Pag. 31
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Informatica B Pag. 36
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti Informatica B Pag. 41
1 su 45
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cam.mel di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Trovò Francesco.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community