Lezione 8. La macchina universale



Documenti analoghi
Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Fasi di creazione di un programma

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Descrizione di un algoritmo

Gli algoritmi: definizioni e proprietà

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

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Corso di Informatica

Introduzione al MATLAB c Parte 2

Nozione di algoritmo. Gabriella Trucco

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

CPU. Maurizio Palesi

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Dispensa di Informatica I.1

Appunti di Sistemi Elettronici

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

ALGEBRA DELLE PROPOSIZIONI

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

LE FUNZIONI A DUE VARIABILI

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

4 3 4 = 4 x x x 10 0 aaa

Appunti sulla Macchina di Turing. Macchina di Turing

1 Giochi a due, con informazione perfetta e somma zero

Testi di Esercizi e Quesiti 1

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

+ / operatori di confronto (espressioni logiche/predicati) / = > < Pseudo codice. Pseudo codice

Istruzioni, algoritmi, linguaggi

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Laurea Specialistica in Informatica

Funzioni in C. Violetta Lonati

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

Matematica in laboratorio

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Architettura del calcolatore

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

LINGUAGGI DI PROGRAMMAZIONE

I PROBLEMI ALGEBRICI

Algebra Booleana ed Espressioni Booleane

Linguaggi di programmazione

Lezione 5. La macchina universale

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Informatica - A.A. 2010/11

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Definizione di nuovi tipi in C

Corso di Laurea in INFORMATICA

Dimensione di uno Spazio vettoriale

Sistemi Web! per il turismo! - lezione 3 -

FONDAMENTI di INFORMATICA L. Mezzalira

Corso di Matematica per la Chimica

Metodologie di programmazione in Fortran 90

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

Ciclo di vita del software: Tipologie di software

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Sviluppo Applicazioni Mobile Lezione 7. Dr. Paolo Casoto, Ph.D

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

risulta (x) = 1 se x < 0.

Ottimizazione vincolata

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

INFORMATICA 1 L. Mezzalira

Esame di INFORMATICA

Programmazione dinamica

Algebra di Boole ed Elementi di Logica

Alcune nozioni di base di Logica Matematica

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Elementi di Informatica e Programmazione

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Algoritmi e Complessità

Introduzione alla programmazione in C

Pre Test Matematica

Esempi di algoritmi. Lezione III

Architettura di un calcolatore

(anno accademico )

Database. Si ringrazia Marco Bertini per le slides

1 Estensione in strategia mista di un gioco

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Operatori logici e porte logiche

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

MODELLO RELAZIONALE. Introduzione

Esercizi Capitolo 6 - Alberi binari di ricerca

Informatica per le discipline umanistiche 2 lezione 14

Progettaz. e sviluppo Data Base

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Transcript:

Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione è rappresentata in forma numerica discreta elettronica= la logica di manipolazione e la memorizzazione sono implementate con tecnologie di tipo elettronico (piuttosto che di tipo meccanico) automatica= è in grado di eseguire una successione di operazioni in modo autonomo (cioè senza intervento di un operatore umano) 1

La macchina universale Le operazioni sono descritte sotto forma di un programma Il programma e i dati su cui deve operare sono registrate in un dispositivo di memoria Un dispositivo detto unità di controllo legge il programma e lo esegue su i dati Questo modo di operare è detto architettura di Von Neumann La macchina universale Il programma permette di risolvere un problema in funzione dei dati Se i dati possono cambiare e il programma risolve sempre il problema, allora si dice che il programma risolve una classe di problemi Es. l algoritmo per la somma di due numeri funziona per qualsiasi coppia di numeri; è indipendente dai due numeri dati in ingresso 2

La macchina universale L elaboratore si dice universale perché può essere usato per risolvere qualsiasi problema la cui soluzione può essere descritta con un programma Per ogni classe di problema è necessario fornire un programma adeguato Analisi e programmazione Il procedimento di analisi e programmazione è l insieme di tutte quelle attività che servono per risolvere problemi utilizzando un elaboratore queste vanno dalla formulazione del problema alla predisposizione dell elaboratore 3

Analisi Lo scopo dell analisi è quello di definire un algoritmo Algoritmo=insieme finito di istruzioni che permettono la soluzione di una classe di problemi Programmazione Lo scopo della programmazione è quello di definire un programma Programma=descrizione di un algoritmo in forma comprensibile per un elaboratore Il programma è descritto facendo ricorso ad un linguaggio di programmazione 4

