La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Fondamenti di Informatica

Presentazioni simili


Presentazione sul tema: "Corso di Fondamenti di Informatica"— Transcript della presentazione:

1 Corso di Fondamenti di Informatica
Macroarea di Ingegneria 2018/19 Tutor: prof. Francesco De Vincenzi

2 MatLab MATLAB: Una definizione… Permette
2/25 MATLAB: Una definizione… MatLab MATLAB (matrix laboratory) è un linguaggio di programmazione di alto livello di quarta generazione ed insieme un ambiente interattivo per il calcolo numerico, la visualizzazione e l’elaborazione di dati. Permette la manipolazione di matrici, la visualizzazione di grafici di funzioni e di dati; l’implementazione di algoritmi e la creazione di interfacce utente; l’interfacciamento con programmi scritti in altri linguaggi inclusi C, C++, Java e FORTRAN. L’analisi di dati Lo sviluppo di algoritmi La creazione di modelli ed applicazioni Possiede numerosi comandi predefiniti e funzioni matematiche che aiutano nel calcolo e nella generazione di grafici.

3 3/25 MATLAB: Interfaccia

4 1. Concetti fondamentali Dati, Codifica, Algoritmi, Linguaggi
4/25 1. Concetti fondamentali Dati, Codifica, Algoritmi, Linguaggi

5 Dati e strutture dati Un dato è un elemento caratterizzato da: un nome
5/25 Dati e strutture dati Un dato è un elemento caratterizzato da: un nome un formato un «alfabeto» un valore Esempio: Nome: Targa Formato: 2 lettere,3numeri,2 lettere Alfabeto: {A…Z,0…9} Valore: AG185NG Una struttura dati consiste di un insieme di dati organizzati secondo una struttura ben definita Esempio: Libretto di circolazione (targa, telaio, data immatricolazione…) Un dato non ha significato per l’essere umano. Esso acquista significato (diventando informazione) solo se correlata ad altri dati e perciò intrepretato.

6 Rappresentazione dei dati
6/25 Rappresentazione dei dati L’utilità di un calcolatore sta nella capacità di memorizzare i dati, elaborarli e trasmetterli. Per farlo, sfruttiamo le proprietà dei segnali. Un segnale è una grandezza fisica di varia natura variabile nel tempo Un segnale può essere elettrico, magnetico, acustico, ottico o un’onda. Un segnale «digitalizzato» viene utilizzato per rappresentare uno «stato».

7 Rappresentazione dei dati
7/25 Rappresentazione dei dati Un computer al suo interno gestisce segnali digitali a due stati, chiamati convenzionalmente «bit» zero e uno. BIT=Binary Digit (cifra binaria) Il segnale può essere elettrico (BUS interni del computer, processore), elettromagnetico (memorie), luminoso (fibre ottiche), radio (WI-FI). Quasiasi sia la sua natura fisica, viene sfruttato per rappresentare e trasmettere sequenze di bit. Combinando opportunamente sequenze di BIT possiamo rappresentare qualsiasi dato.

8 Misura dei dati 8/25 Nome Quantità BIT Misura unitaria (0/1) BYTE
KILOBYTE 1024 BYTE MEGABYTE 1024 KILOBYTE GIGABYTE 1024 MEGABYTE TERABYTE 1024 GIGABYTE PETABYTE 1024 TERABYTE EXABYTE 1024 PETABYTE ZETTABYTE 1024 EXABYTE YOTTABYTE 1024 ZETTABYTE

9 9/25 Codifica dei dati A seconda del tipo di dato da rappresentare, esiste un meccanismo di codifica universale che fa sì che su qualsiasi calcolatore una stessa sequenza di BIT abbia lo stesso significato. Una CODIFICA è una funzione di trasformazione reversibile (iniettiva) applicabile su un dominio di valori e che associa ad un valore un nuovo valore appartenente ad un altro insieme. 101 5 1010 10 13 1101

