DIFFUSIONE APPLICAZIONI INFORMATICHE

Documenti analoghi
Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Informatica. Come si risolve un problema?

Sviluppo di programmi

Corso di Informatica di Base

Problemi, algoritmi, calcolatore

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

LA METAFORA DELL UFFICIO

Il concetto di calcolatore e di algoritmo

Elaborazione dell informazione

L INFORMATICA c1. Informatica è qualcosa che ha a che fare con l uso del computer

Algoritmi e diagrammi di flusso

AUTOMA A STATI FINITI

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

LABORATORIO DI INFORMATICA

Concetti di base dell ICT

Algoritmi e diagrammi di flusso versione biennio

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Sistemi Web per il turismo - lezione 3 -

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?

ITLCC 2006/10/6 19:09 page 7 #3

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Cosa è l Informatica?

DISPENSE DI PROGRAMMAZIONE

Concetti Introduttivi. Il Computer

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Programmazione di INFORMATICA e Laboratorio

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Il concetto di informatica. Graziano Pravadelli (2012)

Algoritmi e soluzione di problemi

Rappresentazione con i diagrammi di flusso (Flow - chart)

Fasi della programmazione. Gabriella Trucco

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Dispensa di Informatica II.1

Come ragiona il computer. Problemi e algoritmi

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori

A proposito di informatica

Teoria dell Informazione

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F

Esempio di Patto Formativo per la classe terza

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

Le aree dell informatica

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

DECLINAZIONE COMPETENZE SCUOLA SECONDARIA DI PRIMO GRADO: MATEMATICA COMPETENZE CONOSCENZE ABILITA

Il linguaggio di programmazione Python

Algoritmi. Pagina 1 di 5

Algoritmi e Linguaggi

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

LA METAFORA DELL UFFICIO

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Introduzione agli algoritmi

Esercitazioni di Reti Logiche. Lezione 5

Automa a Stati Finiti (ASF)

Corso di Informatica

Macchine per l elaborazione dell informazione dalla macchina di Von Neumann al Calcolatore Elettronico

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii)

LA METAFORA DELL UFFICIO LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

Architettura di Von Neumann

Macchine sequenziali. Automa a Stati Finiti (ASF)

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica e Bioinformatica: Algoritmi

Componenti e connessioni. Capitolo 3

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

DESCRIZIONI RIGOROSE c7

Macchine di TURING. Alan Mathison Turing ( )

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica. Compressione dati

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

MATERIALI PER LA DISCUSSIONE

Algoritmi e Programmi

Lezione 5. La macchina universale

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Reti Logiche 1. Prof. B. Buttarazzi A.A. 2009/2010. Reti Sequenziali

Le aree dell informatica

un insieme finito di segnali d uscita U (nell ascensore U={stare fermo, salire, scendere})

1.2f: Operazioni Binarie

Algoritmi e diagrammi di flusso

PIANI DI STUDIO MATEMATICA

1 Esercizi in pseudocodice

FUNZIONI BOOLEANE. Vero Falso

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Introduzione al Calcolo Scientifico

MODELLO e RAPPRESENTAZIONE

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

La "macchina" da calcolo

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Informazione L Informazione è un dato, o un insieme di dati, interpretati in un determinato contesto.

Transcript:

def (ACM) L informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione. dati DIFFUSIONE APPLICAZIONI INFORMATICHE - in quasi tutte le attività occorre gestire qualche genere di informazione - l elaborazione dell informazione avviene in maniera sistematica e rigorosa, e pertanto può essere automatizzata - l informazione viene codificata in numeri 12/12/2003 25

Un sistema è una unità formata da un insieme di elementi tra loro interagenti che, al verificarsi di un dato evento (input) proveniente dall ambiente esterno, produce una risposta (output) definita. Tale risposta dipende anche dallo stato in cui si trova il sistema in quell istante, infatti il sistema è dotato di memoria e la sua storia è conservata nel suo stato. 12/12/2003 26

La rappresentazione di un sistema o di un processo avviene tramite l elaborazione di un modello: schema teorico elaborato in molte discipline per rappresentare gli elementi fondamentali di fenomeni o enti. Esempio di modelli: -modelli simbolici o matematici: danno una rappresentazione astratta della realtà cui si riferiscono, mediante un insieme di equazioni e/o disequazioni che legano le grandezze coinvolte - modelli analogici: danno una rappresentazione fedele della realtà, tipici sono i modelli in scala ridotta, che riproducono qualitativamente un sistema pur riducendone proporzionalmente 12/12/2003 27