Algoritmo Il termine algoritmo deriva dal nome di un matematico arabo al-khuwarizmi (IX sec d.c.) Def: un algoritmo è una successione ordinata di istruzioni (o passi) che definiscono le operazioni da eseguire su dei dati per risolvere una classe di problemi Algoritmo Schema di esecuzione= ordine in cui vanno eseguite le istruzioni di un algoritmo operazioni in ingresso/uscita= i dati sono acquisiti dall esterno e sono comunicati nuovamente all esterno dopo l elaborazione 5

Algoritmo per il calcolo delle radici di una equazione di 2 grado Data l equazione ax 2 +bx+c=0 Algoritmo 1. Inizio algoritmo 2. Acquisire i coefficienti a,b,c 3. Calcolare il valore? = b 2-4ac 4. Se?<0 non esistono radici, eseguire l istruzione 8 5. Se?=0 allora x 1 = x 2 = -b/2a 6. Se?>0 allora x 1 =(-b+?? )/2a, x 2 =(-b-??)/2a 7. Comunicare all esterno i valori x 1 e x 2 8. Fine dell algoritmo Gioco dell 11 Ci sono 11 oggetti e due giocatori A e B. I giocatori a turno prendono fino a 3 oggetti. Perde chi prende l ultimo oggetto. Problema: quale è l algoritmo che permette al giocatore A di vincere? Algoritmo: 1. Inizio dell algoritmo 2. A preleva 2 oggetti 3. B preleva k oggetti 4. A preleva 4-k oggetti 5. Se gli oggetti non sono finiti, allora ritorna a istruzione 3 6. Fine dell algoritmo 6

Proprietà degli algoritmi Perché una sequenza di istruzioni sia un algoritmo devono essere soddisfatti i seguenti requisiti: Finitezza Generalità Non ambiguità Proprietà degli algoritmi Finitezza Il numero di istruzioni è finito Ogni istruzione è eseguita in un intervallo finito di tempo Ogni istruzione è eseguita un numero finito di volte 7

Proprietà degli algoritmi Generalità un algoritmo fornisce la soluzione ad una classe di problemi cioè: dato un insieme di definizione o dominio dato un insieme di arrivo o codominio l algoritmo può operare su tutti i dati appartenenti al dominio per fornire una soluzione all interno dei codominio Proprietà degli algoritmi Non ambiguità le istruzioni sono definite in modo univoco non ci sono paradossi, contraddizioni, ambiguità il risultato dell algoritmo è identico indipendentemente da chi lo sta eseguendo 8

Esempio Testiamo l Alg. Delle Radici per le proprietà di algoritmo: Finitezza: ci sono 8 istruzioni. Tutte sono eseguite al più una volta. Tutte impiegano un tempo finito per essere valutate o eseguite Generalità: in ingresso è ammissibile una qualsiasi tripla di numeri reali e l uscita è un numero reale. Non ambiguità: le istruzioni sono ben definite: operazioni aritmetiche o confronti fra reali Descrizione degli algoritmi Gli algoritmi sono descritti con un linguaggio formale Un linguaggio formale è costituito da strutture linguistiche che descrivono gli algoritmi in modo preciso e sintetico si differenzia dal linguaggio naturale che contiene ambiguità e ridondanze Es: Lui ha battuto il capo Il servo della principessa con la gamba di legno... 9

Descrizione degli algoritmi Le proposizioni usate da un linguaggio formale descrivono due entità: le operazioni che devono essere eseguite (istruzioni) gli oggetti (dati) sui quali si devono eseguire le operazioni Costanti e variabili I dati possono essere costanti o variabili I dati costanti sono dati che rimangono inalterati durante l esecuzione dell algoritmo da quando ha inizio a quando termina Es. Nell Alg. Dell 11 è una costante il numero di oggetti (2) preso dal primo giocatore. 10

Variabili I dati variabili o semplicemente variabili sono coppie <nome, valore> possono essere immaginati come scatole che hanno come etichetta il nome e come contenuto il valore Alle variabili deve essere assegnato esplicitamente un valore. Al momento di inizio di un algoritmo le variabili hanno un valore indeterminato. Es: in A1 sono variabili a,b,c, x 1 e x 2 Assegnazione L istruzione di assegnazione è quella particolare istruzione che permette di definire il valore attuale di una variabile. Il valore rimane inalterato fino a una nuova assegnazione alla variabile. Forma generale: nome? espressione L assegnazione viene eseguita nei seguenti passi: si valuta l espressione di destra si attribuisce il valore determinato alla variabile 11