10 10/25 Spazio dei dati Quanti dati dello stesso tipo si possono codificare in binario? Dipende dal numero di bit che utilizziamo per la codifica. Con un BIT, possiamo creare due codifiche: 0 e 1 Con 2 BIT, possiamo creare quattro codifiche: 00, 01, 10 e 11 Con 3 BIT, possiamo creare 8 codifiche: 000, 001, 010, 011, 100, 101, 110, 111 Con 4 BIT, possiamo creare 16 codifiche: 0000 … 1111 Con 8 BIT, possiamo creare 256 codifiche: … In generale, con n BIT si possono creare 2n sequenze binarie differenti.

11 Codifica dei dati numerici (interi non negativi)
11/25 Codifica dei dati numerici (interi non negativi) 1 27 24 23 22 20 =157 La codifica binaria(con 0/1) di 157 è Con 1 byte(8 BIT) posso codificare tutti i numeri da 0 a 255. Con 2 byte tutti i numeri da 0 a 65535, e così via.

12 Decodifica dei dati numerici (interi non negativi)
12/25 Decodifica dei dati numerici (interi non negativi) Divido ripetutamente il numero per 2 finchè diventa zero 157 78 39 19 9 4 2 1 1 Segno il resto della divisione per 2. A fine divisione leggo il risultato dal basso verso l’alto. La codifica binaria di 157 è

13 Decodifica dei dati numerici (interi con segno)
13/25 Decodifica dei dati numerici (interi con segno) Esempio su 8 BIT: Bit del segno: 0  positivo 1  negativo 7 Bit per il valore Esempi: 1 1 Corrisponde a 6 1 1 1 Corrisponde a -6 La presenza del BIT del segno dimezza il valore massimo codificabile. Con 7 bit per il valore infatti il range dei valori va da -127 a +127

14 . . . . . . Decodifica dei dati numerici (numeri reali)
14/25 Decodifica dei dati numerici (numeri reali) Esempio su 32 BIT: Bit del segno: 0  positivo 1  negativo 8 Bit per l’esponente 23 Bit per la mantissa La formula per la decodifica è: (+/-) 1,m2 * 2(e-127) La mantissa è la codifica in binario della parte decimale di un numero che per convenzione ha la parte intera uguale a 1; L’esponente è un numero intero senza segno ad 8 bit. Sottraendo 127 si ottengono esponenti da -127 a + 128

15 Decodifica dei dati numerici (numeri reali)
15/25 Decodifica dei dati numerici (numeri reali) La formula per la decodifica è: (+/-) 1,m2 * 2(e-127) Esempio: 1 m =  Si intende 1, (altre cifre a zero non si considerano) e =  =25 quindi l'esponente è 5 Quindi il numero è +1, * 25 = ,12 = +34,510

16 Codifica di caratteri di testo
16/25 Codifica di caratteri di testo Ogni carattere ha, secondo un sistema di codifica internazionale, una sua codiifca binaria. Per esempio, il carattere C viene rappresentato come

17 Il processore e la codifica delle istruzioni
17/25 Il processore e la codifica delle istruzioni Come i dati, anche le istruzioni che un calcolatore può effettuare sono codificate in binario. Ogni processore ha un proprio SET di istruzioni, le quali compiono operazioni di basso livello (somme, prodotti, spostamenti in memoria,etc). L’attività continua di un calcolatore è quella di prelevare un flusso di dati e istruzioni dalla memoria e applicare le istruzioni ai dati. RAM PROCESSORE DATI … … NUOVI DATI … … ISTRUZIONI … … In un processore moderno ogni secondo avvengono dagli 1 ai 4 miliardi di operazioni al secondo.

18 Il modello di elaboratore «Architettura di Von Neumann» - 1945
18/25 Il modello di elaboratore «Architettura di Von Neumann» Il processore (CPU) nel dettaglio… 3tipi di «oggetti» trattati: - dati - istruzioni - indirizzi

19 Esempio di programma in linguaggio macchina e assembler
19/25 Esempio di programma in linguaggio macchina e assembler LINGUAGGIO MACCHINA LINGUAGGIO ASSEMBLER SPIEGAZIONE Etichetta Operazione Operandi Op.ne Tipo di operazione Significato START: MOV A,B Spostamento dati Copia il contenuto di B in A CMP A,12 Confronto Confronta A con 12 JZ PARTE2 Salto Se sono uguali salta a PARTE2 C,0 Metti 0 in C END Fine Fine programma PARTE2: C,1 Metti 1 in C indirizzi dati istruzioni

