



































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti del corso di informatica (corso base + parte turistica) per lingue e culture per il turismo
Tipologia: Appunti
1 / 75
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




































































INTRODUZIONE E CONCETTI DI BASE
Effettuare calcoli a mente o a mano è un’attività noiosa e incline all’errore. L'uomo ha sempre cercato di automatizzare dei processi di calcolo. Il primo antenato del computer è l’ abaco , la prima “macchina da calcolo” nota. I primi abachi risalgono al V millennio a.C. È un esempio rozzo di macchina calcolatrice con dei grossi limiti. I numeri che si vogliono sommare sono dati da input. La logica e la correttezza dell’operazione dipendono unicamente dall’utente. Per arrivare al primo vero step innovativo si deve risalire fino al XVII secolo d.C. e all’invenzione della Pascalina. Non è più l’utente ad avere la logica dell’operazione ma la macchina, una sorta di calcolatrice che permetteva di eseguire solo somme e differenze. La logica quindi è dentro la macchina. Moltiplicazioni e divisioni potevano essere calcolate mediante ripetizioni di addizioni e sottrazioni ma in questo caso era di nuovo l’utente ad avere il controllo. Si può provare ad affrontare il problema modificando la macchina per fare moltiplicazioni e divisioni, ma così se ne creano altri: radice quadrata, logaritmo… Il vero problema è che la logica che governa le operazioni è “cablata” nella macchina calcolatrice. La soluzione è di trattare tale logica come parte dell’input della macchina. Qual'è la differenza tra computer e calcolatrice? Qualunque cosa sappia fare la calcolatrice, ce l’ha cablata nei suoi circuiti, esce così, sa fare solo quello, non si possono aggiungere funzioni. Il computer invece esce che sa fare un tot di cose come la calcolatrice, ma poi dando il giusto algoritmo, si possono effettuare altri calcoli o altre cose in generale: il computer è programmabile. 4 - 10 - 19 Charles Babbage introdusse nel 1840 il primo esempio di macchina di calcolo “programmabile”: la macchina analitica. Babbage era molto avanti rispetto ai suoi tempi. La tecnologia non era ancora sviluppata a sufficienza (la macchina analitica avrebbe dovuto funzionare a vapore). Inoltre l’esigenza di automatizzare il calcolo non era forte all’epoca. Per questi motivi le sue idee non ebbero il successo che avrebbero meritato e furono dimenticare per quasi un secolo. Le idee di Babbage vennero “riscoperte” nella prima metà del ‘900 da Alan Turing e da John von Neumann. Alan Turing fu uno dei padri dell’Informatica, le sue numerose idee/congetture sono attuali anche oggi e introdusse la “ macchina di Turing ”. Questa macchina è un modello astratto del calcolatore, Turing riprese l’idea di Babbage. Si tratta di un “esperimento mentale”, non una macchina effettivamente costruibile. Questa macchina venne pensata perché può calcolare tutto ciò che è calcolabile in modo automatico. Alla base del suo funzionamento c’è la stessa idea alla base della macchina analitica di Babbage. John von Neumann ha descritto un calcolatore effettivamente costruibile. È ancora oggi il modello su cui si basano i computer moderni.
Informatica = informazione automatica Insieme di processi e tecnologie che permettono creazione, raccolta, elaborazione, immagazzinamento e diffusione dell’informazione. Al centro c’è l’informazione. Le tecnologie informatiche hanno 3 funzioni principali: 1 - elaborare dati per ottenere informazioni significative; 2 - mantenere le informazioni elaborate per utilizzarle in combinazione con altre come dati di un nuovo processo di elaborazione (ho delle buone informazioni, le salvo, magari mi servono per altri problemi); 3 - organizzare le informazioni in una nuova forma per renderle più comprensibili, più interessanti o più utili. Il calcolatore, il computer NON “inventa” nuove informazioni.
Input → la fase di input consiste nell'immissione di dati nel computer. I dispositivi di input più comuni sono la tastiera, lo scanner, il mouse, il microfono e la telecamera. I dati da inserire possono essere testi, numeri, immagini o suoni. Elaborazione → una volta inseriti nel computer i dati possono essere elaborati; ad esempio, si può paragonare, classificare o sommare numeri, formattare un testo o creare immagini e suoni. Output → per vedere (o ascoltare) il risultato dell'elaborazione sono necessari dei dispositivi di output come lo schermo, la stampante e gli altoparlanti. Le informazioni ottenute possono anche essere sottoposte ad un'ulteriore elaborazione, ad esempio per integrare i suoni e le immagini in una presentazione multimediale. Memorizzazione → i dati e i programmi al momento non utilizzati vengono memorizzati su appositi nastri o dischi in modo da poter essere recuperati in qualsiasi momento. Distribuzione → i dati possono essere stampati e distribuiti, oppure trasmessi direttamente da un computer all'altro; un esempio è l'invio di documenti come allegati della posta elettronica o attraverso un sito Web.
I computer non elaborano solo i numeri, ma anche altri tipi di dati (testi, immagini, suoni, filmati…) È sufficiente che l’informazione sia rappresentabile in modo DIGITALE. All’interno della macchina abbiamo informazioni digitali.
Il segnale BINARIO è un segnale discreto su due valori, un elemento di base per rappresentare le informazioni. BIT = Binary digIT (cifra binaria)
Un bit può assumere due valori (0 e 1), quindi con un bit possiamo rappresentare due informazioni. Es: sì/no, on/off, su/giù, vero/falso, superato/non superato
Ci sono un sacco di fenomeni che servono a realizzare gli elementi del computer che hanno delle caratteristiche (es. videocassette: supporto magnetico su cui viene impressa una polarizzazione). Il computer ha interruttori e circuiti pilotati da questi interruttori che hanno varie funzioni. A seconda della sequenza degli interruttori (acceso-spento) accedo a varie funzioni. Il computer ha un sacco di risorse ma sono FINITE (non posso rappresentare segnali analogici che sono infiniti, o il numero 2,3 periodico). Il computer deve approssimare, non può fare altrimenti. I segnali analogici sono un insieme continuo di valori e sono sensibili alle interferenze: quando ci sono più segnali tutti questi valori tendono a fare pasticci. Digitale = la luce la accendo o la spengo → ci sono due valori, 0 e 1, quindi si parla di un insieme discreto di valori che rende tutto più semplice. Posso facilmente riprodurlo senza errori.
Abbiamo discusso di rappresentazione binaria di informazioni "generali". Ora vedremo come rappresentare tramite bit numeri, testi, immagini, filmati, suoni.
NUMERO: concetto che rappresenta una quantità NUMERALE: simbolo che rappresenta una quantità (es: 6, sei, VI, six sono numerali che rappresentano tutti lo stesso numero) I numerali differiscono dai numeri come le parole differiscono dai concetti che rappresentano.
Notazione posizionale : la posizione di una cifra in un numerale indica il suo peso in potenze di 2. I pesi sono: 2⁰ = 1 (posizione 0) 2¹ = 2 (posizione 1) 2² = 4 (posizione 2) 8 lampadine. la 2 e la 4 sono accese = 6 Rappresentazione binaria: Il numerale 10010011 con base 2 in notazione binaria (o in base 2) rappresenta la quantità: 10010011 con base 2 (numerale) = 1 x 2⁷ + 0 x 2⁶ …. + 1 x 2⁰ = 128 + 0 + 0 + 16 + 0 + 0 + 2 + 1 = 147 (numero) Numeri decimali e binari 0 ----- 0 1 ----- 1 2 ----- 1 0 3 ----- 1 1 4 ----- 1 0 0 5 ----- 1 0 1 6 ----- 1 1 0 7 ----- 1 1 1 8 ----- 1 0 0 0 9 ----- 1 0 0 1 10 ---- 1 0 1 0 → 1=8, 0=4, 1=2, 0=1 → ho acceso due interruttori (quelli con 1), quindi ho 8+2= 2, 4 e 8 hanno la stessa struttura (1 seguito da 0) perché sono multipli di 2. È come un sistema con dei contagiri, c'è una rotellina che va più veloce (va da 0 a 9) e quando finisce il suo giro, fa scattare l'altro contagiri. 01 02 03 04 05 06 07 08 09 Ora il 9 fa scattare l'altro contagiri per andare avanti con l'elenco numerico 10 11 12 etc fino a quando arriva a 19 e fa scattare l'altro contagiri su 20, 21, 22… Con il sistema binario il contagiri cambia più rapidamente: 00 01 poi scatta: 10 11
Il numero più grande esprimibile con un dato numero di cifre (decimali, binarie…) NON coincide con il numero di informazioni rappresentabili. Max numero rappresentabile col sistema decimale: 999 (sarebbe 1000 - 1)
Se tutti gli altri quadratini fossero 0 il risultato sarebbe 256. Il numero 341 è dispari, e i numeri dispari finiscono con 1 , e inserendo questo valore arriviamo a 257 (metto l'uno nell'ultima casella a dx). Nella seconda casella metto 0 perché sennò 256 + 128 sarebbe più grande di 341. Nella terza casella che vale 64 metto 1, così prendo il valore. Nella quarta casella metto 0 Nella quinta casella con valore 16 mettiamo 1, in corrispondenza di 4 mettiamo 1 La stringa binaria finale sarà: 1 0 1 0 1 0 1 0 1
CODICE ASCII → convenzione, a una determinata sequenza di bit corrisponde un carattere. Per rappresentare i caratteri, occorre stabilire una convenzione per la corrispondenza tra configurazione di bit e carattere. Usa i 7 bit meno significativi di un byte (2⁷ = 128 diversi caratteri rappresentabili) Rappresenta, oltre ad altri caratteri, le lettere maiuscole e minuscole, i segni di punteggiatura, i numeri, i caratteri speciali, lo spazio. 11 - 10 - 19 I caratteri sono disposti in ordine di numero , ma è solo una convenzione. L'ordine alfabetico fa riferimento a questa tabella (ecco perché troviamo prima le parole che iniziano con una lettera maiuscola e poi quelle che iniziano con una lettera minuscola). Inoltre i numeri vengono prima rispetto alle lettere (si può osservare questo fenomeno nella playlist dell'mp3). Nella tabella non sono presenti le vocali accentate o le lettere delle altre lingue (es. la n con la tilde). Con 7 bit posso rappresentare solo 128 informazioni. Come risolvere questo problema? Uso il CODICE ASCII ESTESO. In questo caso abbiamo 8 bit e quindi 256 caratteri, 128 dei quali sono quelli di prima. Gli altri 128 sono dati dall'aggiunta di uno 0 finale.
A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri: si divide la sequenza in gruppi di 8 bit (ogni gruppo è un byte).
Se chiediamo al computer di ordinare alfabeticamente (lessicograficamente) le stringhe (sequenze di caratteri) "3" e "20431", le metterà in quest'ordine:
Perché 2 viene prima di 3, anche se è seguito da altri numeri → si tratta di codici non di numeri 256 caratteri dell'ASCII esteso sono insufficienti per alcuni sistemi di scrittura (per esempio quello cinese o giapponese). Quindi non esiste un unico ASCII esteso, ma uno o più diverso per ogni lingua. Soluzione: definire uno standard (cioè una convenzione) che utilizzi più bit comprenda tutti i sistemi di scrittura
Due standard (per i nostri fini) equivalenti Coprono (quasi) tutti i sistemi di scrittura (e le lingue) del mondo. Vengono utilizzati fino a 4 byte per ogni carattere (glifo). 8x4 bit = 32 bit per ogni carattere 2³² (oltre 4 miliardi) possibili caratteri rappresentabili Attualmente rappresentati oltre 98000 caratteri. UTF (Unicode Transformation Format) definisce come codificare il numero di un carattere Unicode come sequenza di bit. UTF- 8 : più efficiente, occupa poco spazio ma ci sono più scaglioni
Vi sono varie tecniche utilizzate per memorizzare in modo digitale un'immagine, e poi elaborarla. Processo di digitalizzazione: sequenza di 0 e 1 tramite una convenzione Per semplificare, immaginiamo di dover codificare un'immagine in bianco e nero (dual tone, con soli due colori). Si pone una griglia sopra la immagini, righe e colonne poste a una distanza costante tra loro Es. 4 righe e 7 colonne Come viene codificata? Dobbiamo arrivare a una serie di bit. Ogni sezione di griglia è un pixel (picture element) = c'è una prevalenza di immagine (1) o l'immagine non c'è (0)? Più sono i pixel e più e migliore la qualità dell'immagine. I pixel li leggo da sinistra a destra, dal basso verso l'alto (per convenzione)→ così ottengo la sequenza di bit che rappresenta la figura. Non sempre il contorno della figura coincide con le linee della griglia: digitalizzando un'immagine si ha sempre un' approssimazione dell'immagine stessa.
La sequenza di bit 01101001 rappresenta un numero, un testo, un'immagine o un suono? Impossibile dirlo! Una sequenza di bit non ha significato di per sé. Un metadato (ad es. il formato del file) deve indicare cosa si sta rappresentando. La sequenza di prima potrebbe essere:
La ram al suo interno ha programmi e dati per l'esecuzione dei programmi stessi. RAM sta per Random Access Memory o memoria principale (principale perché è posta sulla scheda madre insieme al processore).
Random Access Memory (RAM), memoria ad accesso casuale. Perché si chiama "ad accesso casuale"? 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" (casuale) indica proprio il fatto che non vi sono differenze nell'accesso alle varie celle della memoria
Stesse proprietà della RAM, ma:
L'esecuzione (passo execute) comporta l'invio di comando opportuni all'unità relativa:
OUT 3, Acc, che effettua l'output del valore contenuto nel registro accumulatore verso il dispositivo 3 (per es. la stampante), cioè stampa il carattere 4 Ogni istruzione viene eseguita in un ciclo di fetch-decode-execute 1)il registro PC contiene l'indirizzo 5, quindi viene letta da RAM l'istruzione all'indirizzo 5 2)e memorizzata nel registro IR 3)La Control Unit incrementa l'indirizzo contenuto nel registro PC in modo da eseguire in seguito l'istruzione eccessiva 4)La Control Unit decodifica l'istruzione ADD 48, 5)... e, dato che si tratta di un'operazione aritmetica, dà comando alla Arithmetic Logic Unit di eseguire l'istruzione ADD 48, 6)La ALU memorizza il risultato nel registro generico Accumulatore 7)Il registro PC contiene l'indirizzo 6, quindi viene letta da RAM L'istruzione all'indirizzo 6 8)e memorizzata nel registro IR