L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.

Slides:



Advertisements
Presentazioni simili
Gli algoritmi L’elaboratore come macchina universale
Advertisements

Sottoprogrammi: funzioni e procedure
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Analisi – Progettazione - Programmazione
Linguaggi algoritmici
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
ALGORITMI Un algoritmo (detto anche procedura, prescrizione, processo, routine, metodo) è un insieme di regole (dette anche direttive o istruzioni) che,
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Presentazione Computer Forensic 27/03/2017
Informatica Generale Susanna Pelagatti
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Fondamenti di Informatica
Esempio 1: Calcolo del M.C.D.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Iterazione enumerativa (for)
Informatica Problema Algoritmo Programma
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Definizione di Algoritmo
Fondamenti di Informatica
Introduzione alla programmazione lll
Introduzione alla programmazione l
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Gli algoritmi AA 2003/04 © Alberti Programmazione 2. Algoritmi.
Unità Didattica 1 Algoritmi
Unità Didattica 2 I Linguaggi di Programmazione
Fondamenti di Informatica Algoritmi
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Gli algoritmi.
Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università
RAPPRESENTAZIONE DELL’INFORMAZIONE
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
L’AUTOMA ESECUTORE Un automa capace di ricevere dall’esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio.
AN FI Concetti. Linguaggi di alto livello u Hanno capacita' espressive superiori a quelle del linguaggio macchina u Suggeriscono concetti e modi.
Elementi di Informatica
Elementi di Informatica
Da Problema a Programmazione
ELEMENTI DI PROGRAMMAZIONE
Elementi di Informatica di base
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
PROGRAMMAZIONE: linguaggi
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Algoritmi e linguaggi di programmazione
Massimo Comun Divisore
Un esempio: Calcolo della potenza n-esima di un numero reale
Programma di Informatica Classi Prime
Dal problema all’ algoritmo
Algoritmi.
Realizzazione software
Il software Claudia Raibulet
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
TIPI SEMPLICI (ATOMICI) DIREMO CHE UNA INFORMAZIONE E’ DI TIPO SEMPLICE SE NON E’ COMPOSTA DA INFORMAZIONI PIU’ SEMPLICI TIPI STRUTTURATI DIREMO CHE UNA.
Dal problema al programma
ALGORITMI Dal problema al programma Definizione di algoritmo
Programmazione dei Calcolatori Elettronici
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
MASSIMO COMUNE DENOMINATORE (M.C.D)
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Click to edit Master title styleAlgoritmo algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito,
Unità di apprendimento 6 Dal problema al programma.
L’unità frazionaria ESEMPIO Rappresentazione
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
IL CONCETTO DI ALGORITMO
Transcript della presentazione:

L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti (risultati) l’esecuzione di azioni viene richiesta all’elaboratore attraverso frasi scritte in un qualche linguaggio (istruzioni)

PROGRAMMAZIONE L’attività con cui si predispone l’elabora- tore a eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema

ALCUNE DOMANDE FONDAMENTALI  Quali istruzioni esegue un elaboratore?

ALCUNE DOMANDE FONDAMENTALI  Quali istruzioni esegue un elaboratore?  Quali problemi può risolvere un elaboratore?

ALCUNE DOMANDE FONDAMENTALI  Quali istruzioni esegue un elaboratore?  Quali problemi può risolvere un elaboratore?  Esistono problemi che un elaboratore non può risolvere?

ALCUNE DOMANDE FONDAMENTALI  Quali istruzioni esegue un elaboratore?  Quali problemi può risolvere un elaboratore?  Esistono problemi che un elaboratore non può risolvere?  Che ruolo ha il linguaggio di programmazione?

IL PROBLEMA DI FONDO

 Qual è il giusto “punto di partenza” per pensare la soluzione a un problema?  Quali metodologie e tecniche usare? Come si costruisce la soluzione a un problema?

ALGORITMO Sequenza finita di mosse che risolve in un tempo finito una classe di problemi. CODIFICA Fase di scrittura di un algoritmo attraverso un insieme ordinato di frasi (“istruzioni”), scritte in un qualche linguaggio di programmazio- ne, che specificano le azioni da compiere.

PROGRAMMA Testo scritto in accordo alla sintassi e alla se- mantica di un linguaggio di programmazione.

PROGRAMMA Testo scritto in accordo alla sintassi e alla se- mantica di un linguaggio di programmazione. Un programma può non essere un algoritmo! ATTENZIONE Basta che la sequenza di mosse non sia finita, cioè che il programma non termini.

