La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Fondamenti di Informatica Prof. Stefano Leonardi URL: www.dis.uniroma1.it/~leon/didattica/meccanica/

Presentazioni simili


Presentazione sul tema: "1 Fondamenti di Informatica Prof. Stefano Leonardi URL: www.dis.uniroma1.it/~leon/didattica/meccanica/"— Transcript della presentazione:

1 1 Fondamenti di Informatica Prof. Stefano Leonardi URL:

2 2 Informazioni generali r Stefano Leonardi m Tel.: r Ricevimento: Roma: venerdì, ore , Dip. Informatica e Sistemistica, via Salaria 113 II piano, Roma r Tutore: Ing. Tanya Buhnik r Testo adottato: r Stephen J. Chapman, Fortran 90/95: guida alla programmazione, McGraw-Hill, 2000 r M. Cadoli, Dispensa per il Corso di Laurea in Ingegneria Aereospaziale, A.A , In distribuzione presso la libreria ``L'Universitaria'', Viale Ippocrate 99, Roma. r Copie delle Trasperenze del Corso disponibili sul sito Web del Corso

3 3 Elaborazione automatica dellinformazione r Risoluzione di problemi che richiedono la manipolazione dellinformazione attraverso lausilio di uno strumento di calcolo automatico r Occorre: m Definire un metodo di risoluzione di un problema informatico m Rappresentare il metodo di risoluzione in un linguaggio comprensibile al calcolatore m Rappresentare linformazione in modo adeguato alla sua memorizzazione e manipolazione

4 4 Esempio: Ricerca in unagenda r In unagenda personale si opera una ricerca sequenziale nella pagona corrispondente alla lettera iniziale del cognome r In un elenco telefonico si procede a partire da un punto approssimativamente vicino alla lettera iniziale, quando la pagina e stata individuata si procede con una ricerca sequenziale r Il metodo risolutivo è quindi legato al modo in cui linformazione è rappresentata

5 5 Algoritmi e Linguaggi di Programmazione r Algoritmo: Metodo risolutivo formalizzato in un insieme di passi bene definiti che permetto di risolvere il problema r Linguaggio di programmazione: permette di descrive lalgoritmo in un Programma comprensibile alla macchina r Rappresentazione delle informazioni attraverso tipi di dato rappresentabile in un linguaggio di programmazione

6 6 Problemi Informatici 1. Dati due numeri trovare il maggiore 2. Dato un elenco di nomi e numeri di telefono, trovare il nimero di telefono di un apersona 3. Data una rete stradale, determinare il cammino di lunghezza minima per raggiungere una determinata destinazione 4. Determinare se un programma si ferma in un numero finito di passi su un determinato insieme di input 5. Decidere, per ogni valore x e per ogni funzione f(x), se f(x) è costante

7 7 Problemi Informatici, cont. r Trasformazione di un insieme di valore in ingresso in un insieme di valori in uscita r La descrizione del problema non fornisce il metodo di soluzione r La descrizione del problema può essere ambigua, ex 3. r Il problema non ha alcun metodo risolutivo noto. r Il problema non può essere risolto attraverso un calcolatore, funzioni non calcolabili, ex 4, 5. r La quantità di risorse necessari per risolvere il problema è proibitiva.

8 8 Algoritmi e Programmi r Algoritmo descrive il metodo risolutivo. Proprietà: m non ambiguità m eseguibilità in un tempo finito m finitezza dellesecuzione del processo su ogni possibile input r Ogni passo dellalgoritmo deve essere non ambiguo, ex, ricerca in un elenco telefonico non è un algoritmo r Programma: sequenza di istruzioni comprensibili alla macchina direttamente o attraverso lausilio di altri programmi r Determinare il metodo risolutivo può essere molto complesso.

9 9 Ex: MCD(m,n). Algoritmo 1 1. Calcola linsieme I dei divisori di m. 2. Calcola linsieme J dei divisori di n. 3. Calcola linsieme dei divisori comuni k=I J 4. Calcola il numero massimo di k 5. MCD(m,n) è il numero trovato Procedere per astrazioni fino ad esprimere lalgoritmo in fasi traducibili in istruzioni elementari nel linguaggio di programmazione Ex: Specifica la ricerca del massimo, lintersezione tra due insiemi, etc...

