Laboratorio di Informatica Introduzione Laboratorio di Informatica AA 2009/2010 1 Informatica: definizione • Informatica: disciplina che cerca di dare un fondamento scientifico ad argomenti come la progettazione di computer, la programmazione, l’elaborazione delle informazioni, le soluzioni algoritmiche dei problemi, il processo algoritmico stesso. Laboratorio di Informatica AA 2009/2010 2 1 Concetti base • Algoritmo (informalmente): sequenza di passi che definiscono il modo in cui viene eseguita un’operazione (es. ricetta). • Primi algoritmi Æ ambito matematico, es. algoritmo della divisione (serie di operazioni ben codificate che permettono di calcolare il risultato della divisione ed il resto). • Spesso l’esecuzione di un algoritmo implica il ripetersi di una serie di operazioni elementari. Laboratorio di Informatica AA 2009/2010 3 Concetti base • Un algoritmo necessita di un esecutore (es. cuoco per algoritmo ricetta). • L’algoritmo deve essere rappresentato in forma tale da garantire che l’esecutore comprenda le istruzioni dell’algoritmo. • Ogni rappresentazione di un algoritmo è detta programma. Laboratorio di Informatica AA 2009/2010 4 2 Algoritmo di Euclide • Dati due numeri interi e positivi m e n, calcola il più grande intero che li divide 1. dividere m per n, e sia r il resto della divisione (con 0 ≤ r < n) 2. se r = 0 allora la risposta è n e STOP 3. porre m ← n e n ← r e ripetere il passo 1 Laboratorio di Informatica AA 2009/2010 5 Programma_euclide (due diverse rappresentazioni dello stesso algoritmo) #include <stdio.h> void main( ); int m = 0, n = 0, a, b, r, q; { printf(“dammi il dividendo\n”); if scanf(“%d”, &m) == 0 { printf(“errore, fine programma\n”); exit(-1); } printf(“dammi il divisore\n”); if scanf(“%d”, &n) == 0 { printf(“errore, fine programma\n”); exit(-1); } a = m; b = n; do q = m/n; r = m - q*n; m = n; n = r; while r <> 0; printf(“il MCD tra %d e %d e` %d\n”, a,b,n); } Laboratorio di Informatica AA 2009/2010 6 3 Il computer è… • Il computer è un esecutore di algoritmi! Laboratorio di Informatica AA 2009/2010 7 Algoritmo vs procedura di calcolo • Gli algoritmi definiscono un insieme finito di istruzioni che danno luogo a una sequenza finita di operazioni • Il processo di ripetizione di cicli deve terminare – nell’algoritmo di Euclide, la sequenza dei resti r • sequenza di numeri interi positivi decrescenti • Se il requisito non e` soddisfatto, si parla di procedure di calcolo Laboratorio di Informatica AA 2009/2010 8 4 Concetti base • L’esecutore deve essere in grado di capire l’algoritmo Æ necessaria un’opportuna codifica dell’algoritmo • Es. ricetta per cuoco, linguaggio macchina per un elaboratore. • Programmazione = sviluppo di un programma, codifica in un opportuno formato, inserimento nella macchina. Laboratorio di Informatica AA 2009/2010 9 Concetti di base • Hardware • Software – Esecutore (cuoco, circuiti elettronici, …) – Programmi (insiemi di algoritmi) Programmazione Laboratorio di Informatica AA 2009/2010 10 5 Cosa studia l’informatica? • L’informatica studia: – i calcolatori, nati in risposta all’esigenza di eseguire “meccanicamente” operazioni ripetitive inizialmente il calcolo matematico – gli algoritmi, nati in risposta all’esigenza di definire procedure “meccaniche” per la soluzione di problemi – le applicazioni, in risposta all’esigenza di sviluppare sistemi di supporto in varie aree Laboratorio di Informatica AA 2009/2010 11 Cosa studia l’informatica? … tutto quello che sta tra (estremi compresi)… …l’hardware … (equipaggiamento fisico del computer) … e il software. (equipaggiamento logico del computer) Laboratorio di Informatica AA 2009/2010 12 6 Distinzione Hw/Sw HARDWARE equipaggiamento fisico del computer, costituito da componenti meccanici, elettrici, ed elettronici che fanno svolgere al calcolatore un insieme di funzioni generiche (si puo` prendere a calci!) SOFTWARE equipaggiamento logico del computer, costituito da programmi che utilizzano i componenti dell’hardware integrandoli al fine di svolgere compiti specifici (si puo` solo imprecargli contro!) Laboratorio di Informatica AA 2009/2010 13 Il calcolatore • Composto da – processore, o CPU (Central Processing Unit) o microprocessore – memoria centrale, o RAM (Random Access Memory) – periferiche Laboratorio di Informatica AA 2009/2010 14 7 Il calcolatore Periferiche Monitor Tastiera Mouse Memorie di massa Memoria CPU centrale BUS Input Output Input/Output (I/O) Laboratorio di Informatica AA 2009/2010 15 Il calcolatore • Il processore, o CPU, esegue i programmi • La memoria contiene dati e programmi Il calcolatore svolge funzioni diverse in base al programma eseguito • Il calcolatore e` una macchina di Von Neumann Laboratorio di Informatica AA 2009/2010 16 8 La macchina di von Neumann memoria programma gestionale programma editor processore periferiche compilatore C dati sugli stipendi libro di testo programma sorgente in C Modello di macchina a programma memorizzato - lo stesso dagli anni 1940 ad oggi Laboratorio di Informatica AA 2009/2010 17 Il software • Equipaggiamento logico del calcolatore • Costituito dai programmi che fanno svolgere al calcolatore un insieme di funzioni • Si distingue quello di sistema e quello applicativo Laboratorio di Informatica AA 2009/2010 18 9 Il software di sistema • per la gestione delle risorse del sistema • per il supporto nella stesura di programmi applicativi • per la comunicazione con l’utente applicativo • programmi destinati all’utente finale (videoscrittura, fogli elettronici, posta elettronica, browser, ecc.) Laboratorio di Informatica AA 2009/2010 19 Il software - Esempi di sistema • sistema operativo • compilatori • driver di I/O • interfaccia utente applicativo • videoscrittura • gestione biblioteca • controllo impianto industriale • sequenziazione genoma • progettazione (CAD) • previsioni finanziarie Laboratorio di Informatica AA 2009/2010 20 10 Il software - Esempi compilatori Software di sistema S.O. utilità HW CAD biblioteca videoscrittura Software applicativo Laboratorio di Informatica AA 2009/2010 21 Quindi l’informatica per… di i l g Fo olo… lc ca e Pr rd r… o W so es c pro Laboratorio di Informatica AA 2009/2010 nta e s i… n o zi on n Ma lo… so 22 11 … Ma anche per… - … Elaborazione di immagini radiografiche dentali… Laboratorio di Informatica AA 2009/2010 23 … E per… • … Simulazione di interventi chirurgici in oftalmologia… Laboratorio di Informatica AA 2009/2010 24 12 … E per… • Analisi automatica del segnale ECG… etc. Laboratorio di Informatica AA 2009/2010 25 13