• Non ci sono risultati.

Informatica!! appunti dalla lezione del 09/10/2012!

N/A
N/A
Protected

Academic year: 2022

Condividi "Informatica!! appunti dalla lezione del 09/10/2012!"

Copied!
19
0
0

Testo completo

(1)

Informatica !!

appunti dalla lezione


del 09/10/2012!

(2)

Il concetto di codifica!

•  La codifica è una corrispondenza biunivoca tra entità di qualunque genere e numeri interi!

•  Visto che il processore elabora numeri, tutto ciò che può essere descritto mediante tali

numeri può essere oggetto di elaborazione da parte del calcolatore:!

–  testi!

–  immagini!

–  suoni!

(3)

Codifica di testi!

•  Bisogna far corrispondere a ogni carattere un particolare numero!

•  Esistono molte convenzioni a riguardo, tra cui ad esempio la tabella ASCII (American Standard Code for Information

Interchange), oggi inglobata nella più nuova codifica UTF-8 (vedi slide

seguente)!

(4)

UTF-8!

Universal Character Set

Transformation Format – 8bit!

(5)

Codifica di immagini!

•  Nel far corrispondere a ogni immagine un numero, si può procedere in 2 modi diversi!

•  Approccio “raster”: si divide l’immagine in elementi di dimensioni molto ridotte, caratterizzati da un unico colore (pixel: picture element), a ogni colore si

corrispondere una codifica (ad es. RGB: terna di valori numeri che indicano quanto rosso, quanto verde,

quando blu ci sia nel colore codificato). L’immagine diventa una sequenza di numeri che descrive i colori di ciascun pixel che la compone!

•  Approccio “vettoriale”: l’immagine viene vista come un insieme di figure geometriche colorate. La codifica

avviene grazie alle formule matematiche che

descrivono le figure, e alla già menzionata codifica del colore.!

(6)

Un’immagine divisa in pixel!

(7)

Tabella RGB!

(8)

Grafica vettoriale: 


dai rudimenti ai risultati finali!

(9)

Codifica di suoni!

•  Sapendo che i suoni sono prodotti da onde che si muovono in un fluido (solitamente

aria), basta avere una descrizione

matematica di tali onde per avere una codifica!

•  L’ampiezza dell’onda corrisponde all’intensità del suono (suono forte/suono debole)!

•  La frequenza dell’onda all’altezza del suono (note alte/note basse)!

•  La forma dell’onda al timbro del suono (voce/

pianoforte/motore/etc…)!

(10)

frequenza!

ampiezza!

forma!

(11)

Campionamento!

•  Per avere una descrizione numerica dei valori

dell’onda dobbiamo campionarla, ossia registrare il

suo valore un certo numero di volte nell’unità di tempo!

•  Il numero di campioni nell’unità di tempo prende il nome di frequenza di campionamento!

•  Più è alta la frequenza di campionamento, migliore + la ricostruzione dell’onda originale, perché abbiamo a disposizione più campioni!

•  Avere più campioni naturalmente vuol dire che la

descrizione dell’onda risulta più lunga (ad es. un file MP3 di una canzone diventa più grande se la canzone è camionata a frequenza più elevata)!

(12)
(13)

La compilazione:


dalla scrittura dei programmi al

codice binario!

(14)

Scrivere programmi!

•  Scrivere programmi significa esprimere un algoritmo in un linguaggio comprensibile al calcolatore, ossia utilizzando un linguaggio di programmazione (ad es.: C++)!

•  Un programma in C++, prima di essere eseguito dal calcolatore, deve essere compilato, ossia elaborato da un

compilatore!

(15)

Il compilatore!

•  Il compilatore è anch’esso un programma in funzionamento nel calcolatore, ed ha lo scopo di tradurre programmi scritti in un linguaggio di programmazione in

eseguibili, ossia programmi scritti nel linguaggio macchina!

•  Le istruzioni scritte in linguaggio macchina possono essere lette, decodificate, ed

eseguite direttamente dal processore !

(16)

.cpp e .exe!

•  Il programma scritto in C++ prende si chiama anche codice sorgente, e il nome del file ha la tipica estesione .cpp (ad es.: prova.cpp)!

•  Il codice sorgente viene compilato e, se tutto va bene, viene creato il corrispondente

codice eseguibile, con estensione .exe (ad es.: prova.exe)!

•  Il codice eseguibile è pronto per essere

eseguito dal calcolatore!

(17)

codice  sorgente  

…  

int  x  =  0;  

cout  <<  x;  

…  

prova.cpp  

Compilatore  C++  

codice  eseguibile  

…  

000101010101011 101010101111010  

…  

prova.exe  

(18)

La compilazione!

•  Il processo di compilazione consiste di 3 tipi diversi di analisi!

•  L’analisi lessicale controlla che siano usate parole corrette del linguaggio di programmazione (ad es.:

cout , int , ctou )!

•  L’analisi sintattica controlla che le istruzioni siano costruite in maniera corretta (ad es. int x = 0; , 


= 0 int x; )!

•  L’analisi semantica analizza il significato delle

istruzioni (ad es.: “x = x+5;” vuol dire “prendi x e

aggiornalo sommando 5”)!

(19)

Limiti della compilazione!

•  Il programmatore deve fare attenzione!

•  Il successo delle suddette tre analisi non è garanzia del buon funzionamento del

programma!

•  Un programma scritto correttamente in 
 C++ può non rispettare le specifiche

perché il programmatore ha scritto un codice che differisce da quanto ha

intenzione di realizzare!

Riferimenti

Documenti correlati

Qualora il conducente sia persona diversa dal proprietario del veicolo (o altro obbligato in solido) e la dichiarazione non è stata firmata in originale ovvero non ha allegata la

Il Sindaco del Comune di Cernusco sul Naviglio (MI), con la richiesta in epigrafe, ha sottoposto all’attenzione della Sezione quesito in ordine all’applicabilità

Allianz Invest4Life è un contratto di assicurazione sulla vita con componente unit linked che, a fronte del versamento di un Premio unico, garantisce al Contraente, in caso di

Qualora l'Assicurato in seguito a Malattia improvvisa o ad Infortunio avvenuti nel corso del Viaggio, dovesse sostenere Spese mediche/farmaceutiche/ospedaliere

(Nel caso di: Rete sprovvista di Organo Comune; Rete dotata di Organo Comune privo di potere di rappresentanza; Rete dotata di Organo Comune privo dei requisiti di

franciacorta 2015 chardonnay metodo classico magnum trentasei 2014 lambrusco di sorbara metodo classico magnum sassaia 2018 garganega vino bianco macerato magnum. 100

In caso di Infortunio avvenuto o Malattia insorta dell'Assicurato, nel periodo di Durata dell’Assicurazione, che comportino per l’Assicurato un’Invalidità riduttiva in modo

L’inadempimento anche di uno solo di tali obblighi può comportare la perdita totale o parziale del diritto all’Indennizzo ai sensi dell’art. Le spese sostenute per adempiere