10 10 Ex: MCD(m,n). Algoritmo 2 Algoritmo di Euclide 1. m o n se m=n MCD(m,n) =2. MCD(m-n,n) se m>n 3. MCD(n-m,m) se n>m Finchè m<>n svolgi le seguenti azioni: Se m>n allora sostituisci a m il valore m-n altrimenti sostituisci a n, n-m MCD(m,n) è uno dei due numeri

11 11 I grafi di flusso r Notazione grafica per descrivere istruzioni e lordine di esecuzione tra esse r Le informazioni oggetto del calcolo sono riferite attraverso nomi di variabile o di costante r Assumiamo per il momento i problemi trattare solo di numeri interi r Nel calcolo delle espressioni, ai nomi vengono sostituiti i rispettivi valori.

12 12 Esercizi r Esprimere lalgoritmo di Euclide attraverso la notazione dei grafi di flusso r Esprimere lalgoritmo di ricerca del massimo di un insieme di 100 valori in input attraverso la notazione dei grafi di flusso

13 13 Struttura di un elaboratore r Insieme di risorse tra loro coordinate per eseguire il processo di calcolo r Organi di Input (Tastiera, Mouse, etc.) r Organi di Output ( Schermo, Stampante) r Memoria: Contiene le istruzioni dei programmi, i dati di ingresso, i risultati parziali del calcolo r Memoria si distingue tra Memoria Centrale e Memorie Perifieriche

14 14 Memoria centrale r Dati sono rappresentati in formato binario. Ogni numero e una sequenza di due soli valori: 0,1. r Informazione elementare prende il nome di bit. r Una sequenza di 8 bits è detta byte. r Ad ogni cella di memoria è associato un indirizzo, il numero di ordine della cella dellintera memoria r La Memoria centrale (RAM, Random Access Memory) ha un tempo di accesso molto basso, nanosecondi r La sua dimensione è tipicamnete di alcuni Gbytes Il contenuto viene perso quando il computer è disconnesso

15 15 Memoria di Massa r Dischi magnetici, CD-ROM r Possono essere visti come dispositivi di output r Mantengono linformazione memorizzata in modo permanente r Capacità di memorizzazione praticamente illimitata r Minore velocità della memoria centrale, millisecondi

16 16 Processore r Processore suddiviso in: m Unità aritmetico-logica che esegue i calcoli logici ed aritmetici m Unità di controllo che sovrintende allesecuzione delle istruzioni ed alla gestione delle risorse coinvolte nellesecuzione, e.g. I/O. r Le istruzioni a livello macchina sono estrememamente semplici e fanno direttamente riferimento alla posizione dei dati e delle istruzioni in memoria r E quindi necessario avere Linguaggi di alto livello

17 17 Processore cont. r Puo accedere solo alle informazioni in memoria centrale r Scambia dati con le unità di ingresso ed uscita r Le istruzioni vengono prelevate dalla memoria centrale, decodificate, e viene predisposta la sua esecuzione r Occorre stabilire ad ogni istante la prossima istruzione da eseguire, e.g. flusso di controllo del programma

18 18 Processore cont. r LUnità Centrale contiene diversi registri: m Contatore di Programma: indica la prossima istruzione da eseguire m Registro Istruzione: indica listruzione da interpretare e poi da eseguire m Accumulatori: contengono gli operandi di una data istruzione m Parola di stato: indica informazioni rispetto lultima istruzione esguita, ex: resto 0, segno, etc.

19 19 Fasi della vita di un programma r Compilatori: m permettono di verificare la correttezza sintattica di un programma in un linguaggio ad alto livello m Realizzano la traduzione in linguaggio macchina m Il programma tradotto viene quindi eseguito r Interpreti: m eseguono il programma al momento della sua traduzione


Scaricare ppt "1 Fondamenti di Informatica Prof. Stefano Leonardi URL: www.dis.uniroma1.it/~leon/didattica/meccanica/"

Presentazioni simili


Annunci Google