Lezione 1. Problemi Algoritmi Programmi

Documenti analoghi
3. Programmi e algoritmi

L ELABORATORE ELETTRONICO

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

L ELABORATORE ELETTRONICO!

Elaboratore Elettronico

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

Cosa è l Informatica?

Concetti Introduttivi. Il Computer

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

ALGORITMI: PROPRIETÀ FONDAMENTALI

Informatica, Algoritmi, Linguaggi

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

LABORATORIO DI INFORMATICA

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Corso di Informatica di Base

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Concetti di base dell ICT

Informatica. Come si risolve un problema?

Fondamenti VBA. Che cos è VBA

Elementi di informatica

Algoritmi e Programmi

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

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Introduzione alla programmazione

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Introduzione agli Algoritmi

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Annamaria Bria 1

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

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

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

FONDAMENTI DI INFORMATICA

Il calcolatore. Architettura di un calcolatore (Hardware)

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Algoritmi. Pagina 1 di 5

Elementi di informatica

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

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Introduzione al funzionamento di un calcolatore elettronico

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Linguaggi di Programmazione

Rappresentazione con i diagrammi di flusso (Flow - chart)

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Il concetto di informatica. Graziano Pravadelli (2012)

Problemi, algoritmi, linguaggi

Sistemi di Elaborazione delle Informazioni

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

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

Unità di apprendimento 6. Dal problema al programma

Corso Programmazione

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

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

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

Il Software programmabili programma algoritmo

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

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

FONDAMENTI DI INFORMATICA

MODULO 1. Punto 1.0 del Syllabus 5.0 Fondamenti. Prof.ssa Francesca Lascialfari

Risoluzione di problemi con l uso dell elaboratore elettronico

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

1 Esercizi in pseudocodice

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Teoria dell Informazione

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Introduzione ai Calcolatori Elettronici

Linguaggi di programmazione

LINGUAGGI DI ALTO LIVELLO

Il concetto di calcolatore e di algoritmo

LEZIONE 4. Hardware (periferiche) Software (algoritmi)

Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Unità di apprendimento 6. Dal problema al programma

Elementi di programmazione

La suddivisione lezione/esercitazione è orientativa Martedì Lezione Aula A4 Martedi Esercitazione Aula A2 Mercoledì Laboratorio

Algoritmi e Linguaggi

Informatica. Elaborazione di informazione

Sviluppo di programmi

Problemi, algoritmi, calcolatore

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

PROBLEMI ALGORITMI E PROGRAMMAZIONE

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

Struttura del calcolatore

Dispensa di Informatica II.1

DESCRIZIONI RIGOROSE c7

Ciclo di vita del software: Tipologie di software

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Unità Didattica 2 I Linguaggi di Programmazione

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Fasi della programmazione. Gabriella Trucco

LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI

L ELABORATORE ELETTRONICO

ALGORITMI E PROGRAMMAZIONE STRUTTURATA. Prof R. Bresolin a.s

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati

Elementi di programmazione

Introduzione alla programmazione. Walter Didimo

Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema

Transcript:

Lezione 1 Problemi Algoritmi Programmi Programmazione I Paolo Valente - 2016/2017

Il problema... della tigella emiliana Avete invitato a cena degli amici stranieri e volete fare provare loro le tigelle emiliane Solo che non le avete mai preparate di persona prima d'ora! Programmazione I Paolo Valente - 2015/2016 2

Verso la soluzione Bisogna sapere di cosa è fatta una tigella (ingredienti ingredienti), e come va preparata (ricetta ricetta) Proviamo a cercare su Internet: http://www.alfemminile.com/w/ricetta/r1318/tigelle-emiliane.html Forse è fatta, la cena emiliana è salva! Programmazione I Paolo Valente - 2015/2016 3

Retrospettiva Avevamo un problema: preparare le tigelle Abbiamo cercato la ricetta: ingredienti e passi da eseguire Abbiamo tradotto le parole scritte nella ricetta in una serie di azioni da compiere e, se stiamo stati bravi, abbiamo cucinato una bella cena emiliana ai nostri amici Programmazione I Paolo Valente - 2015/2016 4

Tre fasi principali Specifica di un problema Dobbiamo preparare le tigelle Specifica del processo di risoluzione Ricetta: ingredienti e passi Codifica del processo di risoluzione Traduzione della ricetta in una serie di azioni da compiere Programmazione I Paolo Valente - 2015/2016 5

Risoluzione di un problema Con questo termine si indica il processo che: dato un problema (nel nostro esempio: preparare le tigelle) individuato un opportuno metodo risolutivo (nel nostro esempio ingredienti + passi) trasforma i dati iniziali nei corrispondenti risultati finali (nel nostro esempio le tigelle pronte da servire) Sarà ovviamente necessario essere in grado di eseguire le operazioni previste per ottenere i risultati finali Programmazione I Paolo Valente - 2015/2016 6

Programmazione I Paolo Valente - 2015/2016 7 Algoritmo In generale la ricetta delle tigelle, ossia la lista degli ingredienti ed i passi da seguire, specificano un insieme di oggetti ed una sequenza di azioni da compiere per risolvere un certo problema Si tratta di un esempio di algoritmo In effetti si tratta 'quasi' di un algoritmo, come vedremo fra un attimo... Algoritmo Sequenza finita di azioni, da compiere su un certo insieme di oggetti, che risolve in un tempo finito una classe di problemi

