Estratto del documento

Information technology e informatica

È la disciplina che si occupa di rappresentare ed elaborare l'informazione. Con "Information Technology" si indicano oltre all'informatica anche gli aspetti hardware e di comunicazione. Il computer elabora molte più velocemente, ma l'uomo è in grado di fare delle scelte.

Tre aspetti dell'informatica

  • Software
  • Hardware
  • Reti di interconnessione

Ogni 2 anni si dimezzano le dimensioni dei calcolatori a parità di potenza di calcolo. "Internet of Things", il "Cloud".

Algoritmi e programmi

Un algoritmo è una sequenza di passi che portano alla realizzazione di un compito. Un algoritmo scritto in un linguaggio comprensibile da un calcolatore si chiama programma. Di solito insieme ai programmi per programmare vengono forniti anche dei "linker", per collegare tra loro le varie parti del programma, e dei "debugger", per controllare il programma durante la sua esecuzione.

Linguaggi di programmazione

  • Linguaggi di programmazione che useremo: C e MatLab.
  • Programma in C: Compilatore (è un traduttore, la traduzione avviene PRIMA dell'esecuzione del programma).
  • Programma in MatLab: Interprete (la traduzione avviene DURANTE l'esecuzione del programma).

Memoria e archiviazione

File: insieme di informazioni e dati. Canale attraverso il quale passano i dati. Fisicamente è un insieme di fili (processore) INPUT. Possono essere di: Random Access Memory OUTPUT. È una memoria a breve termine, fa le elaborazioni che si svuota quando il dispositivo viene spento.

  • Mouse
  • Frequenza (Clock): indica quante volte il valore (0 o 1) cambia nell'unità di tempo
  • Tastiera
  • Display
  • Storage: memoria a lungo termine
  • GPU
  • Cache: memoria interna al processore che contiene i dati che più probabilmente verranno utilizzati successivamente

Le informazioni all'interno dei calcolatori sono codificate in codice binario, cioè in una sequenza di 0 e 1. La minima unità di informazione è il bit (binary digit). Un suo multiplo è il byte, che corrisponde a una sequenza di 8 bit. Un byte può rappresentare ben 28 (256) valori diversi (da 00000000 a 11111111). Si possono scrivere non solo numeri naturali, ma anche numeri interi, utilizzando un bit per codificare il segno, e 7 bit per la cifra.

Esiste anche un altro metodo di codifica, detta ASCII, nella quale ogni sequenza corrisponde ad un determinato carattere. È organizzata in celle, ognuna delle quali contiene una sequenza di cifre binarie che rappresentano un'informazione. Il numero di bit di una cella si chiama "parola". Es: "sistema operativo a 64 bit": vuol dire che ogni cella contiene 64 bit. Il contenuto della memoria cambia continuamente, a seconda delle informazioni che stiamo elaborando.

Unità aritmetiche e logiche

ALU: svolge operazioni aritmetiche di base (somma, sottrazione, ecc.) e operazioni logiche di base. A, B: sono dei registri, cioè dei collettori di memoria. State Register: tiene traccia del corretto funzionamento dell'ALU. Clock: gestisce la sincronizzazione. Control Unit: è quella che gestisce tutto. Tutti gli altri registri contribuiscono al corretto funzionamento dell'ALU.

  • Address Register: si occupa di andare a cercare il corretto indirizzo.
  • Data Register: contiene dati sia della memoria sia delle periferiche.
  • Program Counter: conta a che punto si è nell'esecuzione, e contiene le informazioni per la prossima informazione da eseguire.
  • Interrupt Register: permette alle periferiche di interrompere il lavoro dell'unità di elaborazione.
  • Current Instruction Register: contiene l'istruzione che si sta eseguendo.

Processo di elaborazione

Fase di Fetch: acquisizione di un'istruzione dalla memoria. La prossima informazione da eseguire si trova nel Program Counter. L'Address Register va a cercare quell'informazione nella memoria. L'informazione arriva nel Data Register. Poi viene acquisita dal Current Instruction Register che la fa eseguire. Incrementando il Program Counter di 1 si chiede la fase successiva.

Fase di Decodifica. Fase di Esecuzione vera e propria. L'operazione di caricamento di un dato dalla memoria al Data Register si chiama LOAD. L'operazione opposta si chiama STORE, cioè l'immagazzinamento del dato nella memoria.

Bus e istruzioni

Il bus è diviso in tre parti, adibite a trasferire cose diverse: dati, indirizzi, comandi. Struttura di un'istruzione. Esistono vari tipi di istruzioni:

  • Lettura/scrittura su periferiche
  • Caricamento di dati
  • Immaggazzinamento nella memoria di dati
  • Operazioni aritmetiche
  • Salto: permettono di cambiare il flusso di esecuzione di un programma

Insieme di istruzioni. Per esempio per fare una somma bisogna dire di:

  • Acquisire un primo numero e conservarlo in una cella X
  • Acquisire un secondo numero e conservarlo in un'altra cella Y
  • Caricare il contenuto di X nel registro A
  • Caricare il contenuto di Y nel registro B
  • Sommare
  • Conservare il valore che si trova in A in una cella Z
  • Stampare il valore contenuto in Z
  • Terminare l'esecuzione

La prima istruzione dal PC viene mandata all'AR, che va a cercare l'istruzione da eseguire, che viene messa nel DR; poi questa passa nel CIR, che va a prendere il dato dalla periferica (PDR), e la memorizza in una cella. Le istruzioni di salto vanno a modificare l'ordine delle istruzioni nel Program Counter. Un esempio è questo:

  • Acquisisci un numero e conservarlo in una cella di memoria X
  • Carica il valore in X nel registro A
  • Se il valore in A è pari a zero torna al punto 1
  • Stampa il valore in A
  • Termina l'esecuzione

Strategie per algoritmi complessi

Sequenza di passi che portano alla realizzazione di un compito. Esempi di algoritmi: elevamento a potenza, calcolo della rappresentazione in base due di un numero, somma di due numeri, ecc. Spesso gli algoritmi sono molto complessi, quindi bisogna attuare una serie di strategie (euristiche) per ottenere un risultato. Divide et impera: dividere un problema in problemi più piccoli, e procedere per passi. Risolvere problemi base inizialmente, e solo dopo effettuare un raffinamento.

Bisogna usare degli strumenti linguistici, partendo dal linguaggio naturale, per poi passare a diagrammi di flusso e schemi a blocchi, fino ad arrivare a linguaggi di programmazione. Un esempio è la moltiplicazione per somme ripetute: se il calcolatore non è in grado di effettuare un prodotto, gli si può far eseguire il calcolo sommando ripetutamente lo stesso numero. Il calcolatore non è in grado di fare questo, ma bisogna dirgli di fare n+n, e aggiungere n. Questo processo deve essere ripetuto m volte. Per fare ciò si può creare un contatore, che tiene traccia del numero di volte che viene eseguita un'operazione, e bisogna fare in modo che faccia riferimento al numero m.

Questo algoritmo però ha un bug: per m = 1 non funziona, perché l'algoritmo calcola subito la somma e poi confronta m con il contatore. Per ovviare a questo problema si può mettere il comando che confronta il contatore con m prima di quello che fa avvenire la somma. Un altro modo potrebbe essere partire con un valore risultato = 0, e un valore contatore = 0.

Dunque l'algoritmo finale (comprendendo anche la prima parte che individua quale dei due numeri è il maggiore) è:

  1. Acquisisci op1 (n) e op2 (m)
  2. Se op1 < op2
    1. min = op1, num = op2
    2. altrimenti min = op2, num = op1
  3. risultato = 0
  4. Se min > 0
    1. risultato = risultato + num
    2. min = min - 1
    3. torna al passo 4
  5. Stampa risultato. Il confronto con il contatore avviene prima della somma

Esplorazione di algoritmi e codifica

Istruzioni generiche. Istruzioni di acquisizione. Decisioni (x = 3; calcola il fattoriale di x; ecc.).

Ricerca di una sequenza di elementi

  • Si vogliono cercare le informazioni relative ad un particolare studente A.
  • Guarda la prima scheda.
  • È quella di A?
    • Se sì, stampa informazioni.
    • Se no, guarda la prossima scheda.

Il C ci permette di "vedere" il calcolatore in maniera più semplificata. Per esempio non dobbiamo più preoccuparci di andare a cercare le informazioni, perché è come se avessimo tutte le informazioni già nella memoria centrale. Le istruzioni sono espresse in modo più simile al linguaggio naturale. Ogni cella di memoria, chiamata "variabile", è indicata da un simbolo. Questi sono grandi vantaggi rispetto allo scrivere in linguaggio macchina. Le varie caselle dello Standard Input corrispondono a tutti i comandi che arrivano dalle periferiche (per esempio tutti i tasti premuti sulla tastiera). Invece le varie caselle dello Standard Output corrispondono ai vari comandi da dare come output (per esempio cosa proiettare sul display).

Esempi di istruzioni del linguaggio C

  • Stampa di una sequenza di caratteri (cioè una stringa): printf("ciao");
  • Si potrebbe anche scrivere: printf("%s", "ciao") (%s è un indicatore di formato e indica una stringa)
  • Stampa del valore di una variabile: printf("%d", s); Si usa questa sintassi perché una variabile è composta da due parti: la variabile, e il formato (%d vuol dire che il risultato è un intero)
  • Stampa del valore di un'espressione: printf("%d", s+25);
  • Stampa di singoli caratteri: printf("%c", 'a'); (%d vuol dire che ciò che segue è un carattere) (si usano le " per le stringhe, mentre per i caratteri basta usare le ' )
  • In realtà questo caso si può anche scrivere: printf('a')

Acquisizione di dati: scanf(&quot

Anteprima
Vedrai una selezione di 4 pagine su 41
Appunti Completi del Corso "Informatica B" Pag. 1 Appunti Completi del Corso "Informatica B" Pag. 2
Anteprima di 4 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti Completi del Corso "Informatica B" Pag. 6
Anteprima di 4 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti Completi del Corso "Informatica B" Pag. 11
1 su 41
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 F3D3R1C0_99 di informazioni apprese con la frequenza delle lezioni 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à Politecnico di Milano o del prof Di Nitto Elisabetta.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community