Un automa è un sistema dinamico, invariante, discreto nell avanzamento e nelle interazioni. -dinamico: -invariante: evolve nel tempo passando da uno stato all altro in funzione dei segnali d ingresso e dello stato precedente; a parità di condizioni iniziali il comportamento del sistema è sempre lo stesso; - discreto: le variabili d ingresso, di stato, d uscita, possono assumere solo valori discreti. In termini formali si definisce automa a stati finiti un sistema A = {I, U, S, f, g }, dove I = {i 1, i 2, i n } insieme finito dei possibili ingressi U = {u 1, u 2,, u m } insieme finito delle possibili uscite S = {s 1, s 2,, s h } insieme finito degli stati f = I S U funzione delle uscite, che collega l uscita al valore attuale dell ingresso e dello stato, u t =f (s t, i t ) g = I S S funzione di transizione degli stati interni successivi, che collega lo stato nell istante successivo al valore attuale dell ingresso e dello stato, s t+1 =g(s t, i t ) 12/12/2003 28

Le funzioni f (delle uscite) e g (di transizione allo stato successivo) possono essere rappresentate mediante: 1. Tabelle di transizione, tabelle a doppia entrata in cui il numero delle righe è pari al numero degli stati e quello delle colonne è pari al numero degli ingressi. 2. Grafi di transizione, costituiti da cerchi (nodi) in numero pari agli stati, da ciascuno dei quali partono tanti archi quanti sono gli ingressi. Se le uscite sono riportate sugli archi sotto gli ingressi si dice automa di Mealy, se le uscite sono riportate all interno dei nodi sotto lo stato si dice automa di Moore. 12/12/2003 29

Esempio: ascensore Un ascensore di un palazzo a due piani accetta la richiesta del piano di destinazione (terra, 1, 2) e restituisce lo spostamento desiderato (su, giù, fermo). Si tratta di un automa in cui: S={Pt, 1P, 2P}, Pt= p. terra, 1P= p. primo, 2P= p. secondo; I={T, 1, 2} possibilità offerte dalla pulsantiera; U={Su, Giù, Fermo} spostamenti dell ascensore. Tabella di transizione relativa all automa dell esempio: 12/12/2003 30

Grafo di Moore relativo all ascensore 12/12/2003 31

Macchina astratta di Turing testina cella nastro a k x i a r L X P Memoria interna x j P t 12/12/2003 32

La macchina di Turing è costituita da un nastro illimitato, suddiviso in celle; In ciascuna cella può essere memorizzato uno dei simboli di un alfabeto esterno finito {a 0,a 1,a 2, a 3, a 4,..., a N } che comprende un particolare simbolo a 0, da considerarsi come carattere bianco. Una testina può leggere il contenuto di una cella alla volta; La testina può anche scrivere nella cella corrente uno dei simboli dell alfabeto, sostituendolo ad ogni eventuale simbolo preesistente; Un meccanismo di posizionamento permette alla testina di spostarsi: (D) alla destra di quella attuale, (S) alla sinistra di quella attuale, (F) Rimanere ferma su quella attuale. 12/12/2003 33

La macchina può trovarsi in uno degli stati appartenenti ad un insieme finito {x 1,x 2, x 3, x 4,..., x m } La memoria interna è costituita da due elementi (X) e (P): (X) memorizza lo stato in cui la macchina viene a trovarsi, (P) memorizza la posizione della testina, e riconosce i simboli D, S, F, x 1, x 2, x 3, x 4,..., x m La memoria esterna è costituita dal nastro e il contenuto varia continuamente. 12/12/2003 34

Unità logica (L) a due ingressi: 1. Il simbolo a k letto sulla cella in osservazione; 2. Lo stato x i prelevato dalla memoria (X); e tre uscite 1. Il simbolo a r da scrivere sulla cella in osservazione; 2. Lo stato x j al quale portare la macchina; 3. Il posizionamento p t {D, S, F} della testina 12/12/2003 35

Per il funzionamento della macchina occorre conoscere per una coppia (il simbolo a k letto; lo stato x i della macchina) la tripla (il simbolo da scrivere a r ; Il posizionamento p t ;lo stato x j ) In sostanza le informazioni ( p t ; x j ) forniscono le informazioni necessarie ad individuare cosa deve fare la macchina nel passo successivo, cioe l istruzione da eseguire. 12/12/2003 36