20 Linguaggi di programmazione: basso vs alto livello
20/25 Linguaggi di programmazione: basso vs alto livello Per rendere più semplice e più veloce lo sviluppo di applicazioni sono stati sviluppati linguaggi di livello più alto. Più vicino all’uomo Linguaggi Visuali Linguaggio Java s=new Studente(); s.setNome(«Mario»); Linguaggio C X=1; printf(«%d%»,x); Linguaggio Assembler SUM CX,DX Più vicino alla macchina Linguaggio macchina

21 Linguaggi di programmazione: compilatori vs interpreti
21/25 Alcuni linguaggi di programmazione prevedono che il codice «sorgente» venga compilato prima di essere eseguito. Altri linguaggi non hanno la compilazione: il codice sorgente viene «interpretato» istruzione per istruzione. Codice sorgente Compilazione Codice eseguibile Linguaggio macchina Linguaggio macchina generato «al volo» una istruzione lla volta Esecuzione Programma in esecuzione PRO: Maggior controllo sulla correttezza del programma. PRO: Maggiore velocità di esecuzione.

22 Linguaggi di programmazione: paradigmi
22/25 Linguaggi di programmazione: paradigmi Per «paradigma» si intende l’insieme di costrutti messi a disposizione da un linguaggio, i quali determinano un approccio alla programmazione che mette in risalto un modo (rispetto ad altri) di organizzare un programma. PARADIGMA Approccio ESEMPI DI LINGUAGGI Procedurale o imperativo Il programma è un insieme di comandi (istruzioni). L’esito del programma è dato dall’esecuzione della sequenza di istruzioni Pascal, C Funzionale Il programma è inteso come composizione di funzioni matematiche. L’esito del programma è dato dall’esecuzione del calcolo della funzione composta. ML, Lisp Logico Il programma consiste in un insieme di asserzioni di fatti logici. L’esito del programma è dato dal calcolo delle conseguenze logiche delle asserzioni. Prolog Ad oggetti Il programma è un insieme di oggetti, ovvero dati dotati di comportamenti. L’esito del programma è dato dall’interazione di questi oggetti. Java, C++

23 Problemi, Modelli, Algoritmi e Implementazione
23/25 Problemi, Modelli, Algoritmi e Implementazione Algoritmo Codice sorgente Modello Algoritmo: Chiedi b Chiedi h Calcola p=b*h Calcola area=p/2 Risultato: area int b,h; double p,a; scanf(«%d»,b); scanf(«%d»,h); p=b*h; a=p/2; printf(a); Implementazione Astrazione Definizione h b Area? b=3, h=4 INPUT b=5, h=3 Programma In esecuzione b=6, h=1 area=6 OUTPUT Esecuzione area=7,5 area=3

24 RAM Concetti base della programmazione: variabili (tipi)
24/25 Concetti base della programmazione: variabili (tipi) Per poter manipolare i dati in un programma si usano le variabili. Una variabile è uno spazio della memoria RAM caratterizzato da: Una dimensione (in byte) Una posizione nella RAM (indirizzo) Un nome Un tipo (insieme dei valori possibili) Un valore RAM prezzo 4 byte Nell’esempio: la variabile prezzo è una variabile di tipo numerico (intero) che occupa 4 byte di memoria. Il suo indirizzo di memoria è e il suo valore è 101 (cioè 5).

25 5 8 5 5 Operazioni sulle variabili (lettura/scrittura)
25/25 Operazioni sulle variabili (lettura/scrittura) Una variabile può essere vista come un contenitore che può contenere un solo dato per volta. LETTURA SCRITTURA La lettura consiste nella crezione di una copia del valore della variabile. Il valore presente non viene modificato. La scrittura consiste nella sostituzione del valore presente con un nuovo valore. 5 8 5 5 prezzo prezzo


Scaricare ppt "Corso di Fondamenti di Informatica"

Presentazioni simili


Annunci Google