Elementi di Programmazione - Università degli Studi della Basilicata

Programmi
Corso di Matematica per la Chimica
Dott.ssa Maria Carmela De Bonis
Dipartimento di Matematica, Informatica e Economia
Università della Basilicata
a.a. 2014-15
Elementi di programmazione
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Programmi
Un elaboratore riceve dei dati in ingresso, li elabora secondo una
sequenza predefinita di operazioni e infine restituisce il risultato sotto
forma di dati di uscita o di azioni
Dati di input
−→ Elaborazione
−→ Dati di output
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
La programmazione consiste:
nell’identificare le informazioni originali e finali
nel definire le modalità operative per passare da informazioni
iniziali (dati) ad informazioni finali (risultati).
Il programma è:
una sequenza di istruzioni o comandi elementari scritto secondo le
regole di un linguaggio convenzionale. Se viene eseguito fornisce il
risultato richiesto.
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
I programmi, per essere eseguiti, devono essere scritti in un
linguaggio comprensibile per l’elaboratore che, comunque, trasforma
e comprende il solo il Linguaggio Macchina che utilizza come
alfabeto solo i simboli 0 e1.
In questo corso il linguaggio di programmazione sarà il MatLab.
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Sia P un assegnato problema.
Per la sua risoluzione distinguiamo diverse fasi:
1
l’analisi che consiste in:
individuazione dei dati di input
individuazione dei risultati
ricerca dell’algoritmo
2
la programmazione ovvero la traduzione dell’algoritmo in un
linguaggio di programmazione
3
l’esecuzione del programma
Al termine della procedura si ottengono i risultati.
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Algoritmo
Un algoritmo è:
una sequenza finita di operazioni logiche e non ambigue che opera su
dati e produce risultati
Le caratteristiche di un algoritmo sono:
non ambiguità
finitezza
generalità
Un algoritmo descrive non solo le operazioni ma anche l’ordine
temporale in cui esse devono essere eseguite.
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Descrizione degli Algoritmi
Gli algoritmi constano dei seguenti elementi:
oggetti (informazioni): le entità sui cui opera l’algoritmo;
operazioni: interventi da effettuare sugli oggetti;
strutture di controllo: sequenza, selezione, iterazione.
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Oggetti
Sono definiti da:
Valore
Tipo
Significato
Possono essere:
Costanti
Variabili
Espressioni
Possono rappresentare:
Dati iniziali del problema
Informazioni ausiliarie
Risultati parziali
Risultati finali
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Costanti
Rappresentano dei valori che non variano durante l’esecuzione
dell’algoritmo
Possono essere sia numeriche che alfanumeriche
Nel caso di costanti alfanumeriche il valore deve essere
racchiuso tra apici
Esempio
4 è una costante numerica (il numero 4)
’ciao’ è una costante alfanumerica
’4’ è una costante alfanumerica (il carattere 4)
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Variabili
Sono dei contenitori di valori identificati da nomi simbolici
Il nome di una variabile deve sempre iniziare con un carattere
non numerico
Il nome della variabile rappresenta una scatola
Il valore della variabile il suo contenuto. Esso può cambiare
durante la stessa esecuzione o esecuzioni diverse dello stesso
programma
Il Tipo di una variabile identifica l’insieme dei valori che può
assumere e le operazioni che possono essere compiute sui suoi
valori
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Il Tipo di una variabile
Tipo numerico: può assumere solo valori numerici e può
apparire come operando in una espressione aritmetica
Tipo logico: può assumere solo i valori True e False e può
apparire come operando in una espressione logica
Tipo alfanumerico: può assumere qualunque valore e non ha
senso utilizzarla nelle espressioni
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Assegnazione
L’assegnazione è l’operazione che permette di modificare il valore di
una variabile e si indica con il simbolo “=”.
Esempio
x = 10
indica che alla variabile di nome x viene assegnato il valore 10.
Regole fondamentali:
A sinistra dell’operatore di assegnazione deve esserci il nome di
una e una sola variabile;
A destra dell’operatore di assegnazione può esserci una costante,
una variabile o un’espressione;
Il tipo del dato della variabile a sinistra deve essere compatibile
con il tipo di dato ottenuto dall’espressione a destra.
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Operatori
Operatori aritmetici: +, −, ∗, /, ∧
agiscono sulle variabili e le costanti numeriche
producono un valore numerico
Operatori di confronto: ==, ! =, >, <, ≤, ≥
agiscono su variabili e costanti di un tipo ordinato (interi, reali,
caratteri)
producono un valore logico (true o false)
Operatori logici: AND, OR, NOT
agiscono su variabili e costanti di tipo logico
producono un valore logico
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Espressioni
Una espressione è una combinazione di variabili e costanti dello
stesso tipo correlati da operatori definiti sul tipo stesso.
Esempio A, B, C, D variabili di tipo numerico
D = (A ∗ B + C) ∧ 3/4
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Priorità degli operatori aritmetici
priorità
1
2
3
operatori
∧
∗, /
+, −
Operazioni con pari livello di priorità sono effettuate da sinistra a
destra, eccetto l’elevamento a potenza (da destra a sinistra).
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Definizione dell’ordine di precedenza mediante l’uso di
parentesi
A ∗ B/C
A/B/C
−A2
(−A)2
A+B+C
B(C + D)
4, 5 ∗ A
A ∗ −B
è equivalente a
è equivalente a
è equivalente a
è equivalente a
è equivalente a
illegale
illegale
illegale
(A ∗ B)/C
(A/B)/C
−(A2 )
A2
(A + B) + C
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Tabelle di verità
P, Q espressioni logiche T= true, F= false
P
T
F
P
T
T
F
F
P
T
T
F
F
NOT P
F
T
Q
F
T
T
F
Q
F
T
T
F
P OR Q
T
T
T
F
P AND Q
F
T
F
F
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Regole sulle operazioni
Una operazione deve terminare entro un intervallo finito di tempo
Una operazione deve produrre un effetto osservabile
Un operazione deve produrre lo stesso effetto ogni volta che
viene eseguita a partire dalle stesse condizioni iniziali
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Strutture di controllo
Sequenza: le operazioni sono eseguite una in seguito all’altra
Selezione: blocchi di operazioni sono eseguite in alternativa
Iterazione: blocchi di operazioni sono eseguite un certo numero
di volte
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Il linguaggio informale per la descrizione di algoritmi è: il flow-chart
o diagramma di flusso
Il flow-chart é un diagramma che rappresenta sinteticamente un
algoritmo.
Ogni istruzione è racchiusa in una figura geometrica. La forma della
figura indica il tipo di istruzione.
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Inizio e Fine
Istruzione di Input
Istruzione di assegnazione
Istruzione di Output
test
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15
Programmi
Caratteristiche di un buon programma
Affidabilità o Efficacia: accertata attendibilità dei risultati
Efficienza: minor tempo possibile, minore spazio di memoria
possibile
Leggibilità: buona documentazione sia esterna che interna per
essere compreso e/o modificato da altri
Per misurare l’efficienza di un algoritmo si studia il suo
Costo Computazionale che rappresenta il numero complessivo delle
operazioni elementari in funzione dei dati di ingresso.
Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica Corso
e Economia
di Matematica
Università
perdella
la Chimica
Basilicata a.a. 2014-15