Sei sulla pagina 1di 4

Appunti per il Laboratorio di Informati

Classe I D  Li eo S ienti o E. Majorana  Guidonia


9 ottobre 2012
1.

Introduzione agli algoritmi

Un algoritmo un pro edimento he, in una sequenza nita e ordinata di passi, permette
di ottenere un dato riultato o di risolvere un problema.
La des rizione di un algoritmo in

linguaggio di pseudo odi a

si suddivide di solito in tre

parti.
(1) Intestazione. Si tratta di una brevissima des rizione dell'algoritmo. In AlgoBox
la sezione Prsentation de l'algorithme.
(2) Sezione di hiarativa.

In questa parte si

di hiarano

le variabili e le eventuali

ostanti he si intendono utilizzare per des rivere l'algoritmo.

In AlgoBox la

sezione Variables, e la di hiarazione avviene li ando su D larer nouvelle variable. In questo ontesto una variabile il

nome on ui viene indi ato un dato il ui

valore pu variare durante l'ese uzione dell'algoritmo, mentre una ostante il nome
on ui viene indi ato un dato he non ambia durante l'ese uzione dell'algoritmo.
Il nome pu essere ostituito da un qualsiasi numero di lettere o di ifre, eventualmente separate da un unders ore ( io il simbolo _).

Per onvenzione non

ontiene spazi, n simboli di punteggiatura o aratteri spe iali.


Quando si denis e una variabile, o orre indi are il tipo di dato he essa rappre-

numeri i, e quelli alfanumeri i. I dati


reale o intero. I dati alfanumeri i on-

senta. Le tipologie pi frequenti sono i dati


numeri i a lor volta possono essere di tipo

tengono oltre a numeri an he lettere dell'alfabeto o aratteri spe iali quali % e &.
In Algobox i dati numeri i sono i dati du_type_nombre, quelli alfanumeri i sono i
dati du_type_ haine, e sarebbe inoltre possibile utilizzare dati du_type_lyste.
(3) Sezione ese utiva. In questa parte, onvenzionalmente posta fra le parole Inizio
e Fine, vengono des ritte le istruzioni vere e proprie he ompongono l'algoritmo.
Le istruzioni

elementari

he si utilizzano nella sezione ese utiva sono elen ate nella

seguente lista:

A quisizione dei dati.


Si utilizza l'espressione A quisis i (o Immetti o Leggi) seguita dalla variabile
di ui deve essere a quisito il valore.
In Algobox si li a su Ajouter Lire Variable.

Comuni azione di un risultato.


Si utilizza l'espressione Comuni a (o S rivi) seguita dal nome della variabile
di ui vogliamo omuni are il valore.
In Algobox si li a su Ajouter A her Variable. Algobox d inoltre la possibilit di s rivere messaggi durante l'ese uzione li ando Ajouter A her
Message.

Assegnazione di un valore ad una variabile.


Si utilizza l'espressione Assegna

variabile = valore, dove variabile indi a la vrivalore il valore he intendiamo assegnare

abile ui vogliamo assegnare il valore e


alla variabile.

In Algobox si li a su Ae ter Valeur Variable.

2.

Strutture di ontrollo

Nella sezione ese utiva si veri a spesso l'esigenza di ripetere pi volte al ue istruzioni,
oppure di eseguire erte istruzioni solo a ondizione he siano veri ate determinate ondizioni.

Pi in generale, si presenta spesso la ne essit di ontrollare l'ordine on ui

le istruzioni devono essere eseguite.

Le strutture he onsentono di regolare il usso di

ese uzione delle varie istruzioni all'interno di un algoritmo si hiamno

strutture di ontrollo.

Le strutture di ontrollo fondamentali sono tre: la sequenza, la selezione, e la ripetizione.


2.1. La sequenza. la pi sempli e struttura di ontrollo.

Basta s rivere le istruzioni

esattamente nell'ordine in ui devono essere svolte. Il nostro primo algoritmo Perimetro


Rettangolo in eetti strutturato in sequenza.

Qua di seguito trovate la sua sezione

di hiarativa ed ese utiva.

1 VARIABLES
2
lato1 EST_DU_TYPE NOMBRE
3
lato2 EST_DU_TYPE NOMBRE
4
perimetro EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6
LIRE lato1
7
LIRE lato2
8
perimetro PREND_LA_VALEUR 2*(lato1+lato2)
9
AFFICHER "Il perimetro del rettangolo : "
10
AFFICHER perimetro
11 FIN_ALGORITHME
2.2. La selezione. Questa struttura di ontrollo onsente di s egliere le istruzioni in base al
veri arsi di una erta ondizione. La sintassi in linguaggio di pseudo odi a la seguente:
Se

ondizione

allora

istruzione1

altrimenti

istruzione2

La parte altrimenti

istruzione2

non obbligatoria. Se viene omessa, signi a he non

