Lezione 11 - Dipartimento di Informatica

annuncio pubblicitario
Sommario
• Problema computazionale
• Sviluppo software
• Algoritmi
– Diagrammi di Flusso;
– Pseudo Codice
• Istruzioni Sequenziali, Condizionali, Cicliche;
• Javascript
Informatica di Base -- R.Gaeta
1
Il Problema computazionale
• È computazionale un problema che da alcuni dati iniziali porta
ad un risultato in uscita tramite almeno una sequenza
preordinata di passi;
• Esempi nella vita pratica si trovano facilmente nell’arte
culinaria o nella musica.
Informatica di Base -- R.Gaeta
2
Esempi
Il Risotto alla Zucca:
- Abbiamo gli ingredienti (riso, zucca, olio, prezzemolo, cipolla,
sale, etc.) con le giuste quantità;
- Seguiamo la ricetta;
- Serviamo il piatto a tavola.
Informatica di Base -- R.Gaeta
3
Altro esempio
L’esecuzione della nona di Beethoven:
- Abbiamo l’orchestra, il direttore ed i musicisti;
- Seguiamo lo spartito;
- La musica riempie la sala.
Informatica di Base -- R.Gaeta
4
Ma…
• Non è così facile come sembra!
• Per scrivere la “sequenza di passi” bisogna essere un
bravo cuoco o un bravo compositore (o entrambi, come
Rossini);
• Anche per sapere “eseguire” bisogna imparare l’arte
(bisogna avere un ottimo esecutore).
Informatica di Base -- R.Gaeta
5
Il “cuore” dell’informatica
• definizione di un particolare problema computazionale
• scrittura di un algoritmo che lo risolve
• scrittura del programma che traduce i passi
dell’algoritmo in termini comprensibili dal computer
Informatica di Base -- R.Gaeta
6
Il “cuore” dell’informatica
• Ovvero, dato un problema bisogna definire un
procedimento (l’algoritmo) che possa essere eseguito
automaticamente da un esecutore a partire dai dati in
ingresso per risolvere il problema (fornire i risultati in
uscita)
algoritmo
input
esecutore
output
Informatica di Base -- R.Gaeta
7
Quindi…
problema
risolutore
esecutore
essere umano
algoritmo
calcolatore
esecuzione
Informatica di Base -- R.Gaeta
8
Cosa è un Algoritmo
• Un algoritmo (procedimento) è una sequenza finita di passi
(azioni) che un esecutore è in grado di eseguire affinché
venga risolto (in un tempo finito) un dato problema
computazionale.
• Ogni passo deve essere eseguibile dall’esecutore e in un
tempo finito.
• Un algoritmo determina un procedimento sequenziale (un
passo dopo l’altro secondo un ordine specificato chiamato
flusso di esecuzione)
• La cosa difficile è scrivere una sequenza di passi che
risolvano il problema computazionale e NON scrivere un
programma per il calcolatore
Informatica di Base -- R.Gaeta
9
Esecutore di algoritmi
• Un esecutore è caratterizzato da
– il linguaggio che è in grado di interpretare
– l’insieme di azioni che è in grado di compiere
– l’insieme delle regole che ad ogni frase corretta del linguaggio
(costrutto linguistico) associano le relative azioni da compiere
Informatica di Base -- R.Gaeta
10
Caratteristiche di un algoritmo
• Tutte le azioni specificate dall’algoritmo devono essere
eseguibili dall’esecutore
– sono azioni elementari
• In caso contrario, si deve scomporre un problema
complesso in più sotto-problemi più semplici
• Per ogni problema più semplice deve esistere
un’istruzione nel linguaggio adottato per la scrittura
degli algoritmi la cui esecuzione lo risolve.
Informatica di Base -- R.Gaeta
11
Esempio di algoritmo
L’esecutore è un essere umano che è solo in grado di
premere tasti ed usare il mouse
• Accendere il calcolatore
• Accendere il monitor
• Scrivere il nome utente
• Scrivere la password
• Premere il tasto invio
• Se compare il messaggio di “password scaduta” allora
cambiare la password altrimenti accedere al desktop di
windows
Informatica di Base -- R.Gaeta
12
Esempio: scomposizione in sotto-problemi
• Ma l’esecutore sa direttamente eseguire il comando
“cambiare la password”?
• NO! Abbiamo definito in maniera precisa ed univoca che
cosa l’esecutore è in grado di fare per cui dobbiamo
scrivere un algoritmo per la risoluzione del problema
“cambiare la password”
– scrivere una sequenza di almeno sei caratteri
– ri-scrivere, per conferma, la stessa sequenza
– premere il tasto invio
• Per esercizio, avendo ormai esperienza di come si
accede all’aula 15, completate l’algoritmo!!
Informatica di Base -- R.Gaeta
13
Scarica