Estratto del documento

Rappresentazione di numeri

Alla fine degli anni 70 si utilizza in modo meccanico dei calcolatori, questi erano utilizzati all'interno di uffici. Questo ha portato a far sì di cercare di comunicare con un computer (tramite un codice binario).

Base e alfabeto

I numeri sono dei polinomi al pedice vengono messe delle basi, noi utilizzeremo la base di 10. (0,1,2,3,4,5,6,7,8,9). La base di 10 è anche come è stato “programmato l’essere umano”. Se abbiamo una base di X abbiamo x incognite diverse. Sicuramente abbiamo basi diverse come la base 2 o la base 16 (fondamentale tra l'uomo ed un calcolatore utile per rappresentare 8 bit) per la base 16 vengono utilizzate le lettere ‘dell’alfabeto dopo il numero 9 quindi tipo per il 16 vengono utilizzate (A,B,C,D,E,F).

ATTENZIONE: la base 2 (0,1) è la più piccola che andremo ad utilizzare, fondamentale per il bit (Binary digit) oppure le schede di memoria o nei cd in tutte quelle app. di memoria dove il tutto è salvato in codice binario dove si è lavorato molto per arrivare a questo. Salvando in binario farà sì che i miei transistor lavorano tra di loro in modo da elaborare il tutto da un video ad una foto in tutto.

Cambio di base

Binario-decimale
Per cambiare la base da binario a decimale è sufficiente svolgere il polinomio:

01101 = 1*1 + 0*2 + 1*4 + 1*8 + 0*16 = 1+4+8 = 13

Esadecimale-decimale
1AB = 1*162 + A*16 + B*1 = 11 + 16*10 + 1*256 = 427

Passaggio da base decimale a base estera

Si utilizza un processo chiamato riduzione a divisioni, ovvero il numero nella base estera viene calcolato tramite i resti della divisione:

11 = 101110 1011

  • Divisione Quoziente Resto
  • 11/2 5 1
  • 5/2 2 1
  • 2/2 1 0
  • 1/2 0 1

Colonna del resto == al numero nella base ricercata. ATTENZIONE: Leggere dal basso verso l’alto.

Curiosità: Per leggere una volta dei risultati si portava il risultato in esadecimale per la lettura analogica.

https://www.youtube.com/watch?v=uFQ3sajIdaM

Perché? L’esadecimale permette di rappresentare 8 bit in 2 bit. 10001111 ----> ?b 16 si nota che ogni 4 cifre equivalgono a una cifra in base 16. 1000 *24 + 1111 * 20 b quindi dal numero otteniamo 8*16+15*160 == 8F. Se il numero di cifre in decimale non è divisibile per 4 metto gli 0 davanti. Se ho FF8 per esempio saranno 3 serie da 4 bit in binario equivalenti a F F 8 1111 1111 1000.

Numeri razionali

Come convertire un numero razionale da 10 a 20,125 --- 2100,125*2 0,250 R 0 0,250 *2 0.500 R 0 -------> 0,001 LETTO DA BASSO VERSO L’ALTO 0,500*2 0,0 r 1 ATTENZIONE; NON SEMPRE FUNZIONA.

Guarda per esempio lo 0,1. Si risolve il problema con 2 metodi: o si scrive in modo da leggere in modo che quello dopo la virgola sia naturale oppure vedere se è uguale si mette una approssimazione.

Floating point

Nel floating point si utilizza il principio della notazione scientifica, ovvero un numero viene rappresentato tramite una serie di cifre moltiplicate per una potenza di dieci.

10,23 == 0.1023 * 102 mantissa esponente.

Si occupano quindi 32 bit per rappresentare i numeri nel seguente modo:

I byte

1 Byte = 8 Bit (0,1). Una Ram può contenere sedici miliardi di Byte, la memoria fa sì di sprecare il minor sforzo e spazio possibile per salvare qualcosa tramite i bit.

Numeri interi positivi

N celle di memoria = N bit con questi è possibile rappresentare numeri da 0…2 alla N - 1 es. 4 celle di memoria -> 2 alla 4, -1 = 15. Tramite il calcolo combinatorio posso capire quanti numeri posso rappresentare (numero di combinazioni).

Quindi si può intuire che il numero di dati possibili in numero definito di bit n quindi posso ottenere 2 combinazioni, ma dato che uno dei numeri rappresentabili è 0 n quindi il numero massimo ottenibile è 2 -1 ESEMPIO ho 5 bit 5 il numero massimo è 11111 che effettivamente è 31 che è uguale a 32-1 == 2 -1

  • 210 8 bit -> 1 byte 10
  • 1024 byte-> 1 kB 2 Byte
  • 201024 kB---> 1 nB 2 Byte
  • 301024nB-> 1GB 2 Byte
  • 401024GB-> 1TB 2 Byte
  • 501024TB->1PetaB 2 Byte

Come gestire la somma in binario

  • 0+0=0
  • 0+1=1
  • 1+0=1
  • 1+1=10

Quindi guardiamo un ESEMPIO 10110+01101= ATTENZIONE AI RIPORTI; ATTENZIONE STIAMO LAVORANDO IN BINARIO 100011.

La stessa operazione può essere effettuata velocemente da transistor, la colonna dei valori è fondamentale per i transistor questo perché il sistema COLONNA viene associato a un insieme (10 o più) transistor che raccolgono i dati (tra cui anche il possibile dato del risultato cioè 0) e tramite a un sistema logico permette di effettuare questo tipo di conti.

Il processore medio contiene quindi miliardi di transistor che ragionano in 0-1 in cui 1 è corrente accesa e 0 è corrente spenta. E non solo per i conti ma per anche per funzioni logiche, di inversione ecc…

I transistor

Il transistor è un componente elettronico il cui funzionamento si può riassumere come un interruttore controllato elettricamente (motivo per cui si utilizzano nei computer per avere come risultato 0 e 1). In realtà è più simile a un comparatore di corrente e compara la corrente della sua base con la corrente del suo ingresso.

Circuito sommatore

Curiosità ma non è necessaria ai fini dell’esame. Il calcolatore è composto di una serie di celle di memoria che possono contenere solo 0,1. Un calcolatore da 8 a 64 bit ha miliardi di sezioni di memoria. Le celle di memoria non sanno cosa contengono a livello reale, ma bisogna fare in modo da leggere quel codice. Le celle sono completamente configurabili e infatti è il programma a dover configurare e utilizzare queste celle. Le celle in poche parole salvano quello che gli viene richiesto. In qualunque caso questo è un bene, ma a volte ci sono dei limiti.

Casistiche

  • Nelle celle disponibili è possibile un numero non riesce a entrare nella cella per la lunghezza (overflow).
  • ESEMPIO: 2 celle da 5 bit possono dare un numero più grande come risultato molto più grande di 5 bit.
  • Le celle di memoria potrebbero mantenere la memoria precedentemente utilizzata dando come risultato una cosa inaspettata.
  • Molti di questi casi succedono spesso sicuramento non troveremo il risultato corretto ma è tagliato o davanti o dietro perdendo 1 o più cifre binarie; questo dovuto dai casi spiegati in precedenza.

Numeri negativi

Possibilità:

  • INSERIMENTO DI UNA CELLA DEDICATA
  • Aggiungo alla striscia di celle una cella dedicata solo al segno

Problemi: Lo 0 viene rappresentato in 2 modi piuttosto che uno e questo per la macchina è problematico sia per le operazioni, sia per i confronti. Operazioni complesse al punto al punto da essere inutilizzabile.

Complemento 1

Anche qui aggiungo un'altra cella davanti ma quello che succede è che viene creato il negativo della cella. Esempio: 00100 viene rappresentato come 11011 e questo vale - 4 con uno fittizio davanti.

  • Le operazioni diventano molto più facili
  • Lo 0 può ancora essere rappresentato in 2 modi

Complemento 2

Aggiungo sempre una cella per avere un numero negativo ho 2 passaggi:

  • Inverto i bit (come nel complemento a 1)
  • Sommo 1 (metti uno 0 davanti, inveri gli 1 con gli 0 e viceversa e poi sommi 1)

ESEMPIO: 4+1 celle. Voglio rappresentare -4 quindi 4==01002. Davanti metto un ulteriore 0 per segnare la casella del segno (quindi otteniamo 00100), effettuo l’inversione:

00100--->11011

In seguito aggiungo 1 quindi:

11011 + 00001 = 11100

In questo modo:

  • Le operazioni sono semplificate
  • Lo 0 diventa univoco

ATTENZIONE: All’interno N celle posso avere un minimo di -2 - 1 / ed un max 2 -1. La cella viene persa per il segno.

Google ha avuto un overflow grazie a Gangnam Style perché aveva un modo di calcolo per le visualizzazioni che utilizza un sistema di 32 bit grazie a questo Google ha modificato il modo di calcolo da 32 a 64 bit.

Rappresentazione di testo (Morse e codice ASCII)

Il primo fu il codice Morse … --- … (sos). Ma come viene scritto in un codice binario:

10101 00 11011011 00 10101 s spaz o spaz s

Per la rappresentazione della S sevono 5 bit. Per la rappresentazione della o servono 8 bit. Di conseguenza non è prevedibile la lunghezza del testo ed è difficile da decriptare per la macchina.

Ma come salviamo le lettere in memoria? Stiamo parlando del codice ASCII che serve a rappresentare numeri e lettere perché il Morse è un metodo terribile. Partiamo dagli anni 20 e 30 tramite una macchina da scrivere grazie ad impulsi elettrici questo e venne utilizzato anche per gli SMS per codificare lettere e numeri.

ASCII (American Standard Communication cazzi e mazzi) l’immagine rappresentata codifica le lettere in base 10, o come i numeri da 0-9 ma i numeri sono visti come testo non come realmente numeri da parte della macchina tramite i vari comandi (fondamentali per comunicare tra l'operatore ed un altro).

ESPERIMENTI. MA QUINDI PER SCRIVERE TRIESTE COSA DEVO PIGIARE? Per scrivere la T tu pigi T sulla tastiera, la tastiera lo riceve come 84 e lo manda al computer, il computer sa che 84 in ASCII è uguale a T e il computer stampa T. La stessa cosa vale per tutto quello che vedi sulla tastiera maiusc, TAB, i punti, le virgole, invio ecc ecc.

NOTARE: Prima delle lettere effettive ci sono altri comandi e i numeri visti come testo. I comandi sono l’equivalente attuale di spazio, punto a capo, nuova riga, TAB ecc. Stringa è un insieme di caratteri. Tutto aveva un Senso qui sotto rappresentato salvato tutto da 7 bit. Le telescriventi già salvano le informazioni su un nastro perforato notare i fori questi fungevano da “impostazioni del testo”.

Aggiungendo un bit abbiamo potuto aggiungere i caratteri che ci mancavano passando da 7 a 8 bit. Questo però non raggruppa tutti i caratteri che possono essere ad esempio in un computer europeo rispetto ad un computer dell'est, la tabella comoda sì, ma non per tutti. Cambiando così la comunicazione di una frase e il senso.

Quando salvo un testo di memoria: Per un europeo sono 72 Caratteri ASCII ESTESO, ogni carattere è un BYTE, Quindi avrò 72 Bytes, cosa succede in memoria?

W = (87) → Convertito in binario= 010110111 base 2 e così per tutte le altre lettere. ATTENZIONE; 1 impulso di corrente 0 nessun impulso di corrente. Questo vale per tutti i caratteri se c'è impulso occupa una casella se non c'è un impulso non occupa la casella.

Come si unifica tutto? (Unicode)

Con UNICODE (32 BIT= 4 BYTE) = Alla vecchia tabella ASCII nei primi 127 caratteri in unicode sono stati aggiunti molti più bit (32) avendo a disposizione 4 byte è possibile avere + di 40000000000 di caratteri. Essendo retrocompatibile i primi 128 caratteri sono quelli vecchi. In UNICODE sono presenti tutti i possibili caratteri esistenti (emoticon, papere, geroglifici, lettere arabe, cinese ecc..).

Esempi di unicode:

  • Smile = unicode
  • La e Accentata = unicode

È così via… per altri esempi ( Unicode LOOKUP). Come rappresentare un carattere unicode U+[N in EXDEX (esadecimale)] esempio:

€= U+20AC.

Non siamo ancora a posto il problema è che è piuttosto ingombrante a livello di memoria e la maggior parte di questi byte sono 0 () cioè memoria inutilizzata. Esempio: testo 1000 caratteri una volta aveva 1000 byte mentre ora ne dovrebbe avere 4000.

Soluzione

Esempio: voglio rappresentare <space> avrò 00000000 00000000 00000000 0001000 e questa lunga serie di bit a 0 vale anche per i caratteri normali. Quindi viene creato UTF-8.

Come funziona? Partendo da UNICODE 4 byte per simbolo:

  • leggo sempre un byte alla volta
  • se il primo bit letto è 0, ho finito gli altri 7 bit rappresentano i caratteri della tabella ASCII esempio: 00000000 00000000 00000000 00000100 allora verrà trasmesso solo 00000100
  • Altrimenti, leggo altri N byte N= Numero di 1 prima di uno 0 se il primo carattere inizia con 1 = devo vedere quanti 1 trovo prima di uno 0, questo mi servirà per codificare il tutto è mi dirà quanti byte dovrò andare ancora a leggere. Inoltre è possibile automatizzare il processo tramite il fatto che i bit “di coda” iniziano con 10

Esempio: è : unicode= 0xE8=0X000000E8 0XXXXXXX (7 BIT UTILI ----> tutto ASCII base) 11110XXXXX 10XXXXXX ( 11 bIt utili ) quindi 2 caratteri disponibili oltre ai 127 16 111110XXXX 10XXXXXX 10XXXXXX (16 bit utili) quindi 2 caratteri disponibili oltre ai 127 +2 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX (21 BIT) ritornando alla “é” lo inserito al posto delle X il valore in UNICODE della è all'interno del numero da 11 bit quindi é==11101000 é== 11011101 10000000.

Font TTF

Come passare dall’idea del simbolo il simbolo effettivo: istruzione della forma da dargli tramite un font (4 Miliardi di caratteri). Il font è semplicemente un programma che associa a un numero un simbolo. In particolare il font true type font (TTF) lo fa descrivendo geometricamente il simbolo da rappresentare rendendolo facile da scalare e decodificare tramite curve e funzioni in piano cartesiano. Se non c'è sul font il carattere questo viene visualizzato come un quadrato bianco o come una lettera corrotta.

I font possono essere divisi in 2 categorie:

  • SERIF (con delle grazie o decorazioni)
  • SANS-SERIF (senza le grazie)

Se il testo va stampato metti serif, se il testo va mostrato su pc allora il font deve essere sans serif. Questo perché l’uomo è più propenso a seguire delle linee immaginarie “serif” per permettere di mantenere il filo del discorso. Ma il monitor per via della struttura a pixel potrebbe distorcere la grazie e rendere difficoltosa la lettura.

Algoritmi

Algoritmo: sistema automatico di regole ordinate atte a risolvere un problema

  • Regola da eseguire
  • Ricevono dati in ingresso (input)
  • Risolvono un problema (output)

Si può vedere come una scatola con degli input e degli output con 3 regole:

  • Il comando deve essere possibile
  • Il comando deve essere finito
  • Il comando non ambiguo

ESEMPIO: Interesse semplice At=A *(1+T*r)

  1. Chiedere il capitale A
  2. Chiedere il tasso
  3. Chiedere il tempo l
  4. Imposta At= A0* (1+t+*r)
  5. Stampare

Ricorda: programmare è come parlare con un matematico. È stupido e non capisce nulla ma è bravo a fare i conti.

Libreria

Insieme di istruzioni che formano un sottoalgoritmo che può essere richiesto e utilizzato più volte in algoritmi generali diversi.

Bonus stipendio

Caratteristiche per ottenere il bonus:

  • C’è bisogno di qualcosa per capire chi lo merita
  • Il monte ore di lavoro ad esempio
  • La paga mensile
  • Il ruolo
  • Definire poi i parametri che ti interessano
  • Fare un conto di quelli che sono usciti
  • Definire la cifra iniziale e dividerla per il numero di persone che sono adeguati secondo il programma

E ovviamente questi sono tutti dati che dovranno venire da un database.

Esempio di algoritmo eseguibile

Nel programma:

  • Inserire nel programma i seguenti dati
  • La lista del personale
  • Per ogni persona indicare: ore di straordinario, posizione coperta, punteggio per comportamento generale indicato da eventuali controlli esterni di qualità (ritardo, anzianità ecc ecc)
  • Inserire quindi i parametri secondo cui si vuole gestire il capitale (sistema a punti, sistema a media o altro)
  • Inserire budget totale
  • Assegnare a seconda del punteggio ottenuto una percentuale del bonus totale

Machine learning

Esistono dei metodi di AI (intelligenze artificiali) che permettono di far scrivere e risolvere al computer in maniera autonoma sia l’algoritmo che la soluzione di esso. (Fa tutto lui non al 100% ma gli dai in pasto il problema e le regole e lui risolve.)

Cosa posso fare con il Machine learning (risultato non al 100% ma quasi):

  • Ricordare che comunque la macchina continua a imparare
  • Classificazione (riconoscimento caratteri/ scrittura, riconoscimento vocale/facciale, email spazzatura, abuso carta di credito)
  • In input abbiamo un oggetto da analizzare o un insieme di oggetti e mette una etichetta come classificazioni
  • I film tradotti (come quelli visti in streaming/ youtube)

Il fascino di Machine Learning è che impara da quello che facciamo noi o che gli indichiamo e questa è la cosa straordinaria di questo ‘’algoritmo’’.

  • Fare previsioni probabilistiche esempio amazon con i prodotti oppure i film consigliati tiktok ecc ecc
  • Come prima però lavorando con sistemi caotici

Caotico di prim’ordine: che cambiano a seconda di piccolissime variazioni non misurabili/prevedibili. Caotico di secondo ordine: qui la decisione /predizione ha effetto immediato sulla decisione stessa (situazione circolare).

Generazione di codice

  • Scrittura di codici di un algoritmo/problema
  • Algoritmo per cercare delle parole all’interno di un dizionario
  • Prendi il dizionario
  • Aprilo alla prima pagina
  • Leggi le parole presenti
  • Se ‘’cane’’ è presente
  • Leggi la definizione
  • Altrimenti
  • Gira pagina
  • Vai al punto 3

Non eseguibile non ambiguo termini di tempo finito.

Algoritmo - Più veloce

  1. Prendi il dizionario
  2. Aprilo nella prima pagina
  3. Leggi le parole presenti
  4. Se ‘’cane’’ è presente
  5. Leggi la definizione
  6. Altrimenti se è dopo
  7. Gira due pagine
  8. Vai al punto 3
  9. Altrimenti
Anteprima
Vedrai una selezione di 19 pagine su 89
Appunti informatica - teoria Pag. 1 Appunti informatica - teoria Pag. 2
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 6
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 11
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 16
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 21
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 26
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 31
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 36
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 41
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 46
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 51
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 56
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 61
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 66
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 71
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 76
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 81
Anteprima di 19 pagg. su 89.
Scarica il documento per vederlo tutto.
Appunti informatica - teoria Pag. 86
1 su 89
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher giovi213 di informazioni apprese con la frequenza delle lezioni di Fondamenti 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à Università degli Studi di Trieste o del prof Davanzo Giorgio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community