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


Introduzione all'informatica: Sistemi numerici, codifica dei caratteri e algoritmi - Prof., Sintesi del corso di Elementi di Informatica

Una panoramica introduttiva ai concetti fondamentali dell'informatica, esplorando i sistemi numerici, la codifica dei caratteri e gli algoritmi. La conversione tra sistemi numerici, come binario, ottale ed esadecimale, e spiega il funzionamento della codifica dei caratteri, inclusi ascii e unicode. Inoltre, introduce il concetto di algoritmo, definendolo come una sequenza di passi per risolvere un problema, e analizza le sue caratteristiche fondamentali. Un'ottima risorsa per studenti che desiderano approfondire le basi dell'informatica.

Tipologia: Sintesi del corso

2024/2025

Caricato il 04/02/2025

emanuela-serranti
emanuela-serranti 🇮🇹

5 documenti

1 / 11

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
’L’informazione permette di superare un’incertezza e risolvere un’alternativa, sostituendo il noto
all’ignoto, il certo all’incerto.
Un dato è una descrizione elementare, spesso codificata, di una cosa, transazione, avvenimento
o altro.
L’elaborazione dei dati può portare alla conoscenza di un’informazione, l’informazione associa
un significato ai fatti.’
Il dato è ‘portato da’,’trasmesso su’ o ‘ memorizzato in’ qualcosa, questo ‘qualcosa’ è un
supporto fisico e non è il dato stesso. Il supporto fisico ha le sue caratteristiche in quanto
supporto per i dati, alcuni supporti sono particolarmente adatti alla trasmissione dei dati ma non
alla loro memorizzazione (cavi, etere..), per altri supporti èilcontrario. (CD, DVD…)
Dato e codifica
Si può chiamare codifica l’operazione con cui il dato viene scritto su un supporto fisico e
decodifica l’operazione con cui il dato viene letto da un supporto fisico.
Quello descritto è un sistema di numerazione posizionale, il valore di ogni elemento della
sequenza dipende dalla sua posizione, questo visto è il sistema di numerazione decimale (o in
base 10), in quanto 10 è la base delle potenze che moltiplicano le cifre e 10 sono le cifre
utilizzate ( da 0 a 9).
Esistono ance sistmi non posizionali come il sistema di numerazione romano XXVII,compaiono
due X ma esse hanno entrambe valore 10, come le tre I hanno ciascuna valore di 1.
SISTEMA BINARIO
Con base 2, otteniamo il sistema di numerazione binario e le cifre possibili sono 0 e 1
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Introduzione all'informatica: Sistemi numerici, codifica dei caratteri e algoritmi - Prof. e più Sintesi del corso in PDF di Elementi di Informatica solo su Docsity!

’L’informazione permette di superare un’incertezza e risolvere un’alternativa, sostituendo il noto all’ignoto, il certo all’incerto. Un dato è una descrizione elementare, spesso codificata, di una cosa, transazione, avvenimento o altro. L’elaborazione dei dati può portare alla conoscenza di un’informazione, l’informazione associa un significato ai fatti.’ Il dato è ‘portato da’,’trasmesso su’ o ‘ memorizzato in’ qualcosa, questo ‘qualcosa’ è un supporto fisico e non è il dato stesso. Il supporto fisico ha le sue caratteristiche in quanto supporto per i dati, alcuni supporti sono particolarmente adatti alla trasmissione dei dati ma non alla loro memorizzazione (cavi, etere..), per altri supporti èilcontrario. (CD, DVD…) Dato e codifica Si può chiamare codifica l’operazione con cui il dato viene scritto su un supporto fisico e decodifica l’operazione con cui il dato viene letto da un supporto fisico. Quello descritto è un sistema di numerazione posizionale, il valore di ogni elemento della sequenza dipende dalla sua posizione, questo visto è il sistema di numerazione decimale (o in base 10), in quanto 10 è la base delle potenze che moltiplicano le cifre e 10 sono le cifre utilizzate ( da 0 a 9). Esistono ance sistmi non posizionali come il sistema di numerazione romano XXVII,compaiono due X ma esse hanno entrambe valore 10, come le tre I hanno ciascuna valore di 1. SISTEMA BINARIO Con base 2, otteniamo il sistema di numerazione binario e le cifre possibili sono 0 e 1

