Algorithmique – Les structures de contrôle (boucles)

Algorithmique – Programmation

Le type unit

◮ Type de donn´ee ayant une seule valeur : ()
# ();;
– : unit = ()
◮ Symbolise le type vide
◮ Type utilis´e comme type de retour des op´erations `a effet de bord (tels que les appels syst`emes) :
# print int 5;;
5- : unit = ()
# print string « hello world!\n »;;
hello world!
– : unit = ()
◮ Pour enchaˆıner les expressions de type unit, on utilise le ;
◮ Exemple :
# print_string « saisissez un nombre: » ; let i = read_int() in print_int i;
print_newline() ;;
saisissez un nombre:12
– : unit = ()
◮ Il est possible de grouper une s´equence d’expressions entre les mots-cl´es begin et end
◮ Remarque : une s´equence d’expressions peut se terminer
par une expression de type = unit, cette derni`ere expression sera le type de la s´equence

Données mutables

◮ Lien nom-valeur modifiable (inutile de recr´eer un lien avec let)
◮ Notion de pointeur sur un emplacement m´emoire
◮ On parle ´egalement de r´ef´erence (adresse m´emoire)
◮ Utilisation des r´ef´erences en Caml :
• cr´eation # let x = ref 5;;
val x : int ref = {contents = 5}
• ´ecriture # x := 6;;
– : unit = ()
• lecture # !x ;;
– : int = 6
◮ Remarque : les r´ef´erences sont typ´ees
◮ R´ef´erence sur un entier = r´ef´erence sur une liste :
# let x = ref [2.3 ; 3.6];;
val x : float list ref = {contents = [2.3; 3.6]}
# List.hd (!x);; – : float = 2.3

Les structures de contrôle (boucles)

◮ Boucle pour (for) :
for compteur entier = debut to fin do sequence d’actions (type unit)
done for compteur entier = debut downto fin do sequence d’actions (type unit) done
◮ Boucle tant que (while) :
while test vrai do
sequence d’actions (type unit)
done
◮ Exemples d’utilisation :
# for i = 1 to 5 do
print int i ; print string  » « ; done;;
1 2 3 4 5 – : unit = ()
◮ Exemples d’utilisation :
# for i = 1 to 5 do
print int i ; print string  » « ; done;;
1 2 3 4 5 – : unit = ()
# for i = 5 downto 1 do
print int i ; print string  » « ; done;;
5 4 3 2 1 – : unit = ()
◮ Exemples d’utilisation :
# for i = 1 to 5 do
print int i ; print string  » « ; done;;
1 2 3 4 5 – : unit = ()
# for i = 5 downto 1 do
print int i ; print string  » « ; done;;
5 4 3 2 1 – : unit = ()
# let r = ref 1 in while (!r < 6) do
print int !r ; print string  » « ;
r := !r + 1;
done;;

Caml fonctionnel vs impératif
Le type unit
Données mutables
Les structures de contrôle (boucles)
Les tableaux
Les entrées/sorties
Interprétation vs compilation

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *