Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Informatica di base: Introduzione all'informazione, codifica binaria e digitalizzazione - , Appunti di Elementi di Informatica

appunti schematici e semplici sull'informatica di base, con questi appunti ho preso 30 e lode.

Tipologia: Appunti

2020/2021

Caricato il 28/06/2021

carlo-pedrelli
carlo-pedrelli 🇮🇹

4 documenti

1 / 27

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
mercoledì 14 aprile 2021
Informatica di base
Lezione n.1 !
-L’informazione : è un fatto fornito o insegnato da qualcosa o qualcuno!
-Esistono tre tipi di informazione :!
-Informazione sintattica: è la lista delle lettere e dei simboli di un’informazione !
-Informazione semantica: è il significato che l’ordine di lettere acquisisce !
-Informazione pragmatica : è il significato delle parole pero contestualizzato !
-Il metodo di trascrizione dell’informazione in ambito informatico: !
-È la codifica binaria ovvero un codice che ha bisogno di 2 simboli es. 0 e 1 !
-Nella codifica binaria l’unita elementare è il bit che riesce a rappresentare o uno o
l’altro dei sue simboli !
-Con la codifica binaria si possono rappresentare numeri, lettere, immagini ec. !
-La codifica esadecimale è molto comune e in questa codifica si prende un
numero in base dieci e lo si convertisce in base 2 !
-La somma dei numeri binari dove il riporto si aggiunge quando si raggiunge in 2
perche i valori vanno da 0 a 2 !
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Anteprima parziale del testo

Scarica Informatica di base: Introduzione all'informazione, codifica binaria e digitalizzazione - e più Appunti in PDF di Elementi di Informatica solo su Docsity!

Informatica di base

Lezione n.

- L’informazione : è un fatto fornito o insegnato da qualcosa o qualcuno

- Esistono tre tipi di informazione :

- Informazione sintattica : è la lista delle lettere e dei simboli di un’informazione

- Informazione semantica : è il significato che l’ordine di lettere acquisisce

- Informazione pragmatica : è il significato delle parole pero contestualizzato

- Il metodo di trascrizione dell’informazione in ambito informatico:

- È la codifica binaria ovvero un codice che ha bisogno di 2 simboli es. 0 e 1

- Nella codifica binaria l’unita elementare è il bit che riesce a rappresentare o uno o

l’altro dei sue simboli

- Con la codifica binaria si possono rappresentare numeri, lettere, immagini ec.

- La codifica esadecimale è molto comune e in questa codifica si prende un

numero in base dieci e lo si convertisce in base 2

- La somma dei numeri binari dove il riporto si aggiunge quando si raggiunge in 2

perche i valori vanno da 0 a 2