BYTE: combinazione di 8 bit, può rappresentare un carattere (lettera, numero o simbolo tipografico) tra 22…*2=2 alla 8= 256 diversi caratteri. Rappresentiamo 116 in base 2:

  • 116/2=58 con resto 0
  • 58/2=29 con resto 0
  • 29/2=14 con resto 1
  • 14/2=7 con resto 0
  • 7/2=3 con resto 1
  • 3/2=1 con resto 1
  • 1/2=0 con resto 1 Quindi partendo da sopra: 0010111 Sistema ottale ed esadecimale
  • Ottale è b=8, le cifre possibili sono da 0 a 7
  • Esadecimale è b= 16, si utilizzano cifre da 0 a 9 e le cifre 10,11,12,13,14, corrispondono alle lettere A,B,C,D,E,F.
  • La rappresentazione ottale di un numero utilizza circa un terzo dell cifre della rappresentazione binaria
  • La rappresentazione esadecimale di un numero utilizza circa un quarto delle cifre della binaria
  • Vengono utilizzate per scrivere in maniera compatta le stringhe binarie molto lunghe Conversione di base Il procedimento visto può essere utilizzato anche per effettuare una conversione di base, sia data la rappresentazione di un numero n in una base b. Per determinare la rappresentazione di n in un’altra base b’ si può calcolare il valore n come Ck- 1 Bk-1+…C1B1+C0*b

Covertiamo in base 5 il numero 110111 b

  • calcoliamo il valore del numero: 12^5+12^ 4+02^3+12^2+1*2^1 +1^ 20=
  • 55 in base 5: 55/5=11 con resto 0- 11/5=2 con resto 1- 2/5=0 con resto 2= 210 in base 5