La successione delle istruzioni, cioe il programma, puo essere rappresentata mediante una matrice di transizione costituita da tante righe quanti sono i simboli dell alfabeto e da tante colonne quanti sono gli stati. a 0 a 1 x 1 x 2 x i x m Alla coppia ( a k ; x i ) a k a r p t x j vengono assegnati: il carattere da scrivere, il posizionamento successivo della testina, lo stato successivo della macchina) a N 12/12/2003 37

Assegnata una qualsiasi coppia di valori di verità, calcolare la funzione logica e AND. Alfabeto esterno: Stati: B carattere bianco, per indicare una cella vuota; 0 carattere con cui viene indicato lo stato logico falso; 1 carattere con cui viene indicato lo stato logico vero; * carattere per individuare la cella in cui andrà memorizzato il risultato. x 0 stato iniziale. La testina è posizionata alla sinistra delle tre celle consecutive contenenti i dati. x A è uno stato in cui l ultimo carattere letto e 0 x B è uno stato in cui l ultimo carattere letto e 1 x C è uno stato in cui siano stati lette le coppie (0,0) o (0,1) o (1,0); x D è uno stato in cui sia stata letta la coppia di caratteri (1,1); 12/12/2003 38 A stato di arresto dell elaborazione.

ALGORITMO Se lo stato è x 0 e viene letto il carattere B allora lascia nella cella il carattere B, resta nello stato x 0, spostati di una cella a destra: istruzione (x 0,B, B,x 0,D) (1) Se viene letto il carattere 0 allora lascia nella cella il carattere 0, passa allo stato x A, spostati di una cella a destra: istruzione (x 0,0, 0,x A,D) (2) Se viene letto il carattere 1 allora lascia nella cella il carattere 1, passa allo stato x B, spostati di una cella a destra: istruzione (x 0,1, 1,x B,D) (3) Se i dati del prolema portano all esecuzione della (2), avremo che qualunque sia il carattere successivo letto, il sistema dovra passare allo stato x c : istruzione (x A,0, 0,x C,D) (4) istruzione (x A,1, 1,x C,D) (5) (6) Istruzione (x B,0, 0,x C,D) (7) Istruzione (x B,1, 1,x D,D) 12/12/2003 39 (8) Istruzione (x C,*, 0,A,D) (9) Istruzione (x D,*, 1,A,D)

Se i dati del problema conducono all esecuzione della (3), si dovra eseguire una delle due istruzioni: istruzione (x B,0, 0,x C,D) (6) istruzione (x B,1, 1,x D,D) (7) A questo punto la testina incontrera il carattere * che andra sostituito con il carattere 0 se il sistema si trova nello stato x C o con il carattere 1 se il sistema si trova nello stato x C : istruzione (x C,*, 0,A,D) (8) istruzione (x D,*, 1,A,D) (9) Un ultima istruzione e necessaria per fermare l elaborazione. istruzione (A,B, B,A,F) (10) 12/12/2003 40

Matrice di transizione: x 0 x A x B x C x D A B B x 0 D B A F 0 0 x A D 0 x C D 0 x C D 1 1 x B D 1 x C D 1 x D D * 0 A D 1 A D 0/0/D x A 0/0/D 1/1/D x C */0/D B/B/F x 0 0/0/D A 1/1/D x B 1/1/D x D */1/D 12/12/2003 41

Informatica? 1996 ACM dieci aree disciplinari dell informatica: 1. Algoritmi e strutture dati 6. Grafica computerizzata 2. Architettura dei calcolatori 7. Interazione uomo-calcolatore 3. Intelligenza artificiale e 8. Sistemi operativi e reti robotica 9. Linguaggi di programmazione 4. Scienze computazionali 10. Ingegneria del software 5. Basi di dati e sistemi per il ritrovamento dell informazione 12/12/2003 42

ARCHITETTURA DI Von NEUMANN Bus di sistema CPU Memoria I/O I/O I/O esecutore di algoritmi contenitore di informazioni 12/12/2003 43

CPU Memoria principale Unità di controllo Unità aritmeticologica Registri generali R0 R1 Contatore di programma Registro di stato Rn 12/12/2003 44

0 Memoria centrale indirizzo byte 7 6 5 4 3 2 1 0 n-1 1 bit di informazione: 0 1 parole di 1, 2, 4 e 8 byte 12/12/2003 45

Problema Un problema consta dei seguenti elementi: situazione che pone delle domande cui si devono dare risposte. Risolvere il problema vuol dire uscire da tale situazione I dati, ossia ciò che è noto, che indichiamo col termine input. I risultati, ossia ciò che si deve determinare, che indichiamo col termine output. Le condizioni, che sono in generale le limitazioni cui devono soggiacere i risultati. 12/12/2003 46

