• Non ci sono risultati.

Lezione 1 Lezione 1

N/A
N/A
Protected

Academic year: 2021

Condividi "Lezione 1 Lezione 1"

Copied!
23
0
0

Testo completo

(1)

Problemi Problemi Algoritmi Algoritmi Programmi Programmi

Lezione 1

Lezione 1

(2)

Il problema ...

Il problema ...

… della tigella emiliana della tigella emiliana

Avete invitato a cena degli amici Avete invitato a cena degli amici

stranieri e volete fare provare loro le stranieri e volete fare provare loro le tigelle emiliane

tigelle emiliane

Solo che non le avete mai preparate Solo che non le avete mai preparate di persona prima d'ora!

di persona prima d'ora!

(3)

Verso la soluzione Verso la soluzione

Bisogna sapere di cosa è fatta una Bisogna sapere di cosa è fatta una tigella (

tigella (ingredienti ingredienti), e come va ), e come va preparata (

preparata (ricetta ricetta) )

Proviamo a cercare su Internet: Proviamo a cercare su Internet:

https://ricette.giallozafferano.it/Crescentine-o-tigelle.html https://ricette.giallozafferano.it/Crescentine-o-tigelle.html

Forse è fatta, la cena emiliana è Forse è fatta, la cena emiliana è salva!

salva!

(4)

Retrospettiva Retrospettiva

Avevamo un problema: Avevamo un problema:

preparare le tigelle preparare le tigelle

Abbiamo cercato la ricetta: Abbiamo cercato la ricetta:

ingredienti ingredienti e e passi passi da eseguire da eseguire

Abbiamo tradotto Abbiamo tradotto le parole scritte le parole scritte

nella ricetta in una serie di azioni da nella ricetta in una serie di azioni da compiere e, se stiamo stati bravi,

compiere e, se stiamo stati bravi, abbiamo cucinato una bella cena abbiamo cucinato una bella cena emiliana ai nostri amici

emiliana ai nostri amici

(5)

Tre fasi principali Tre fasi principali

Specifica di un problema Specifica di un problema

Dobbiamo preparare le tigelle Dobbiamo preparare le tigelle

Specifica del processo di risoluzione Specifica del processo di risoluzione

Ricetta: ingredienti e passi Ricetta: ingredienti e passi

Codifica del processo di risoluzione Codifica del processo di risoluzione

Traduzione della ricetta in una Traduzione della ricetta in una serie di azioni da compiere

serie di azioni da compiere

(6)

Risoluzione di un problema Risoluzione di un problema

Con questo termine si indica il processo che: Con questo termine si indica il processo che:

dato un problema dato un problema

(nel nostro esempio: preparare le tigelle) (nel nostro esempio: preparare le tigelle)

individuato un opportuno metodo risolutivo individuato un opportuno metodo risolutivo (nel nostro esempio ingredienti + passi)

(nel nostro esempio ingredienti + passi)

trasforma i dati iniziali nei corrispondenti trasforma i dati iniziali nei corrispondenti risultati finali

risultati finali

(nel nostro esempio le tigelle pronte da (nel nostro esempio le tigelle pronte da servire)

servire)

Sarà ovviamente necessario essere in grado di Sarà ovviamente necessario essere in grado di eseguire le operazioni

eseguire le operazioni previste per ottenere i previste per ottenere i risultati finali

risultati finali

(7)

Algoritmo Algoritmo

In generale la ricetta delle tigelle, ossia la lista In generale la ricetta delle tigelle, ossia la lista

degli ingredienti ed i passi da seguire, specificano degli ingredienti ed i passi da seguire, specificano un insieme di oggetti ed una sequenza di azioni da un insieme di oggetti ed una sequenza di azioni da compiere per risolvere un certo problema

compiere per risolvere un certo problema

Si tratta di un esempio di Si tratta di un esempio di algoritmo algoritmo

In effetti si tratta In effetti si tratta quasi quasi di un algoritmo, di un algoritmo, come vedremo fra un attimo ...

come vedremo fra un attimo ...

Algoritmo Algoritmo

Sequenza

Sequenza finita di azioni, da compiere su un certo finita di azioni, da compiere su un certo

insieme di oggetti, che risolve in un tempo finito una insieme di oggetti, che risolve in un tempo finito una classe di problemi

classe di problemi

(8)

Problema ...

Problema ...

Possiamo quindi dire che i cuochi sono degli Possiamo quindi dire che i cuochi sono degli esperti di algoritmi

esperti di algoritmi

Esperti della classe di algoritmi Esperti della classe di algoritmi con i quali si preparano piatti con i quali si preparano piatti molto buoni

molto buoni

C'è però un problema: data una C'è però un problema: data una

stessa ricetta, il risultato finale può stessa ricetta, il risultato finale può variare moltissimo