- Standard definito e utilizzato a livello internazionale - utilizza 7 bit (2 alla 7 caratteri) per codificare i caratteri. - 128 caratteri rappresentabili (33 caratteri di controllo, 95 caratteri stampabili). Il codice ASCII non permette di rappresentare lettere con accenti o altri segni diacritci (è, ù,..), tali lettere non usate in inglese ma in altre lingue europee e per questo esistono varie estensioni dell’ASCII per il supporto dei caratteri, queste estensioni utilizzano 8 bit ed utilizzano i codici da 128 a 255 per carattri aggiuntivi Un’estensione dell’ASCII è con 8 bit si chiama ISO 8859, permette di scrivere in ogni lingua latina, ma per le lingue orientali 255 caratteri non bastano ugualmente. —> Unicode : progettato a 16 bit e prevede l’utilizzo di 1112064 codici, risolvendo tutti i problemi riguardanti le lingue, introducendo tutti i caratteri che fanno parte del linguaggio (note musicali, alfabeto greco, emoticon…). L’ampliamento dell’inseme dei caratteri pone un problema, ovveroil numero di bit necessari a rappresentare un carattere è maggiore. Per rappresentare 1112064 servono 3byte, 3 volte maggiore di ISO 8859. Per evitare l’aumento di dimensione dei dati tesuali, in Unicode si usano diverse codifiche di carattere, si distingue tra i cdici assegnati ai caratteri (code point) ed il modo con cui tali codici vengono rappresentati in binario (codifica caratteri). Ad esempio il code point di A è 65, la codifica di caratteri definisce come rappresentare in binario il valore =1000001 (0100001 se usiamo 8 bit) e questo succede in ASCII e ISO 8859. Unicode prevede codifiche diverse, tra cui UTF-8, UTF-16, UTF-32 (stabilire all’inizio quanti bit servono per poi scrivere un sito web). UTF- Si usano da 1 a 4 byte cn le seguenti regole:

  1. Code point da 0 a 127, un byte nella forma 0 xxxxxx (le x sono i bit)
  2. Code point da 128 a 2047, due byte nella forma. 110 xxxxx 10 xxxx
  3. Code point da 2048 a 65535 byte nella forma 1110 xxxx 10 xxxxxx 10 xxxxxx
  4. Code point oltre 65535 byte esempio: il carattere A ha code point 65 (vedee sul codice ASCII) che in binario è 1000001 poichè 65 cade tra 0 e 127 si usa il froma 0 xxxxxxx, quindi la codifica UTF-8 di A è 01000001 I SOFTWARE Definire un problema Risolvere un problema? Eliminare le ambiguità nella formulazione del problema, individuare il risultato che si vuole ottenere, gli obiettivi da raggiungere. Eliminare i dettagli inutili ed ambigui. Per i problemi risolvibili si utilizzano gli algoritmi. ALGORITMO : sequenza finita di istruzioni comprensibili da un esecutore, che descrive come realizzare un compito. Gli algoritmi descrivono la soluzione ai problemi della stessa classe strutturalmente equivalenti Come si scrive un algoritmo? Diagramma di flusso permette di scrivere un codice, facendo uno pseudo codice. Ogni istruzione elementare è associata a un’azione elementare (oppure a una successione di

azioni elementari) che può essere direttamente compiuta (computata) dall’esecutore. Un esecutore è definito in base a tre elementi:

  • l’insieme delle operazioni che è capace di compiere;
  • l’insieme delle istruzioni che comprende (sintassi);
  • quali operazioni associa ad ogni istruzione che riconosce (semantica). Proprietà degli algoritmi
  • Atomicità: i passi costituenti devono essere "elementari", ovvero non ulteriormente scomponibili;
  • Non ambiguità: i passi costituenti devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale;
  • Finitezza:l'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso;
  • Terminazione: l'esecuzione deve avere termine dopo un tempo finito;
  • Effettività: l'esecuzione deve portare a un risultato univoco.
  • Correttezza: perviene alla soluzione del compito cuI è preposto, senza difettare di alcun passo fondamentale
  • Efficienza:L’algoritmo perviene alla soluzione del problema usando la minima quantità di risorse fisiche (tempo di esecuzione, memoria..). —> quindi
  • Algoritmo= descrizione di come si risolve un problema
  • Programma = algoritmo scritto in modo che possa essere eseguito da un calcolatore (linguaggio di programmazione)
  • Linguaggio macchina = linguaggio effettivamente “compreso” da un calcolatore, caratterizzato da istruzioni primitive semplici (e.g. max 2 operandi), attenzione all’efficienza (costi, complessità, velocità), difficile e noioso da utilizzare per un programmatore
  • Due aspetti rilevanti: produrre algoritmi (cioè capire la sequenza di passi che portano alla soluzione di un problema) e codificarli in programmi (cioè renderli comprensibili al calcolatore) CODIFICA DEGLI ALGORITMI È formulato per essere comunicato tra esseri umani e deve essere sintetico ed intuitivo, anche per essere eseguito automaticamente (preciso ed eseguibile, codificato in linguaggi comprensibili dagli esecutori automatici. Gli algoritmi sono parametrici, producono un risultato che dipende da un insieme di dati di partenza che descrivono la soluzione di un’intera classe di problemi strutturalmente equivalenti. Le istruzioni fanno riferimento a variabili, ilcui valore non è fissato a priori ma cambia a seconda dell situazione elaborativa in cui l’esecutore si trova.
  • III generazione (anni ‘70): linguaggi imperativi e procedurali di uso generale (C, Java, Python)
  • IV generazione (anni ‘80): linguaggi per specifici ambiti applicativi (Macro Word/Excel, SQL)
  • V generazione (anni ‘90): i linguaggi sviluppati in progetti di Intelligenza Artificiale (Lisp) in cui si sono incorporate alcune tecniche di ragionamento deduttivo. Appartengono ad un livello di classificazione dei programmi sempre più distante dall’hardware I linguaggi di alto livello Sono i linguaggi di terza generazione, le istruzioni esprimono una serie di azioni ed il programma prima di essere eseguito deve essere tradotto il linguaggio macchina (traduttore). Il programmatore può astrarre dai dettagli legati all’architettura ed esprimere i propri algoritmi in modo simbolico, sono indipendenti dalla macchina (astrazione). I liguaggi di II/III generazione: I TRADUTTORI sono programmi particolari che provvedono a convertire il codice di programmi scritti in un dato linguaggio di programmazione (sorgenti), nella corrispondente rappresentazione il linguaggio macchina (eseguibili). Ci sono due tipi di traduttori:
  1. Compilatori : accettano in ingresso l’intero programma e producono in uscita la rappresentazione dell’intero programma il linguaggio macchina (Python linguaggio compilato)
  2. Interpreti : traducono ed eseguono direttamente ciascuna istruzione del programma sorgente, istruzione per istruzione, sono più veloci. La compilazione è un’applicazione più veloce e va bene per i prodotti commerciali a larga diffusione, ha bisogno di maggior lavoro nel processo di messa a punto e manutenzione; L’interpretazione invece consente tempi di sviluppo più contenuti, produce programmi meno efficienti.  Un compilatore è un programma che scrive un altro programma  Un interprete trasforma il codice in un programma eseguibile

I SOFTWARE (o programmi) divisi in:

  1. Di sistema, per far funzionare la macchina e utilizzare i software applicativi (bios, sistema operativo, driver che servono per utilizzare i dispositivi terzi, esempio un driver per collegare la stampante, utility ovvero i programmi di servizio come gli antivirus, CONTR-C/CONTROL-V…
  2. Applicativi, nei telefoni praticamente sono le APP (office, whatsapp, gmail, web) Basi del software
  • Algoritmo: sequenza precisa e non ambigua di passi (esegue alcuni compiti e termina, è basato su operazioni primitive e descrive una computazione indipendente dall’implementazione)
  • Linguaggio di programmazione: sintassi (o grammatica) e semantica
  • Programma : algoritmo tradotto in un linguaggio di programmazione
  • Compilatori, interpreti: programmi che convertono il codice scritto in un linguaggio di alto livello in uno di basso livello (linguaggio macchina).
  • Librerie e componenti: programmi scritti da altri, pronti per essere usati in nuovi programmi. Un software è organizzato in layers, ogni livello presenta un’interfaccia utilizzabile dai livelli superiori ed è definita una piattaforma per raggiungere più servizi verso l’alto, isola il livello superiore da come viene Implementato il livello inferiore, spesso chiamato ‘Application

-> per mobile

  1. Palm OS/ Symbian OS: Vecchi sistemi operativi per i computer palmari e gli smartphone
  2. WindowsMobile: Sistema operativo mobile di Microsoft a progetto chiuso
  3. IoS: Sistema operativo per iPhone e iPad è prodotto dalla Apple
  4. Android: È il nuovo sistema operativo per i cellulari smartphone e tablet proposto da Google e basato su Linux. Gestione dei file: i nomi dei file servono alla loro esatta identificazione, i percosi sono invece necessari per ritrovare i file nei vari supporti di memorizzazione. Le cartelle rappresentano le divisioni logiche dei supporti di meorizzazione, senza esse di avrebbe a che fare con un unico immenso spazio. HARD DISK È Il disposito di memorizzazione di massa più diffuso, un hard disk (o disco rigido) è un dispositivo di archiviazione utilizzato per salvare dati digitali, come file, programmi e sistemi operativi. Funziona tramite dischi magnetici rotanti all’interno, su cui un braccio meccanico scrive e legge i dati. Ci sono due principali tipi di hard disk:
  • HDD (Hard Disk Drive): utilizza componenti meccanici, quindi è più lento e meno resistente agli urti.
  • SSD (Solid State Drive): non ha parti mobili, essendo basato su memoria flash, ed è molto più veloce e affidabile. L’hard disk è una componente fondamentale per il funzionamento di un computer, perché consente di conservare i dati anche quando il dispositivo è spento. La formattazione è un processo legato all’hard disk che prepara il disco per l’archiviazione dei dati. Durante questa operazione, viene creato un file system, che organizza lo spazio disponibile sull’hard disk in modo che il sistema operativo possa leggere e scrivere dati correttamente. Ci sono due tipi principali di formattazione:
  • Formattazione a basso livello: suddivide fisicamente il disco in settori e tracce, avviene di solito in fabbrica.
  • Formattazione ad alto livello: crea il file system (ad esempio, FAT32, NTFS, exFAT) e cancella i dati presenti, rendendo il disco pronto per l’uso. La formattazione di un hard disk funziona seguendo questi passaggi principali:
  1. Cancellazione dei dati: Il processo elimina i dati esistenti (anche se nella maggior parte dei casi sono solo “nascosti” e recuperabili con strumenti specializzati).
  2. Creazione del file system: Viene impostata una struttura che permette al sistema operativo di organizzare i file e le cartelle. Alcuni esempi di file system sono NTFS (Windows), APFS (Mac) e EXT4 (Linux).
  1. Test e suddivisione dello spazio: Il disco viene diviso in settori logici e viene verificato che siano funzionanti, contrassegnando eventuali settori danneggiati come inutilizzabili. Una volta completata, l’hard disk è pronto per archiviare dati in modo ordinato e accessibile. La frammentazione e la deframmentazione non avvengono durante la formattazione, ma riguardano l’organizzazione dei dati sull’hard disk nel corso del suo utilizzo. Frammentazione
  • Quando si salvano, modificano o eliminano file su un hard disk (soprattutto HDD), lo spazio disponibile viene occupato in modo disordinato. I dati di un singolo file possono essere sparsi su più settori fisicamente lontani tra loro sul disco.
  • Questo accade perché l’hard disk utilizza i primi spazi vuoti che trova, senza garantire che tutto il file sia scritto in sequenza.
  • La frammentazione rende più lento l’accesso ai file, poiché la testina del disco deve spostarsi frequentemente per leggere tutte le parti del file. Deframmentazione
  • La deframmentazione è un processo che riordina i dati frammentati, raggruppandoli in settori contigui sul disco.
  • Questo migliora le prestazioni, perché riduce il tempo che la testina del disco impiega a cercare le varie parti di un file.
  • È utile principalmente per gli HDD, mentre per gli SSD non è necessaria (anzi, potrebbe ridurne la durata). In sintesi, la frammentazione è un problema di disorganizzazione dei dati, mentre la deframmentazione è una soluzione che li riordina per migliorare la velocità e l’efficienza del disco.