deve essere eseguita al una istruzione se la ondizione non risulta veri ata. Spesso inoltre
a ade he dopo l'allora o l'altrimenti siano presenti non singole istruzioni ma blo hi di
pi istruzioni.
In AlgoBox si li a su Ajouter SI...Alors e poi eventualmente si aggiunge l'opzione
Ajouter SINON.
2.3. La Ripetizione. Talvolta si vuole ripetere un'istruzione ntanto he una erta ondizione resta soddisfatta. Si utilizza allora la osiddetta iterazione pre ondizionale, he
in linguaggio di pseudo odi a ha la seguente sintassi:
Mentre

ondizione

allora

istruzione

Quello he avviene quando si utilizza tale struttura di ontrollo he, se la ondizione


vera l'istruzione viene eseguita, e viene i li amente ripetuta ntanto he la ondizione non
risulta falsa. Se la ondizione risulta inizialmente falsa allora l'istruzione non viene eseguita.
In AlgoBox si li a su Ajouter TANT QUE....

Abbiamo utilizzato sia la pro edura di selezione he quella di iterazione pre ondizionale
quando abbiamo s ritto l'algoritmo per il al olo del MCD di due numeri interi basato
sul metodo delle divisioni su essive di Eu lide.

Qua di seguito trovate la sua sezione

di hiarativa ed ese utiva.

1 VARIABLES
2
a EST_DU_TYPE NOMBRE
3
b EST_DU_TYPE NOMBRE
4
r EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6
LIRE a
7
LIRE b
8
TANT_QUE (a==0 ET b==0) FAIRE
9
DEBUT_TANT_QUE
10
AFFICHER "I numeri a e b non possono essere ontemporaneamente nulli."
11
LIRE a
12
LIRE b
13
FIN_TANT_QUE
14
SI (a<0) ALORS
15
DEBUT_SI
16
a PREND_LA_VALEUR -a
17
FIN_SI
18
SI (b<0) ALORS
19
DEBUT_SI
20
b PREND_LA_VALEUR -b
21
FIN_SI
22
SI (a==0 OU b==0) ALORS
23
DEBUT_SI
24
SI (a==0) ALORS
25
DEBUT_SI
26
AFFICHER "Il MCD di a e b : "
27
AFFICHER b
28
FIN_SI
29
SINON
30
DEBUT_SINON
31
AFFICHER "Il MCD di a e b : "
32
AFFICHER a
33
FIN_SINON
34
FIN_SI
35
SINON
36
DEBUT_SINON
37
r PREND_LA_VALEUR a%b
38
TANT_QUE (r>0) FAIRE
39
DEBUT_TANT_QUE
40
a PREND_LA_VALEUR b
41
b PREND_LA_VALEUR r
42
r PREND_LA_VALEUR a%b
43
FIN_TANT_QUE
44
AFFICHER "Il MCD di a e b : "
45
AFFICHER b
46
FIN_SINON
47 FIN_ALGORITHME

Altre volte inve e noto a priori quante volte ne essario ripetere una erta istruzione.
Si pu in questo aso utilizzare la osiddetta iterazione enumerativa, la ui sintassi in
linguaggio di pseudo odi a la seguente

variabile = valore iniziale


istruzione

Per

Fino a

valore nale

Ripeti

In questo aso la

variabile

viene detta Contatore, per h ha la funzione di ontare

il numero di ripetizioni e viene automati amente in rementata di una unit a ogni ripetizione.

Quando il ontatore raggiunge il valore nale, il i lo ha termine e l'algoritmo

esegue l'istruzione su essiva.


In AlgoBox si li a su Ajouter POUR...DE...A.
Un algoritmo he utilizzi tale struttura di ontrollo quello per il al olo dell'ennesimo
numero di Fibona i e qua sotto ne trovate la sezione di hiarativa e quella ese utiva.

1 VARIABLES
2
a EST_DU_TYPE NOMBRE
3
b EST_DU_TYPE NOMBRE
4
n EST_DU_TYPE NOMBRE
5
k EST_DU_TYPE NOMBRE
6
F EST_DU_TYPE NOMBRE
7 DEBUT_ALGORITHME
8
AFFICHER "Che numero di Fibona i si vuole al olare?"
9
LIRE n
10
SI (n==0 OU n==1) ALORS
11
DEBUT_SI
12
AFFICHER "Il numero di Fibona i ri hiesto : "
13
AFFICHER n
14
FIN_SI
15
SINON
16
DEBUT_SINON
17
a PREND_LA_VALEUR 0
18
b PREND_LA_VALEUR 1
19
POUR k ALLANT_DE 2 A n
20
DEBUT_POUR
21
F PREND_LA_VALEUR a+b
22
a PREND_LA_VALEUR b
23
b PREND_LA_VALEUR F
24
FIN_POUR
25
AFFICHER "Il numero di Fibona i ri hiesto : "
26
AFFICHER F
27
FIN_SINON
28 FIN_ALGORITHME

Potrebbero piacerti anche