variare moltissimo in base a chi la in base a chi la prepara

prepara

Come mai? Come mai?

(9)

Ambiguità 1/2 Ambiguità 1/2

Una delle cause del problema è che i passi di Una delle cause del problema è che i passi di una ricetta non sono specificati in modo

una ricetta non sono specificati in modo completo

completo e e non ambiguo non ambiguo

Quante volte va girato il latte in cui si Quante volte va girato il latte in cui si scioglie il lievito?

scioglie il lievito?

Come si aggiunge la farina esattamente? Come si aggiunge la farina esattamente?

Quanto bisogna premere quando si stende Quanto bisogna premere quando si stende la pasta?

la pasta?

A che temperatura deve essere A che temperatura deve essere esattamente la piastra?

esattamente la piastra?

... ...

(10)

Ambiguità 2/2 Ambiguità 2/2

Affinché si possa parlare di vero algoritmo, è Affinché si possa parlare di vero algoritmo, è invece necessario che le azioni da compiere invece necessario che le azioni da compiere siano

siano

Perfettamente definite Perfettamente definite

Assolutamente non ambigue Assolutamente non ambigue

Una delle soluzioni, come vedremo per i Una delle soluzioni, come vedremo per i

problemi che ci interessano, è specificare un problemi che ci interessano, è specificare un algoritmo scegliendo le azioni da svolgere

algoritmo scegliendo le azioni da svolgere solo all'interno di un insieme finito di azioni solo all'interno di un insieme finito di azioni elementari che godono delle precedenti due elementari che godono delle precedenti due proprietà

proprietà

Bene, ora siamo pronti per partire ... Bene, ora siamo pronti per partire ...

(11)

Problemi obiettivo del corso Problemi obiettivo del corso

In questo corso faremo riferimento solo In questo corso faremo riferimento solo alla classe di problemi risolvibili

alla classe di problemi risolvibili mediante l'esecuzione di algoritmi mediante l'esecuzione di algoritmi

Più in particolare, considereremo solo la Più in particolare, considereremo solo la sottoclasse di tali problemi in cui sia gli sottoclasse di tali problemi in cui sia gli oggetti su cui debbono lavorare gli

oggetti su cui debbono lavorare gli

algoritmi che i risultati che essi devono algoritmi che i risultati che essi devono produrre sono

produrre sono informazioni informazioni

(12)

Strategia Strategia

Ideare una soluzione sotto forma di Ideare una soluzione sotto forma di algoritmo

algoritmo

Fare eseguire l'algoritmo ad una Fare eseguire l'algoritmo ad una macchina che

macchina che

Non sbagli praticamente mai Non sbagli praticamente mai

Sia estremamente veloce Sia estremamente veloce

Abbia una memoria enorme Abbia una memoria enorme

(13)

Elaboratore elettronico Elaboratore elettronico

Negli ultimi decenni, il progresso dell'elettronica Negli ultimi decenni, il progresso dell'elettronica ha permesso la costruzione di macchine in grado ha permesso la costruzione di macchine in grado di manipolare informazioni in modo

di manipolare informazioni in modo deterministico deterministico ed ad

ed ad altissima velocità altissima velocità

Possiamo utilizzarli per mettere in pratica la Possiamo utilizzarli per mettere in pratica la precedente strategia?

precedente strategia?

Sì, purché riusciamo a fare eseguire loro i passi Sì, purché riusciamo a fare eseguire loro i passi degli algoritmi con cui intendiamo risolvere tali degli algoritmi con cui intendiamo risolvere tali

Computer

Computer

(14)

Computer Computer

Macchina in grado di eseguire insiemi di azioni Macchina in grado di eseguire insiemi di azioni (

(passi, mosse passi, mosse) elementari ) elementari

Le azioni vengono eseguite su oggetti ( Le azioni vengono eseguite su oggetti ( dati di dati di ingresso

ingresso) per produrre altri oggetti ( ) per produrre altri oggetti ( dati in dati in uscita

uscita, , risultati risultati) )

L’esecuzione di azioni viene richiesta L’esecuzione di azioni viene richiesta all’elaboratore attraverso “

all’elaboratore attraverso “ frasi scritte in un frasi scritte in un qualche linguaggio

qualche linguaggio” ( ” (istruzioni istruzioni) )

(15)

Linguaggio di programmazione Linguaggio di programmazione

Lo strumento attraverso il quale si riesce a dire ad Lo strumento attraverso il quale si riesce a dire ad un calcolatore cosa fare, e quindi a fargli eseguire un calcolatore cosa fare, e quindi a fargli eseguire un algoritmo, è un

un algoritmo, è un linguaggio di linguaggio di programmazione

programmazione

In particolare ogni linguaggio di programmazione è In particolare ogni linguaggio di programmazione è dotato di propria