Lezione n.

  • (^) In informatica c’è stato bisogno di rappresentare altri tipi di numeri non solo quelli interi e positivi ma anche quelli decimali e negativi perche sono comuni nella realtà
  • (^) I bit assegnati alla rappresentazione del numero sono divisi in:
  • (^) Segna massa e esponente
  • (^) Ci sono due tipi di rappresentazione in base alla precisione della parte decimale che si vuole ottenere
  • (^) Numeri a precisione singola (32 bit)
  • (^) 1 bit per segno
  • (^) 8 bit
  • (^) Il numero di cifre cambia a seconda della precisione che si desidera avere nella rappresentazione
  • (^) Numeri a precisione singola 32 bit , 1 bit segno, 8 bit x esponente, 23 bit x man
  • (^) Numeri a precisone doppia 64 bit , 1 bit x segno, 11 est , 52 mantissa
  • (^) È una convenzione informatici :
  • (^) Limiti del calcolo numerico su dispositivi
  • (^) Errori di over flow : genera problemi all’interno del sistema informatico, le cifre disponibili sono meno di quelle necessarie per rappresentare il numero
  • (^) Errori di cancellazione : opposto dell’over flow in questo caso si perdono le informazioni riguardo le cifre meno significative - (^) Errori di troncamento e moltiplicazione : stessa natura della cancellazione numerica , moltiplicando numeri maggiori di 1 con parte decimale le cifre aumentano ma lo spazio rimane lo stesso
  • (^) La differenza tra codifica binaria e rappresentazione in base 2 è che la codifica binaria può rappresentare non solo numeri
  • (^) Le codifiche hanno bisogno di convenzioni
  • (^) Ce una convinzione che è nata che è molto conosciuta che è l’ASCII
  • (^) Questa codifica richiede l’utilizzo di 8 cifre binarie e ogni combinazione associa un simbolo
  • (^) Le codifiche attuali :
  • (^) UTF : ora abbiamo la versione 13.
  • (^) Ogni lettera di una parola ha 32 cifre a cui corrisponde con UTF 32
  • (^) Il bit è l’unita elementare e i requisiti
  • (^) La quantizzazione è quando prendi i valori da un intervallo continuo e gli attribuisce all’intervallo dalla scala e li attribuisci a numeri Lezione n. - (^) L’unita di misura della frequenza è l’hertz
  • (^) 1 hertz: 1 ciclo per secondo - (^) Una tv con una frequenza di 60 hertz è in grado di aggiornare l’immagine a schermo 60 volte al secondo - (^) Quindi, si può dire che più è alta la misura degli Hz, e più è precisa la digitalizzazione di un “fenomeno”
  • (^) La compressione dei dati : - (^) Abbiamo visto che più spazio , più cifre permettiamo di riservare la codifica di una informazione più aumenta la precisione
  • (^) I continui sviluppi tecnologici riescono a digitalizzare quantità di informazione sempre maggiore
  • (^) È vero che lo sviluppo tecnologico aiuta , i contenuti richiedono di sostenere più informazione - (^) I metodi di compressione si dividono in due categorie :
  • (^) Compressione Lossless : l’informazione viene interamente conservata - (^) Comprensione Lossy : l’informazione viene compressa , la compressione comporta una perdita d’informazione
  • (^) Le compressione Lossy solitamente sono più efficienti perché riescono a risparmiare di più perché ci permettiamo di scartare dei dati
  • (^) Le comprensioni di tipo lossless hanno dei limit i , non è permesso adottare alcun procedimento sui dati e l’informazione che ne causi la perdita - (^) Tecniche basata a dizionario , esempio di compressione Lossless
  • (^) Al posto delle parole che si ripetono più spesso , in questo caso fast and furioso si sostituiscono con un numero - (^) Assegniamo i codici a ogni parola e assegniamo i codici più brevi alle parole più frequenti (slide)
  • (^) Il problema che si riscontrano sono : - (^) Non assegnare lo stesso simbolo per due informazione diverse - (^) Evitare di sovrapporre i prefissi
  • (^) Soluzione a questo problema è la codifica di Huffman che crea un associazione di codici a una sequenza di caratteri tali per cui ogni codice assegnato non è mai il prefisso di un altro codice - (^) La tecnica a dizionario possiamo immaginare che ci sia scritta la parola seguita dal codice associato
  • (^) Quindi si va a riservare delle cifre che uno per ogni parola che codifichiamo usano uno spazio che è uguale della parola stessa una volta
  • (^) Se noi riscriviamo questa lista e sostituiamo la parola fast poi comunque devo scrivere la parola fast è il codice con cui l’abbiamo sostituita - (^) Bisogna tenere a mente che quando si guadagna spazio si perde in tempo che serve per la decompressione
  • (^) Non è quindi sempre desiderabile comprimere dati Lezione n. - (^) Un caso molto comune di approccio lossy è il metodo di compressione immagini JPEG
  • (^) L’immagine a schermo non è mai in formato compresso - (^) La compressione si può effettuare a vari livelli , 10 % 30% ecc. - (^) Se si abbassa la qualità della foto si abbassano anche i KB
  • (^) Un’immagine ha un (non compressa) in formato bitmap presenta l’informazione completa del colore per ogni pixel assegnando un certo numero di bit per ogni canale di ogni colore (RGBa)
  • (^) Ce un numero per ogni canale , un numero per il verde, rosso, blu ecc. - (^) Abbiamo un griglia di punti e ad ogni punto assegniamo il colore - (^) Il numero di colori dipende dal numero di bit che assegniamo ad ogni canale - (^) Più bit per ogni canale più colori per rappresentare l’immagine - (^) I passi per i metodi di compressione Jpeg:
  • (^) 1. Suddivisione dell’immagine in blocchi 8x8px , l’immagine viene suddivisa in piccoli blocchi e su ognuno di questi blocchi vengono effettuati determinati passaggi - (^) 2. Si applica discrete cosine transform DCT è uno strumento matematico che si applica a tantissimi usi e anche all’immagine che fa passare il valore del colore dalla sua posizione nell’immagine alla sua frequenza - (^) Il risultato di questa operazione è un riarrangiamento di questa informazione tale per cui è possibile trovare l’informazione utile e l’informazione meno utile
  • (^) L’algoritmo non ha una definizione comprensiva
  • (^) Analogia di algoritmo :
  • (^) Un algoritmo potrebbe essere una ricetta
  • (^) Una ricetta è composta :
  • (^) Ingredienti (input)
  • (^) Operazioni con ingredienti (step degli algoritmi)
  • (^) Il piatto è il risultato delle varie operazioni (output)
  • (^) I passaggi dell’algoritmo quindi sono : - (^) 1. Input - (^) 2. Passi dell’algoritmo, ogni passo intermedio cambia l’algoritmo
  • (^) 3. Output - (^) ogni passo in ogni algoritmo descrive cosa fare facendo un assunzione alla base sostenendo che tutti i passi precedenti siano stati effettuati - (^) Il calcolatore non ha una conoscenza dello stato dell’intero processo quindi bisogna assicurarci che il risultato parziale sia corretto e memorizzarlo
  • (^) Esempio di algoritmo : - (^) Determina il maggiore tra due numeri x e y
  • (^) 1.Nei primi due passi si portano dentro i dati che ci servono , operazione d’ingresso
  • (^) 2. assegnare il valore 0 a una variabile Z
  • (^) 3.Valutare se il risultato z è maggiore di 0 cosi si può andare al passo 5 altrimenti se è minore di 0 andiamo al passo 6
  • (^) 4. Se x è maggiore di y si può terminare la procedura screen - (^) l’errore sta che non è gestita la condizione di x e y uguali
  • (^) Questo errore si chiama a undefinied behaviour , il calcolatore di fronte a una condizione che non è gestita non sa cosa fare - (^) Digrammi di flusso : Diagrammi che mostrano il flusso dell’esecuzione dell’algoritmo - (^) Si tratta di un diagramma a blocchi dove ogni blocco identifica una operazione - (^) Abbiamo il blocco iniziale e quello finale - (^) In base allo stato del sistema viene scelto il ramo di esecuzione

