Structures de boucle |
Considérons le cas suivant : il s'agit d'écrire un programme en assembleur permettant de mettre en œuvre une division entière de deux entiers sur 8 bits soit à rechercher result tel que :
ou à faire croître result tant que la condition num ≤ result.denum soit vraie. Dans le cas où result.denum > num alors le résultat n'est pas result mais result – 1. La structure fonctionnel de cette application se réduit à sa plus simple expression :
Le modèle comportemental se déduit de la formulation précédente. Il comporte une boucle tant que qui permet de rechercher result et le test dans le cas strictement supérieure. Il vient : début result <- 0 tant que(denum.result < num) faire result <- result + 1 fintq si (result.denum > num) alors result <- result – 1 finsi fin Il est possible aussi de modéliser le comportement par une boucle faire …. tant que. Dans ce cas, il vient : début result <- 0 faire result <- result + 1 tant que (denum.result < num) si (result.denum > num alors result <-result – 1 finsi fin |