Problema... Possiamo quindi dire che i cuochi sono degli esperti di algoritmi Esperti della classe di algoritmi con i quali si preparano piatti molto buoni C'è però un problema: data una stessa ricetta, il risultato finale può variare moltissimo in base a chi la prepara Come mai? Programmazione I Paolo Valente - 2015/2016 8

Programmazione I Paolo Valente - 2015/2016 9 Ambiguità 1/2 Una delle cause del problema è che i passi di una ricetta non sono specificati in modo completo e non ambiguo Quante volte va girato il latte in cui si scioglie il lievito? Come si aggiunge la farina esattamente? Quanto bisogna premere quando si stende la pasta? A che temperatura deve essere esattamente la piastra?...

Programmazione I Paolo Valente - 2015/2016 Ambiguità 2/2 Affinché si possa parlare di vero algoritmo, è invece necessario che le azioni da compiere siano Perfettamente definite Assolutamente non ambigue Una delle soluzioni, come vedremo per i problemi che ci interessano, è specificare un algoritmo scegliendo le azioni da svolgere solo all'interno di un insieme finito di azioni elementari che godono delle precedenti due proprietà Bene, ora siamo pronti per partire... 10

Programmazione I Paolo Valente - 2015/2016 11 Problemi obiettivo del corso In questo corso faremo riferimento solo alla classe di problemi risolvibili mediante l'esecuzione di algoritmi Più in particolare, considereremo solo la sottoclasse di tali problemi in cui sia gli oggetti su cui debbono lavorare gli algoritmi che i risultati che essi devono produrre sono informazioni

Programmazione I Paolo Valente - 2015/2016 12 Strategia Ideare una soluzione sotto forma di algoritmo Fare eseguire l'algoritmo ad una macchina che Non sbagli praticamente mai Sia estremamente veloce Abbia una memoria enorme

Elaboratore elettronico Negli ultimi decenni, il progresso dell'elettronica ha permesso la costruzione di macchine in grado di manipolare informazioni in modo deterministico ed ad altissima velocità Computer Possiamo utilizzarli per mettere in pratica la precedente strategia? Sì, purché riusciamo a fare eseguire loro i passi degli algoritmi con cui intendiamo risolvere tali problemi Programmazione I Paolo Valente - 2015/2016 13

Programmazione I Paolo Valente - 2015/2016 14 Computer Macchina in grado di eseguire insiemi di azioni (passi, mosse) ) elementari Le azioni vengono eseguite su oggetti (dati di ingresso) ) per produrre altri oggetti (dati in uscita, risultati) L esecuzione di azioni viene richiesta all elaboratore attraverso frasi scritte in un qualche linguaggio (istruzioni istruzioni)

Programmazione I Paolo Valente - 2015/2016 15 Linguaggio di programmazione Lo strumento attraverso il quale si riesce a dire ad un calcolatore cosa fare, e quindi a fargli eseguire un algoritmo, è un linguaggio di programmazione In particolare ogni linguaggio di programmazione è dotato di propria sintassi simboli e parole ammesse, regole grammaticali,... semantica significato dei simboli e delle parole Alcune delle parole designano istruzioni,, ossia proprio azioni da compiere

Programmazione I Paolo Valente - 2015/2016 16 Programma e programmazione PROGRAMMA Testo scritto secondo la sintassi e la semantica di un linguaggio di programmazione. PROGRAMMAZIONE, CODIFICA o IMPLEMENTAZIONE Scrittura di un algoritmo attraverso un insieme ordinato di frasi, appartenenti ad un linguaggio di programmazione, che specificano le azioni da compiere in modo formale interpretabile dal computer. In pratica, scrittura di un programma.

Programmazione I Paolo Valente - 2015/2016 17 Algoritmo e programma Quindi: Un programma non è altro che la formulazione testuale di un algoritmo in un linguaggio di programmazione

Programmazione I Paolo Valente - 2016/2017 18 Rigidità I linguaggi di programmazione hanno una sintassi ed una semantica definite in modo rigido e completo Come mai serve questa rigidità? Non bastava un linguaggio naturale, tipo l'inglese o l'italiano stesso? No Soprattutto per i problemi di ambiguità tipici dei linguaggi naturali E come abbiamo visto, l'ambiguità non è ammessa nel contesto degli algoritmi

Programmazione I Paolo Valente - 2016/2017 19 Esempi 1/2

Programmazione I Paolo Valente - 2016/2017 20 Esempi 2/2

Programmazione I Paolo Valente - 2015/2016 21 Esecuzione di un programma L'esecuzione delle azioni nell'ordine specificato dall'algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema DATI INPUT Computer RISULTATI OUTPUT

Programmazione I Paolo Valente - 2015/2016 22 Schema riassuntivo DATI Formulazione di un problema Individuazione di un algoritmo Programma (esecuzione( Metodo risolutivo ( progetto ) Linguaggio di Programmazione ( codifica ) RISULTATI

Programmazione I Paolo Valente - 2015/2016 23 Siamo pronti a partire... dalla fine :) Incominciamo cioè dall'improvvisare il nostro primo programma Per farlo, passiamo alla prima esercitazione di questo corso e svolgiamola per intero