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 Generale 1 - Appunti, Appunti di Elementi di Informatica

Appunti per esame di informatica generale 1

Tipologia: Appunti

2020/2021

Caricato il 03/11/2022

Mozart0123468y686
Mozart0123468y686 🇮🇹

4.2

(6)

8 documenti

1 / 15

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
LA RAPPRESENTAZIONE DELLE INFORMAZIONI
I computer non elaborano solamente numeri, infatti possono elaborare anche testi, immagini, suoni,
filmati... Gli unici simboli che utilizza sono lo 0 e l’1 (usa il linguaggio binario per creare altri simboli).
Il segnale binario è un suono discreto su due valori (si chiama bit per indicare Binary Git).
Perché il sistema binario? Perché è semplice e permette di rappresentare quasi tutte le
informazioni.
Come viene realizzato un bit?
Un bit può assumere due valori (0,1) e con un bit possiamo rappresentare due informazioni (es.
Si/no; on/off; su/giù; vero/falso. In questo caso associamo il valore di un bit con un’informazione (es:
0=no, 1=si; 0=giù, 1=su; 0=off, 1=on; 0=falso, 1=vero).
Se invece voglio rappresentare più informazioni non utilizzo un bit solo ma possiamo usare più bit.
Come fare per rappresentare più di due informazioni usando i bit? Dobbiamo combinare più bit per
rappresentare ogni informazione (es: due bit possono essere due informazioni: 01, 11, 00, 10).
Quante informazioni possiamo rappresentare con un determinato numero di bit? Con un bit ho due
combinazioni (0,1), con due bit ho 4 combinazioni (00, 01, 10, 11), con tre bit ho 8 combinazioni.
!! Con N bit si rappresentano 2 elevato N di informazioni oppure possiamo ogni volta che
aggiungiamo un bit moltiplicare il numero di combinazioni precedenti X2 e otteniamo le
combinazioni di quel nuovo bit
Se noi abbiamo K informazioni, di quanti bit abbiamo bisogno per rappresentarle (procedimento
inverso)? Stabilisco una convenzione; dobbiamo utilizzare un bit sufficiente per esprimerle tutte, per
cui dobbiamo scegliere N in modo che 2 elevato a N è uguale o maggiore a K.
Es. Per rappresentare 61 informazioni diverse bisogno usare N bit tali che 2 elevato a N è uguale o
maggiore a 61. 5 bit non sono sufficienti perché verrebbe 32, pertanto dobbiamo utilizzare 6 bit che
fanno 64 bit.
Inoltre, è stato attribuito un significato particolare ai gruppi di 8 bit, che formano un byte. Il byte
viene utilizzato, insieme al bit, come unità di misura per esprimere la capacità della memoria, la
potenza di un calcolatore, la velocità di trasmissione di una linea.
Rappresentazione dei numeri
Il numero è un concetto che rappresenta una quantità, il numerale è il simbolo che rappresenta una
quantità.
Per rappresentare i numeri, il computer usa un sistema binario con base 2.
(NON PER ESERCIZI) Se io voglio esprimere la cifra 245 posso: scrivere 2 volte 10alla2, 4 volte 10alla1,
5 volte 10alla0; il computer fa la stessa cosa, ma, al posto di scrivere 10, devo mettere come base 2;
esempio se voglio scrivere 101 con la notazione del computer sarà: 1 volte 2alla2, 0 volte 2alla1, 1
volta 2alla0.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica Informatica Generale 1 - Appunti e più Appunti in PDF di Elementi di Informatica solo su Docsity!

LA RAPPRESENTAZIONE DELLE INFORMAZIONI

I computer non elaborano solamente numeri, infatti possono elaborare anche testi, immagini, suoni, filmati... Gli unici simboli che utilizza sono lo 0 e l’ 1 (usa il linguaggio binario per creare altri simboli). Il segnale binario è un suono discreto su due valori (si chiama bit per indicare Binary Git). Perché il sistema binario? Perché è semplice e permette di rappresentare quasi tutte le informazioni. Come viene realizzato un bit? Un bit può assumere due valori (0,1) e con un bit possiamo rappresentare due informazioni (es. Si/no; on/off; su/giù; vero/falso. In questo caso associamo il valore di un bit con un’informazione (es: 0=no, 1=si; 0=giù, 1=su; 0=off, 1=on; 0=falso, 1=vero). Se invece voglio rappresentare più informazioni non utilizzo un bit solo ma possiamo usare più bit. Come fare per rappresentare più di due informazioni usando i bit? Dobbiamo combinare più bit per rappresentare ogni informazione (es: due bit possono essere due informazioni: 01, 11, 00, 10). Quante informazioni possiamo rappresentare con un determinato numero di bit? Con un bit ho due combinazioni (0,1), con due bit ho 4 combinazioni (00, 01, 10, 11), con tre bit ho 8 combinazioni. !! Con N bit si rappresentano 2 elevato N di informazioni oppure possiamo ogni volta che aggiungiamo un bit moltiplicare il numero di combinazioni precedenti X2 e otteniamo le combinazioni di quel nuovo bit Se noi abbiamo K informazioni, di quanti bit abbiamo bisogno per rappresentarle (procedimento inverso)? Stabilisco una convenzione; dobbiamo utilizzare un bit sufficiente per esprimerle tutte, per cui dobbiamo scegliere N in modo che 2 elevato a N è uguale o maggiore a K. Es. Per rappresentare 61 informazioni diverse bisogno usare N bit tali che 2 elevato a N è uguale o maggiore a 61. 5 bit non sono sufficienti perché verrebbe 32, pertanto dobbiamo utilizzare 6 bit che fanno 64 bit. Inoltre, è stato attribuito un significato particolare ai gruppi di 8 bit, che formano un byte. Il byte viene utilizzato, insieme al bit, come unità di misura per esprimere la capacità della memoria, la potenza di un calcolatore, la velocità di trasmissione di una linea.

Rappresentazione dei numeri

Il numero è un concetto che rappresenta una quantità, il numerale è il simbolo che rappresenta una quantità. Per rappresentare i numeri, il computer usa un sistema binario con base 2. (NON PER ESERCIZI) Se io voglio esprimere la cifra 245 posso: scrivere 2 volte 10alla2, 4 volte 10alla1, 5 volte 10alla0; il computer fa la stessa cosa, ma, al posto di scrivere 10, devo mettere come base 2; esempio se voglio scrivere 101 con la notazione del computer sarà: 1 volte 2alla2, 0 volte 2alla1, 1 volta 2alla0.

I numeri si ottengono dalla somma delle potenze di 2 (tutti i numeri pari terminano con lo 0, mentre quelli dispari con 1). Tutte le potenze di 2 hanno 1 seguito da N. 0 (es. 2= 10; 4= 100; 8= 1000; 16= 10000). Quelle dopo aggiungo sempre 1, poi 10 (togliendo il 10) e poi aggiungo 1 al 10. Il numero più grande rappresentabile non coincide con il numero di informazioni rappresentabili. (per esempio, con 2 cifre, 2 alla 2, posso rappresentare 0,1,2,3 - > il massimo numero rappresentabile è 2 alla N – 1 , se sono tutti 1 o 0). Esempio con 8 cifre: 11111111 con pedice 2 = 255 = 2 alla 8 – 1 Se noi stabiliamo il numero di cifre con cui si rappresentano i numeri, si definisce anche il massimo numero rappresentabile (es: con 16 bit = 2 alla 16 – 1 = 65535) Numerale diverso da numero. Esercizio conversione di un numerale in base 2 a base 10 (basta moltiplicare ogni bit per il peso e sommare). - 11010 pedice 2= 1x2alla4 + 1x2alla3 + 0x2allaseconda + 1x2alla1 + 0x 2alla0 (16 + 8 + 0+ 2+ 0 = 26). Esercizio conversione da base 10 a base 2: dobbiamo prendere cifra per cifra e capire se ci serve 0 o

Numerale 6 pedice 10: vado individuare il numero minimo di bit che mi servono per codificare il mio numero (in questo caso 3), quello più a sinistra è sempre 1, poi vedere se è pari o dispari (mettere quindi 0 se è pari o 1 se è dispari). Una volta trovato le due cifre laterali trovo quelle in mezzo e

La soluzione è quella di definire uno standard che utilizzi più bit e che comprende tutti i sistemi di scrittura ovvero l’Unicode. L'Unicode sono due standard e vengono utilizzati fino a 4 byte per ogni carattere: 8x4 = 32 bit per ogni carattere quindi 2 alla 32 possibili caratteri rappresentabili. Attualmente sono rappresentati oltre 98000 caratteri. Utf-8 in cui alcuni caratteri sono codificati con 8 bit, altri con 16 bit, altri (pochi) con 32 bit. È compatibile con Ascii, infatti i caratteri codificati con 8 bit coincidono con i caratteri Ascii. Utf-16 prevede che alcuni caratteri sono codificati con 16 bit, altri con 32 (pochi) bit.

Rappresentazione delle immagini

Le immagini non sono altro che una serie di bit, vi sono varie tecniche utilizzate per memorizzare in modo digitale un’immagine. La prima è quella di codificare un’immagine in bianco e nero. I quadrati formati dalle linee si chiamano pixel. A ciascuno pixel viene attribuito un bit e dobbiamo stabilire una convenzione che stabilisce che 0 = bianco e 1= nero. Per avere una sequenza di bit, in quale ordine leggere i pixel? Occorre una convenzione da sinistra a destra, e dal basso verso l’alto

Come avere un’immagine più fedele? Aumentando la risoluzione, cioè il numero dei pixel (e quindi rimpiccioliamo i quadratini della griglia di campionamento). Piu è alta la risoluzione, più l'immagine è fedele e più lo spazio è occupato. La rappresentazione di un’immagine mediante la codifica dei pixel viene chiamata codifica bitmap. Con un solo bit per pixel si possono codificare dolo due colori (tipicamente bianco e nero); per codificare più informazioni, dobbiamo usare più bit. Per arrivare ai colori usiamo truecolor o RGB: rosso, verde e blu ovvero i colori primari per le stampanti; gli altri colori vengono ottenuti sommando i tre colori primari. Questi tre colori primari hanno 256 livelli (8 bit: 2 alla 8). I colori rappresentabili sono 3 byte per ogni pixel ovvero 2 alla 24 colori = 16777215. Come si calcola l’occupazione delle immagini a colori?

Vi sono tre elementi: la macchina centrale (composto da CPU e RAM), i dispositivi di input/output (sono elementi esterni per l'emissione dei dati da parte dell’utilizzatore o per la comunicazione verso l’utilizzatore dei risultati dal computer) e la memoria secondaria (riguarda la memoria, anche eventualmente esterna, che permettono di memorizzare in maniera persistente, anche quindi senza la connessione, le informazioni). Il calcolatore, o meglio chiamato hardware ha diversi elementi con diverse funzioni. Il funzionamento ad alto livello Analizziamo i vari componenti RAM (random access memory): qualunque sia la zona della memoria a cui vogliamo accedere impieghiamo lo stesso tempo. Insieme alla CPU è una componente fondamentale del calcolatore e permette di memorizzare sia il programma sia che i dati; fisicamente è formata da componenti elettronici (transistor, resistenze, condensatori) miniaturizzati.

Ogni unità elementare può trovarsi a due diversi livelli di tensione elettrica (o carica del condensatore): ecco il correspettivo fisico del bit. La RAM è strutturata in una sequenza di celle (o locazioni) di memoria. Ogni cella memorizza un byte. Alle celle si accede attraverso degli indirizzi, infatti, le celle sono numerate in sequenza (indirizzi) Quali operazioni si possono compiere sulla memoria? La lettura del contenuto di una cella o la scrittura in una cella. Per leggere e scrivere in una cella è necessario conoscere l’indirizzo di una cella. Specificando l’indirizzo di una cella, la CPU è in grado di leggere e/o modificare il valore del byte memorizzato in quella cella. La memoria non si può espandere La RAM si chiama ad accesso casuale perché: - si può accedere direttamente alle varie celle, una volta noto il loro indirizzo; - il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella sequenza; - il termine random indica proprio il fatto che non vi sono differenze nell’accesso alle varie celle della memoria. La RAM è veloce (il tempo di lettura/scrittura di una cella è compreso in media tra 5 e 30 nanosecondi), è volatile (formata da componenti elettronici, se viene tolta l’alimentazione anche per un breve periodo di tempo tutto ciò che contiene viene perso) ed è relativamente costosa. La ROM (read-only memory), memoria in sola lettura. Non può essere modificativa (a meno che non sia un tipo particolare, EPROM), non è volatile ed è veloce quasi quanto la RAM. Solitamente è usata per memorizzare programmi e dati necessari all'avvio dell’elaboratore (programmi di bootstrap, configurazione del sistema). La Memoria Cache (memoria di lettura e scrittura) è una memoria che ha caratteristiche analoghe alla RAM (è volatile), ma:

  • È più veloce della RAM (ma anche più piccola e costosa)
  • È localizzata tra la CPU e la RAM
  • Memorizza i dati di uso più frequente, evitando alla CPU di doverli recuperare tutte le volte dalla RAM
  • Influisce pesantemente sulle prestazioni e sul costo della CPU Le dimensioni tipiche sono 512 KB, 1 MB, 2 MB La CPU, l’elemento fondamentale perché esegue tutto ciò che fa il computer. Esegue i programmi scritti in linguaggio macchina, tutti i programmi (i programmi Internamente sono

La memoria secondaria (hard disk) è quella memoria aggiuntiva rispetto alla RAM e serve per superare i limiti della RAM stessa (il fatto che è volatile, che è poco capiente e costosa). La memoria secondaria è così capiente, relativamente poco costosa, non volatile, ma lenta! La CPU può eseguire esclusivamente programmi che risiedono in memoria principale, i programmi e i dati risiedono in memoria secondaria; perciò, devono essere copiati in memoria principale. Quindi, quando si esegue un programma, il sistema operativo lo copia da memoria secondaria in RAM: l’operazione si chiama loading o caricamento.

La memoria secondaria è composta da: supporti di memorizzazione ovvero il componente fisico in cui vengono immagazzinati i dati e i dispositivi di memorizzazione che leggono/scrivono dati dal/sul supporto di memorizzazione. La memoria secondaria, anche se hanno lo stesso fine, hanno tecnologie diverse (a differenza della RAM che è fatta nello stesso modo) e fanno riferimento a fenomeni fisici diversi che viene sfruttato (es: tecnologie magnetiche, tecnologie ottiche, tecnologie magnetiche-ottiche, tecnologie allo stato solido). Il bus è lo strumento che serve a collegare tra di loro i vari componimenti del sistema. Fisicamente, è un insieme di collegamenti in rame IL SOFTWARE E IL SISTEMA OPERATIVO L'hardware da solo è un insieme di ferro, plastica e silicio e non è sufficiente per il funzionamento dell’elaboratore. Occorre utilizzare il software: un insieme di programmi che permettono di trasformare un insieme di circuiti elettrici in un oggetto in grado di svolgere funzioni di varia natura. I computer sono programmabili: possono svolgere compiti diversi in base a istruzioni contenute nei programmi. Il sistema operativo si divide tra il software di base e il software applicativo. Il software applicativo sono le app, dei programmi con il fine ben preciso di risolvere un problema specifico. Il software di base (coincide con il sistema operativo) è sempre un software che non ha un fine specifico ma che è fondamentale per far funzionare tutte le altre applicazioni. Serve per gestire efficientemente il computer e le sue periferiche e creare un ambiente virtuale per facilitare l’interazione uomo- macchina. Quali sono le funzioni svolte dal sistema operativo?

  1. Far sì che la macchina si accenda (accensione e configurazione della macchina: bootstrap)
  2. La gestione del processore
  3. La gestione della memoria (principale e virtuale)
  4. Linguaggio ad alto livello per l’interazione con l’utente (crea una macchina virtuale che permette di interagire bene tra la macchina fisica e l’utente)
  5. Gestione e accesso alle informazioni su memoria secondaria (file system)
  6. Gestione e uso ottimale delle risorse input/output (dischi, stampanti...)
  7. Supporto per la comunicazione tra elaboratori
  8. Supporto per i programmi applicativi (installazione, accesso alle risorse di sistema)
  1. Come eseguire programmi e usare dati più grandi della memoria principale (memoria fisica)? Il sistema operativo gestisce una memoria virtuale per dare l’impressione ai programmi di credere di avere una quantità più grande di quella che effettivamente si ha. Non è necessario che tutti i programmi stiano in memoria centrale e in esecuzione; infatti, le parti dei programmi meno usate vengono “spostate” su hard disk. Le pagine vengono riportate in memoria quando servono nuovamente, eventualmente spostandone altre su disco. Il sistema operativo traduce automaticamente gli indirizzi virtuali (usati dalle applicazioni) in indirizzi fisici. Cosa succede si si utilizza frequentemente una quantità di memoria virtuale molto piu grande della memoria fisica? Si verifica il fenomeno thrashing (dimenarsi) in cui il sistema operativo impiega piu tempo a trasferire le pagine da e su disco che a effettuare lavoro utile. L’hard disk viene utilizzato e il computer è inutilizzabile (lavora lento), e l’unica soluzione è quello di aumentare la quantità di RAM

INTRODUZIONE ALLA PROGRAMMAZIONE

Che significa programmare? Significa che la macchina sa risolvere un problema che prima non sapeva risolvere. Dato un problema, si vuole che sia il computer a risolverlo (esempio, ordinare alfabeticamente 4000 cognomi), il programmatore deve dire al computer quali operazioni eseguire per risolvere il problema. Il programmatore scrive un PROGRAMMA che, dati in INPUT dei dati, produce l’OUTPUT richiesto. Il problema computazionale è una serie di dati iniziali che vengono presi in considerazione, vengono effettuare delle operazioni su questi dati (algoritmo), l’elaboratore dei dati produce un risultato. Il programma viene eseguito dal computer. Obiettivi: − Imparare a risolvere problemi di programmazione, ossia imparare ad individuare un algoritmo da “dare in pasto” al computer (sotto forma di programma), affinché esso risolva il problema − Imparare i costrutti base del linguaggio Python al fine di scrivere programmi

Print: serve per comunicare qualcosa all’esterno; Input: prendo un elemento dall’esterno e lo metto nel computer (l’esecuzione si interrompe fino a quando qualcuno non scrive qualcosa, quando passa avanti recupera anche ciò che è stato scritto dopo). NomeUtente = input (“inserisci il nome:”) --> si interrompe fin quando non scriviamo: variabile Print (“ciao”, NomeUtente) - ---> ha scritto quindi ciò che c’era nella cellula di memoria 1: a= 25

2: b= 7 NON VA BENE

3: somma= a+b 4: print (“la somma vale” somma) NON VA BENE!! 1: a = int (input (“inserisci un numero interno: “)) Int: se voglio farci le operazioni 2: b = int (input (“inserisci un altro numero interno:” ))

3: somma = a + b VA BENE