dotato di propria

sintassi sintassi

simboli e simboli e parole parole ammesse, regole ammesse, regole grammaticali, ...

grammaticali, ...

semantica semantica

significato dei significato dei simboli simboli e delle e delle parole parole

Alcune delle parole designano Alcune delle parole designano istruzioni, ossia istruzioni , ossia proprio azioni da compiere

proprio azioni da compiere

(16)

Programma e programmazione Programma e programmazione

PROGRAMMA PROGRAMMA

Documento di testo

Documento di testo , scritto secondo la sintassi e la , scritto secondo la sintassi e la semantica di un linguaggio di programmazione.

semantica di un linguaggio di programmazione.

PROGRAMMAZIONE, CODIFICA o PROGRAMMAZIONE, CODIFICA o IMPLEMENTAZIONE

IMPLEMENTAZIONE

Scrittura di un algoritmo attraverso un insieme Scrittura di un algoritmo attraverso un insieme

ordinato di frasi, appartenenti ad un linguaggio di ordinato di frasi, appartenenti ad un linguaggio di programmazione, che specificano le azioni da

programmazione, che specificano le azioni da compiere in modo formale interpretabile dal compiere in modo formale interpretabile dal computer.

computer.

In pratica,

In pratica, scrittura di un programma scrittura di un programma . .

(17)

Algoritmo e programma Algoritmo e programma

Quindi: Quindi:

Un programma non è altro che la Un programma non è altro che la formulazione testuale

formulazione testuale di un di un algoritmo

algoritmo in un in un linguaggio di linguaggio di programmazione

programmazione

(18)

Rigidità Rigidità

I linguaggi di programmazione hanno una sintassi I linguaggi di programmazione hanno una sintassi ed una semantica definite in modo rigido e

ed una semantica definite in modo rigido e completo

completo

Come mai serve questa rigidità? Come mai serve questa rigidità?

Non bastava un linguaggio naturale, tipo l'inglese Non bastava un linguaggio naturale, tipo l'inglese o l'italiano stesso?

o l'italiano stesso?

No No

Soprattutto per i problemi di ambiguità tipici dei Soprattutto per i problemi di ambiguità tipici dei linguaggi naturali

linguaggi naturali

E come abbiamo visto, l'ambiguità non è E come abbiamo visto, l'ambiguità non è ammessa nel contesto degli algoritmi

ammessa nel contesto degli algoritmi

(19)

Esempi 1/2

Esempi 1/2

(20)

Esempi 2/2

Esempi 2/2

(21)

Esecuzione di un programma Esecuzione di un programma

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

Computer

INPUT DATI

OUTPUT RISULTATI

(22)

Schema riassuntivo Schema riassuntivo

Programma Formulazione

di un problema Individuazione di un algoritmo

Metodo risolutivo

(progetto) Linguaggio di Programmazione

(codifica)

(esecuzione)

DATI

RISULTATI

(23)

Siamo pronti a partire ...

Siamo pronti a partire ...

… dalla fine :) … dalla fine :)

Incominciamo cioè dall'improvvisare il nostro Incominciamo cioè dall'improvvisare il nostro primo programma …

primo programma …

Per farlo, passiamo alla prima esercitazione di Per farlo, passiamo alla prima esercitazione di questo corso e svolgiamola per intero

questo corso e svolgiamola per intero

Ecco il link al video di tale esercitazione: Ecco il link al video di tale esercitazione:

https://drive.google.com/file/d/1koMHxnajm2eu86FnfsUGs6cvJ83Zi2BW/view?usp=drivesdk https://drive.google.com/file/d/1koMHxnajm2eu86FnfsUGs6cvJ83Zi2BW/view?usp=drivesdk

Riferimenti

Documenti correlati

Il comune di Forlimpopoli, in Emilia Romagna, e la fondazione Casa Artusi stanno lavorando insieme per promuovere una serie di eventi dedicati al padre della cucina italiana

FARINA PARZIALMENTE DISOLEATA DI MANDORLA ORIGINE: SICILIA Defatted Almond Flour..

[r]

Gli ordinali ottenibili in questo modo si chiamano cardinali e sono solo una piccola parte di tutti gli ordinali (perch` e? Considerate ad esempio il caso degli

Quest’ultima deve essere valutata soprattutto sulla base della ripetibilità della misura valutata confrontando misure. condotte in posizioni vicine on in condizioni ambientali

Stabilire gli obiettivi di marketing e valutare i risultati attesi Generare strategie e piani operativi di marketing. Definire i programmi Stabilire

Nell'invito abbiamo già tutti gli elementi per collegarci; in ogni caso 10 minuti prima di ogni incontro riceveremo, sempre via email, ​una notifica​; vediamo come usarla

[r]