Vous êtes sur la page 1sur 6

Ministère

de l’Enseignement Supérieur et de la Recherche Scientifique


Université d’Alger 1 – Faculté Des Sciences – Département Mathématique et Informatique
Initiation à l’algorithmique – MI/S1
TP 06 : Traitement répétitif -2- (While (condition) {Action} )

Problématique : Calculer la somme de tout les multiples de 5 inférieurs à 100 en


utilisant l’instruction de traitement répétitif (While)
Entrée : s,n,i des entiers : s pour la somme des multiples, n pour calculer le
multiple de 5, i le compteur de la boucle
Traitement : initialisation des valeurs de s par 0 et i par 1
Répéter le calcule de la somme des multiples tant que le compteur i est inférieur
à 20 tel que :
N=5*i
S = s+n
I = i +1
Affichage du résultat de calcule (s)

Algorithme EXO1;
var s,n,i :entiers ;
DEBUT
s <- 0 ;
i <- 1 ;
Tantque (i<20) faire debut
n <- 5*i ;
s <- s+n ;
i <- i+1 ;
Ftq ;
écrire("La somme des multiples est",s) ;
FIN.

Problématique : Déterminer si un nombre est parfait ou non tel que le nombre


parfait est égal à la somme de tous ses diviseurs excepté-lui-même
Entrée : i,s,n des entiers : i compteur de la boucle, n le nombre à déterminer, s
pour la somme des diviseurs
Traitement :
Afficher « Entrer la valeur de n » ensuite la lecture de n
Initialisé i par 1 et la somme s par 0
Calculer la somme tant que x<N
Si (nmodi=0) (c’est à dire le reste de division du nombre par i pour savoir si c’est
un diviseur ou non) alors on calcule la somme des diviseurs tel que :
s= s+i
i=i+1
Ensuite si la somme est égale au nombre alors on affiche : « Le nombre n est
parfait » sinon on affiche « Le nombre n n’est pas parfait
Sortie : L’affichage du résultat (si le nombre est parfait ou non)

Algorithme EXO2;
Var n,s,i :entiers ;
DÉBUT
écrire("Entrer une valeur") ;
lire(n) :
i <- 1 ;
s <- 0 ;
Tantque (x<n) faire debut
Si (nmodi==0) alors debut
s <- s +i ;
i <- i+1.
Finsi ;
Ftq ;
si (n==s) alors écrire("Le nombre",n," est parfait") ;
Sinon écrire("Le nombre",n," n’est pas parfait") ;
FIN.

Problématique : Lire un entier et déterminer si c’est un carré parfait tel que le


carré parfait s’il existe un entier y tel que y*y=x
Entrée: x,i,p des entiers : x pour la lecture du nombre entré par l’utilisateur , i
le compteur pour la boucle, p utilisé comme valeur booléen.
Initialisé les valeurs de p par 0 et de i par 1
Afficher : « Veuillez introduire une valeur positif »
La lecture de x
Tantque i inférieur ou égale à la racine du nombre on vérifie si (i*i==x) alors p
la valeur booléen devient 1 (vrai) ensuite i reçoit i+1
Sortie : On vérifie si p==1 c’est à dire il existe un nombre son carré qui est égale
à la valeur entré alors on affiche le nombre est un carré parfait sinon on affiche
qu’il n’est pas un carré parfait

Algorithme EXO3;
Var x,i,p :entiers non signé ;
DEBUT
p <- 0 ;
i <- 1 ;
Ecrire("Veuillez introduire une valeur positif") ;
Lire(x) ;
Tantque i <= sqrt(x) faire debut
Si (i*i==x) alors
d <- 1 ;
i <- i+1 ;
fin ;
Si (d==1) alors
Ecrire("Le nombre est un carré parfait") ;
Sinon ("Le nombre n’est pas un carré parfait") ;
FIN.