PROGRAMMA ATTENZIONE: un programma può non essere un algoritmo e tuttavia essere molto utile! ESEMPI semafori sistemi operativi … tutte quelle attività che devono agire più che calcolare un risultato.

ESECUZIONE L'esecuzione delle azioni nell'ordine specificato dall'algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema

ESECUZIONE L'esecuzione delle azioni nell'ordine specificato dall'algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema. ESECUTORE una macchina astratta capace di eseguire le azioni specificate dallo algoritmo.

ALGORITMO & PROGRAMMA Ogni elaboratore è una macchina in grado di eseguire azioni elementari su dati L'esecuzione delle azioni elementari è richiesta all'elaboratore tramite comandi chiamati istruzioni Le istruzioni sono espresse attraverso frasi di un opportuno linguaggio di programmazione Un programma non è altro che la formula- zione testuale di un algoritmo in un linguaggio di programmazione.

ALGORITMO & PROGRAMMA Un programma è la formulazione testuale, in un certo linguaggio di programmazione, di un algoritmo che risolve un dato problema.

UN ESEMPIO DI PROGRAMMA (in linguaggio C) main() { int A, B; printf("Immettere due numeri: "); scanf("%d %d", &A, &B); printf("Somma: %d\n", A+B); }

ALGORITMI: PROPRIETÀ Eseguibilità: ogni azione dev’essere eseguibi- le dall’esecutore in un tempo finito

ALGORITMI: PROPRIETÀ Eseguibilità: ogni azione dev’essere eseguibi- le dall’esecutore in un tempo finito Non-ambiguità: ogni azione deve essere univocamente interpretabile dall'esecutore

ALGORITMI: PROPRIETÀ Eseguibilità: ogni azione dev’essere eseguibi- le dall’esecutore in un tempo finito Non-ambiguità: ogni azione deve essere univocamente interpretabile dall'esecutore Finitezza: il numero totale di azioni da esegui- re, per ogni insieme di dati di ingresso, deve essere finito

ALGORITMI: PROPRIETÀ (2) Quindi, l’algoritmo deve: essere applicabile a qualsiasi insieme di dati di ingresso appartenenti al dominio di definizio- ne dell’algoritmo

ALGORITMI: PROPRIETÀ (2) Quindi, l’algoritmo deve: essere applicabile a qualsiasi insieme di dati di ingresso appartenenti al dominio di definizio- ne dell’algoritmo essere costituito da operazioni appartenenti ad un determinato insieme di operazioni fonda- mentali

ALGORITMI: PROPRIETÀ (2) Quindi, l’algoritmo deve: essere applicabile a qualsiasi insieme di dati di ingresso appartenenti al dominio di definizio- ne dell’algoritmo essere costituito da operazioni appartenenti ad un determinato insieme di operazioni fonda- mentali essere costituito da regole non ambigue, cioè interpretabili in modo univoco qualunque sia l’esecutore (persona o “macchina”) che le legge

ALGORITMI EQUIVALENTI Due algoritmi si dicono equivalenti quando: hanno lo stesso dominio di ingresso; hanno lo stesso dominio di uscita; in corrispondenza degli stessi valori del domi- nio di ingresso producono gli stessi valori nel dominio di uscita.

ALGORITMI EQUIVALENTI (2) Due algoritmi equivalenti forniscono lo stesso risultato ma possono avere diversa efficienza e possono essere profondamente diversi !

ALGORITMI EQUIVALENTI (3) ESEMPIO: calcolo del M.C.D. fra due interi M, N Algoritmo 1 –Calcola l'insieme A dei divisori di M –Calcola l'insieme B dei divisori di N –Calcola l'insieme C dei divisori comuni = A  B –Il risultato è il massimo dell’insieme C Algoritmo 2 (di Euclide)

ALGORITMI EQUIVALENTI (4) ESEMPIO: calcolo del M.C.D. fra due interi M, N Algoritmo 2 (di Euclide) Finché M  N: –se M>N, sostituisci a M il valore M’ = M-N –altrimenti sostituisci a N il valore N’ = N-M –Il Massimo Comun Divisore è il valore finale ottenuto quando M e N diventano uguali

ALGORITMI EQUIVALENTI (5) Gli algoritmi 1 e 2 sono equivalenti… …ma hanno efficienza ben diversa!!

COSA SAPPIAMO ORA? Il concetto di elaboratore e di programmazione I concetti di programma e algoritmo Il concetto di linguaggio di programmazione Codifica e esecuzione Proprietà degli algoritmi Algoritmi equivalenti