- (^) Una macchina con gli ingranaggi agisce in maniera sequenzale senza fare valutazioni, ogni passo prende in maniera istantanea l’ingresso dell’ingranaggio precedente - (^) Il blocco d’azione è quello che va a modificare lo stato del sistema nei passaggi intermedi - (^) Il sotto programma serve per fare riferimento al diagramma di flusso , è una parte di algoritmo che serve per scrivere in maniera breve una serie di blocchi di cui noi già conosciamo Lezione n. - (^) Il blocco di selezione nei diagrammi di flusso può corrispondere ai seguenti tipi d’istruzione :

  • (^) Istruzioni condizionali : in base alla condizione fa una cosa piuttosto che un l’atra
  • (^) Istruzioni iterative (cicli): continuare a fare qualcosa finche non si raggiunge un certo risultato - (^) Le istruzioni condizionali : Permettono di controllare il flusso dell’algoritmo e si basano sulla valutazione di una condizione - (^) La valutazione della condizione deve risultare vera o falsa
  • (^) Per avere una condizione di questo tipo si crea l’espressione logica che è una formula - (^) L’espressione logica è valutabile in termine di vero o falso - (^) Per valutare tale espressioni si possono utilizzare due tipi di operatori : - (^) Operatori relazionali - (^) Operatori logici
  • (^) Operatori relazionali : sono operatori binari che utilizzano due operandi che sono due elementi sui quali ci si integra su quale è l’operatore
  • (^) I due operandi devono essere comparabili (es.due numeri) - (^) ==: verifica l’uguaglianza tra due operandi - (^) !=: diversità - (^) <: verifica se l’operando di sinistra è minore dell’operando di destra - (^) >:è maggiore dell’operando di destra - (^) <=: come minore ma include l’uguaglianza - (^) >=: come maggior ma include l’uguaglianza - (^) Operatori logici :