Assegnazione Regola Ogni volta che una variabile appare a destra di dell istruzione di assegnazione?, è necessario che un valore sia già stato assegnato a quella variabile. Es: nel caso a? 2, b? 3, c? a+b, allora si ha c=5 nel caso x? 2, x? x+3, allora si ha x=5 Istruzioni Le istruzioni possono essere divise in 5 categorie istruzioni operative istruzioni di controllo istruzioni di salto istruzioni di inizio/fine esecuzione istruzioni di ingresso/uscita 12

Istruzioni operative Istruzioni che producono un risultato se eseguite Ne fanno parte le operazioni aritmetiche e le assegnazioni Istruzioni di controllo Istruzioni che controllano il verificarsi di condizioni specificate e che in base al risultato determinano quale istruzione eseguire Es. se allora altrimenti (if then else) 13

Istruzioni di salto Istruzioni che alterano il normale ordine di esecuzione delle istruzioni di un algoritmo, specificando esplicitamente quale sia la successiva istruzione da eseguire Si distinguono istruzioni di salto condizionato o incondizionato Per quelle condizionate il salto è subordinato al verificarsi di una condizione specificata, per quelle incondizionate il salto è eseguito ogni volta che l istruzione viene eseguita. Istruzioni di inizio/fine Indicano quale istruzione dell algoritmo debba essere eseguita inizialmente e quale determini la fine dell esecuzione 14

Istruzioni di ingresso/uscita Istruzioni che indicano una trasmissione di dati o messaggi fra l algoritmo e tutto ciò che è esterno all algoritmo si dicono di ingresso o lettura quando l algoritmo riceve dati dall esterno si dicono di uscita o scrittura quando i dati sono comunicati dall algoritmo all esterno Esempio Nell algoritmo delle Radici Le istruzioni 1,8 sono di inizio/fine Le istruzioni 2,7 sono di ingresso/uscita La istruzione 3 è operativa La istruzione 4 è di salto condizionato Le istruzioni 5,6 sono condizionali 15

Proposizioni Un proposizione è un costrutto linguistico del quale si può dire se è vero o falso Il valore di verità di una proposizione è l essere vera o falsa della proposizione Es: 3 è un numero pari è una proposizione incrementa x di 10 non è una proposizione Predicati E un predicato una proposizione che contiene delle variabili e in cui il valore delle variabili determina il valore di verità del predicato Es. la variabile età è minore di 30 16

Predicati La valutazione di un predicato avviene tramite i seguenti operatori relazionali = uguale,? diverso > maggiore,? maggiore o uguale < minore,? minore o uguale Predicati semplici e composti Un predicato che contiene un solo operatore relazionale è detto predicato semplice Gli operatori relazionali possono essere combinati con i seguenti operatori logici NOT AND OR Un predicato che contiene più operatori relazionali combinati tramite uno o più operatori logici è detto composto 17

Operatori logici NOT: dato un predicato p, NOT p è vero quando p è falso e viceversa AND: dati due predicati p e q, p AND q è vero solo quando entrambi p e q sono veri e falso altrimenti OR: dati due predicati p e q, p OR q è falso solo quando entrambi p e q sono falsi e vero altrimenti Vettori Le variabili considerate fino ad adesso sono dette variabili scalari Una variabile vettore (array) è una coppia <nome, insieme di valori> Può essere immaginata come una scatola che ha un nome e che è divisa in tanti comparti ognuno dei quali è numerato e può contenere un valore 18

Vettori Ogni valore è individuato dal nome della variabile seguito dal numero del comparto detto indice La notazione usata è: A[i] La dimensione di un vettore è il numero dei suoi elementi Vettori Gli indici vanno da 1 ad un numero massimo rappresentato dalla dimensione del vettore In fase di dichiarazione di una variabile vettore si specifica la sua dimensione che non è più modificabile successivamente 19

Matrice E l estensione del concetto di vettore. Una matrice è un insieme di valori che sono indicizzati facendo ricorso a due o più indici La notazione usata è: M[i,j] Per una matrice a 2 dimensioni l indice i è detto indice riga e j indice colonna 20