Corso di Laurea in Scienze
e Tecnologie Chimiche
corso di
Informatica Generale
Paolo Mereghetti
DISCo – Dipartimento di Informatica,
Sistemistica e Comunicazione
Programmazione in C
Il concetto di algoritmo
Sequenza di azioni (prescrizioni) per effettuare un dato compito
ossia
La descrizione di una serie di operazioni la cui esecuzione
permette di risolvere un dato problema
La definizione di un algoritmo è basata sulla rappresentazione di
informazioni e implica una loro trasformazione e un’eventuale
produzione di nuove informazioni
Esempio: ricetta per la realizzazione di un piatto
istruzioni di montaggio di un elettrodomestico
prelievo bancomat ecc…..
Il concetto di algoritmo
Gli algoritmi sono espressi mediante un linguaggio e sono
uomo
realizzati da un esecutore
macchina
Nell’elaboratore gli algoritmi per la soluzione di particolari
problemi sono espressi mediante un linguaggio di
programmazione
I linguaggi di programmazione sono i linguaggi formali che la
macchina è in grado di comprendere
Un programma è la descrizione di un algoritmo ed è costituito da
una sequenza di istruzioni che il calcolatore è in grado di
comprendere ed eseguire.
Il concetto di algoritmo
La descrizione è quindi costituita da:
Istruzioni, cioè costrutti linguistici che prescrivono l’esecuzione
di operazioni
Strutture di controllo, cioè costrutti linguistici che indicano
all’esecutore l’ordine in cui eseguire le operazioni
Tre principali strutture di controllo:
• Sequenza
• Selezione
• Iterazione
Il concetto di algoritmo
Struttura di selezione
permette la prescrizione di un azione sulla base del verificarsi
di una condizione
SE condizione
ALLORA istruzione1
struttura di controllo
ALTRIMENTI istruzione2
Esempio: telefonata
SE il numero è occupato
ALLORA ricomponi numero
ALTRIMENTI inizia conversazione
Il concetto di algoritmo
Struttura di iterazione
permette la prescrizione di ripetizione di un azione sino al
momento in cui si verifica una determinata condizione
RIPETI istruzione
struttura di controllo
FINCHE’ condizione
Il controllo viene fatto dopo l’esecuzione dell’istruzione
Uscita per condizione verificata (vera)
Esempio: telefonata
RIPETI componi numero sulla tastiera
FINCHE’ utente cercato ha segnale libero
Il concetto di algoritmo
Altre espressioni di struttura di iterazione
RIPETI istruzione
MENTRE condizione
Esempio: telefonata
RIPETI componi numero sulla tastiera
MENTRE utente cercato ha segnale occupato
Il concetto di algoritmo
Requisiti fondamentali di un algoritmo
Univocità
La descrizione è effettuata in un linguaggio comprensibile all’esecutore e
mediante un insieme finito di operazioni elementari, note all’esecutore
Completezza
Tiene conto di tutte le possibili condizioni che si possono verificare durante
la sua esecuzione
Finitezza
In un numero finito di passi il compito viene portato a termine
Rappresentazione a blocchi
Rappresentazione schematica di un algoritmo:
Istruzione 1
Sequenza
Istruzione 2
RIPETI
condizione falsa
Iterazione
Istruzione 3
FINCHE’
condizione
condizione vera
Istruzione 4
Selezione
allora
Istruzione 5
SE condizione
altrimenti
Istruzione 6
Esempio di algoritmo:
effettuare una telefonata
Sollevare i ricevitore
Attendere il segnale di linea
Ripeti
Comporre il numero
Componi una cifra
Finchè numero intero
Attendere la risposta
Se la linea è libera
Se l’interlocutore risponde
Condurre la conversazione
Deporre il ricevitore
Altrimenti
Deporre il ricevitore
Altrimenti (se la linea è occupata)
Deporre il ricevitore
Esempio di algoritmo: calcolo del massimo
tra due numeri
Inizio
Lettura
xey
Passo P1
x– y
Sì
>0?
Scrittura
“max è x”
No
Scrittura
“max è y”
Fine
Passo P2
Esempio di algoritmo: calcolo del massimo
Inizio
tra n numeri
Lettura
numeri
x1, x2, …
Prendi i primi due numeri x1 e x2
Passo P1
mmax(x1, x2)
Passo P2
Sì
Passo P3
Altri numeri
da esaminare?
Prendi il successivo, xi
mmax(m, xi)
No
Scrittura
“max è m”
Fine
Algoritmi Equivalenti
Inizio
Inizio
Lettura
numeri
x1, x2, …
ma x  0
Pre nd i i p rim i d ue num e ri x1 e x2
Pa sso P1
Lettura
num
m ma x(x1, x2)
Pa sso P2
Sì
Altri num eri d a
esa mina re?
Pa sso P3
Prend i il suc c essivo , xi
m ma x(m, xi)
Sì
num>0?
No
No
Sc rittura
Sc rittura
“ ma x è m”
Fine
No
num>ma x
?
Sì
m a x  num
“ ma x”
Fine