Lezione n.

  • (^) La struttura delle istruzioni condizionali IF-THEN-ELSE
  • (^) Il tipo di espressione logica
  • (^) IF (espressione logica) - (^) THEN: branch nel caso l’espressione logica sia valutata come vera - (^) ELSE: branch nel caso l’espressione logica sia valutata come falsa
  • (^) Queste parole sono delle key-word
  • (^) Esempio di algoritmo
  • (^) 1.determina il numero nella variabile x
  • (^) 2. Determina il numero nella variabile y
  • (^) 3. Calcolar x-y e assegnarlo a una variabile x
  • (^) 4.IF(Z>0)
  • (^) THEN: go to 5
  • (^) ELSE: go to 6
  • (^) 5.Rispondi che x è maggiore di y e andare al passo 9 screen
  • (^) 6.IF(z==0)
  • (^) THEN: go to 7
  • (^) ELSE: go to 8
  • (^) 7. Rispondere che x rec - (^) Le istruzioni iterative : - (^) Permettono di iterare su una condizione , quindi a ripetere un ramo di condizione finche sussiste una certa condizione - (^) Questa condizione sono sempre espressioni logiche - (^) Le strutture più comuni di istruzioni iterative sono : - (^) FOR-DO - (^) WHILE-DO/REPEAT-UNTIL , che sono simili - (^) Struttura del ciclo FOR:
  • (^) FOR , apre lo statement e fa intendere alla macchina cosa si opera
  • (^) Prima cosa richiesta variabile d’iterazione che è un numero speciale quando viene dichiarato all’interno di questo statement ; poi si dichiara espressione logica; poi si dichiara l’incremento della variabile d’iterazione è la variazione che bisogna applicare alla baribal affinché l’espressione logica ecc.
  • (^) Esempio di altro algoritmo :
  • (^) Prodotto tra due numeri x e y per somme ripetute
  • (^) 1.Leggiamo x
  • (^) 2.Leggiamo y
  • (^) 3.Assegniamo 0 alla variabile z
  • (^) 4. FOR(x;x>0,x=x-1)
  • (^) DO: assegniamo a variabile z il valore z+y
  • (^) 6. Rispondere che il risultato di x*y è z
  • (^) 7. termina la procedura - (^) Strutture del ciclo WHILE-DO
  • (^) WHILE (espressione logica)
  • (^) DO : branch da eseguire se l’espressione logica è stata valutata come vera
  • (^) La differenza è che con questo costrutto noi possiamo evincere dal do che l’espressione logica subisca una variazione per la quale salta anche essa e riusciamo a uscire da while - (^) Struttura del ciclo REPEAT-UNTIL:
  • (^) Funziona che prima si fa il do e poi si valuta se l’espressione logica è ancora vera mentre while dice il contrario
  • (^) Questi due procedimenti sono equivalenti perché quello che cambia tra l’uno e l’altro mentre faccio il ciclo hanno procedimenti simili

Lezione n.

- (^) Compilatore è in grado di tradurre ciò che scriviamo per renderlo comprensibile alla macchina - (^) Vogliamo verificare che il codice si comporti a ciò che ci aspettiamo ovvero di far funzionare il nostro dispositivo - (^) Linguaggio di programmazione : ci sono 2 tipi compilati (veloci e poco versatili) e interpretati ( meno veloci più versatili) - (^) Linguaggi Compilati - (^) Il compilatore : è uno strumento che traduce il codice scritto al linguaggio macchina dal linguaggio di programmazione. La traduzione viene fatta in blocco nel senso che il compilatore legge tutto il nostro codice e poi ne fa una traduzione - (^) Il vantaggio: Quando il compilatore traduce il codice scritto quella traduzione può essere riutilizzata per lo stesso algoritmo - (^) Lo svantaggio: Se un programma è stato scritto con un linguaggio compilato diventa ovvio il fatto che bisogna avere diverse versioni del programma perché il passo di compilazione avviene per una specifica macchina e quindi si necessita una nuova compilazione - (^) es. C, C++, COBOL - (^) Le alternative nel caso non voglia ricompilare - (^) Linguaggi interpretati : - (^) Un interprete traduce il codice scritto nel linguaggio di programmazione in linguaggio di macchina durante le esecuzione - (^) Il vantaggio : il programma funziona su qualsiasi macchina in grado di interpretarlo senza limiti di architetture specifiche perché il codice viene tradotto in tempo reale perché ce un interprete che al volo traduce dal linguaggio di interpretazione al linguaggio macchina - (^) Lo svantaggio : un programma scritto con un programma di interpretazione è più lento perché bisogna aggiungere il tempo che l’interprete ci mette a fare la traduzione. - (^) Es. python, ruby - (^) Linguaggi di simulazione :

- (^) Sono linguaggi di descrizione dell’hard ware : il codice viene tradotto in un linguaggio macchina che simula le componenti elettroniche simulate all’interno del computer su cui stiamo scrivendo il nostro codice. Il circuito elettronico simulato poi viene stampato in un “circuito integrato” - (^) Il circuito integrato : è l’implementazione fatta con componenti elettroniche dell’algoritmo teorico , la sua traduzione in componenti elettroniche - (^) Vantaggio : i sistemi embedded (circuito di quelli verdi che una specifica funzione che implementa un algoritmo) sono più veloci ed economici - (^) Svantaggio : i sistemi embedded può eseguire solo le funzioni per cui è stato programmato e non si può riprogrammare - (^) Es. VHDL,System C