analisi di un problema interpretare il problema definendo gli obiettivi; individuare i dati del problema, costruire un modello (rappresentazione della realtà privata degli aspetti superflui), individuare le risorse dell esecutore; descrivere il procedimento risolutivo individuando le operazioni da compiere sui dati iniziali per ottenere i risultati finali; eseguire nell ordine le operazioni descritte nel processo risolutivo; verificare se i risultati ottenuti rispondono alle finalità del problema. 12/12/2003 47

a Methodology for Algorihmic Problem Solving (MAPS) Passo 1. Analizzare il problema e sviluppare le specifiche Passo 2. Progettare una soluzione - decomposizione (progettazione top-down) - astrazioni Passo 3. codifica e documentazione Passo 4. testing (in parallelo a passo 3) Passo 5. validazione 12/12/2003 48

Analisi di un problema 12/12/2003 49

problema analisi soluzione informale formalizzazione algoritmo programmazione programma (alto livello) esecutore del linguaggio alto livello traduzione soluzione esecutore del linguaggio macchina esecuzione (HW) programma (linguaggio macchina) 12/12/2003 50

L analisi di un problema, ossia la definizione dell obiettivo da raggiungere, può essere realizzata attraverso processi di affinamento successivo. Si tratta di scomporre un problema complesso in sottoproblemi più semplici, utilizzando la tecnica del topdown: - il problema viene esaminato nelle direttrici generali; - scomposto in sottoproblemi; - di ciascun sottoproblema si determinano le operazioni specifiche; - esso viene scomposto in ulteriori sotto-sottoproblemi, fino a giungere alle operazioni elementari. Tecnica del top-down 12/12/2003 51

Un algoritmo deve avere cinque caratteristiche: Effettivita : deve essere basato su regole effettive cioe certamente eseguibili in un tempo finito. Finitezza: Definitezza: Ingresso: Uscita: deve essere realizzato in un numero finito di passi; ad ogni passo e definita senza ambiguita la successiva regola da applicare; opera a partire da dati in ingresso; produce dati in uscita. 12/12/2003 52

Programmare una semplice macchina ATM Passo 1. Analizzare il problema e sviluppare le specifiche Input: password, tipo transazione, importo della transazione... Output: messaggi di errore, saldo, contante. Specifiche di input: password N, tipo={prelievo, deposito} importo R Specifiche di output: ((password<=0 OR password>=100000) AND codice errato ) OR (0<password< 100000 AND tipo=deposito AND z R) OR 12/12/2003 53

Passo 2. Progettare una soluzione algoritmo pseudocodice 1. Richiedere all utente la pw 2. Se la pw non è valida formulare un messaggio di errore e saltare al passo 6 3. Richiedere gli input 3.1 Richiedere all utente il tipo di transazione e l importo 3.2 Richiedere alla banca il saldo 4. Se tipo=deposito aggiungere l importo al saldo 5. Se tipo=prelievo controllare saldo 5.1 Se importo>saldo formulare un messaggio di errore e saltare al passo 6 5.2 Se importo<=saldo sottrarre importo a saldo 6. Dare il messaggio di errore o il contante e fornire il saldo 7. Chiedere all utente se desidera altra transazione (se SI ripetere da 3 a 6, se NO termina) 12/12/2003 54

Richiedere pw diagramma di flusso È corretta? si Dire tipo opz e importo no deposito deposito o prelievo? prelievo Aggiungere importo a saldo no importo < saldo? si Sottrarre importo da saldo Dare la risposta o messaggio di errore 12/12/2003 55

diagramma gerarchico Simulare una macchina ATM Richiedere gli input Elaborare tutti i calcoli Dare tutti gli output Diagramma gerarchico di primo livello di una macchina ATM 12/12/2003 56

Richiedere gli input Richiedere la pw Richiedere tipo trans. Richiedere importo Diagramma gerarchico di secondo livello per gli input di una macchina ATM 12/12/2003 57

Teorema fondamentale della programmazione strutturata di Jacopini - Böhm ogni algoritmo può essere codificato attenendosi esclusivamente a tre strutture fondamentali: Sequenza Iterazione scelta 12/12/2003 58

Istruzione 1 Istruzione 2 Sequenza Istruzione 3 Vero condizione Falso Selezione Diagrammi di Nassi-Shneiderman (1973) (per la programmazione strutturata) While condizione Ripetizione Istruzione 12/12/2003 59