- (^) Una macchina di Turing è un computer che ha un nastro infinto e quindi memoria infinta a differenza del computer ma ha le stesse capacita di calcolare quello che calcola un computer - (^) Un problema decidibile : è quando è possibile scrivere un algoritmo lo scrivo e lo faccio funzionare su un computer e tale algoritmo sa sempre dirmi se l’input che gli ho dato è risolvibile oppure no (logica proposizionale è decidibile) - (^) Problemi semidecidibili : il calcolatore non riesce a trovare una risposta precisa e quindi ne trova una che tiene per buona - (^) Problemi indecidibili : per alcuni input non abbiamo la soluzione del problema

Lezione n. 12

- (^) La complessità è una proprietà del problema e ci dice quale è l’efficienza massima dal miglior algoritmo che può risolvere il problema e si riflette a delle implicazioni dirette ad un algoritmo che tenta di risolvere il problema - (^) Sapere il grado di complessità di un problema ci dice quanto possiamo sperare quanto sia efficiente il nostro algoritmo - (^) Efficienza : si intende la quantità di risorse che l’algoritmo necessità per risolvere il problema - (^) Lo spazio è la memoria di cui necessita l’algoritmo escluso l’input per eseguire le istruzioni per risolvere il problema - (^) L’efficienza di un algoritmo si calcola in base al tempo e allo spazio - (^) I gradi di complessità del problema sono classificabili

  • (^) Questa classi esistono perché ci sono dei problemi che si possono risolvere con una certa quantità di tempo di spazio ma non possono essere risolto con meno spazio e meno tempo
  • (^) A noi interessa sapere quanto efficiente può essere un algoritmo al massimo
  • (^) Per sapere questo a noi serve la riduzione funzionale un qualcosa ovvero come convertire un problema in modo tale che tutti gli input del primo problema siano soluzione anche del secondo problema
  • (^) Problemi completi : Problemi speciali che hanno la proprietà di garantire l’esistenza di una riduzione da un qualsiasi altro problema della stessa classe di complessità
  • (^) Lo studio delle classi di complessità è di grande interesse per le implicazioni pratiche
  • (^) Alcuni campi importanti per i quali sarebbe rivoluzionario rispondere ad alcuni teorici :
  • (^) Sicurezza informatica
  • (^) Problemi logistici
  • (^) Problemi economici
  • (^) Problemi medici

- (^) Sono 3 linee di comunicazione quindi 1 bus è la parte del calcolatore che mette in comunicazione uno o più componenti

  • (^) I bus di sistema sono 3 (e a volte anche di più): - (^) Bus dati : canale di comunicazione di informazione - (^) Bus indirizzi : canale riservato agli indirizzi di memoria relativi al bus dati - (^) Bus di controllo: canale relativo a chiamare in causa le informazione relative che sono presenti all’interno del bus dati
  • (^) Si può sempre ricondurre i tipi di informazione a queste tre categorie

Lezione n.

- (^) L’unita centrale di elaborazione (CPU) è la componente che si occupa di fare i conti - (^) La memoria centrale si chiama RAM - (^) Le componenti della CPU

  • (^) La CU (control unit) : è la componente di controllo delle altre componenti della CPU
  • (^) ALU (arithmetic logic unit) : esegue le operazioni aritmetiche e logiche ed è collegata a due registri in cui finiscono i valori dell’operazione da fare
  • (^) IR (instruction register) e PC sono registri a parte che hanno un loro valore numerico e il loro compito è mantenere lo stato di esecuzione dell’algoritmo - (^) IR contiene l’istruzione dell’algoritmo e finisce qui perché l’istruzione può essere che abbia bisogno di essere eseguita - (^) CP (program counter) riporta l’indirizzo della prossima istruzione da seguire - (^) Gerarchia della memoria : - (^) Nelle prestazione la RAM è molto più veloce a trasferire dati rispetto alla memoria di massa - (^) CPU Chace è una memoria che è più veloce della ram ed è la memorizzazione più veloce
  • (^) Cpu Chace è una componente della CPU e si trova tra la memoria centrale e le altre componenti della CPU - (^) CPU Chace non è una componente necessaria
  • (^) CPU chace è tra i 2 e 10 megabyte - (^) CPU cerca di portare nella CPU Chace tutte le variabili dei rami di esecuzione - (^) La memoria di massa: contiene tutte le informazioni destinate all’archiviazione - (^) Nel momento in cui tale informazione viene chiamata in causa viene copiata nella memoria centrale per essere elaborata - (^) La memoria di massa può essere utilizzata in via eccezionale al posto della memoria di RAM se finisce