TD 2 corrigé sur les boucles en Scilab
Exercice 1
Ecrire un programme qui permet d’afficher les N premiers entiers impairs dans l’ordre décroissant.
Corrigé
N=input("Saisir N")
for nb=(2*N-1):-2:1
disp(nb)
endExercice 2
Écrire un programme qui saisie N entiers et affiche leur somme et leur moyenne ?
Corrigé
N=input("Saisir N")
s=0
for i=1:N
val=input("saisir un nombre ")
s=s+val
end
moyenne=s/N
disp("la somme est : ",s)
disp(moyenne,"la moyenne est : ")Exercice 3
Ecrire un programme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit! », et in-versement, « Plus grand ! » si le nombre est inférieur à 10.
Corrigé
n=input("saisir un nombre")
while (n<10 or n>20)
if(n<10)then
disp("plus grand")
end
if(n>20)then
disp("plus petit")
end
n=input("saisir un nombre")
end
disp("bravo !")Exercice 4
Ecrire un programme qui détermine si un entier N est parfait ou non. Un entier est dit parfait s’il est égal à la somme de ses diviseurs. Exemple 6 = 3 + 2 +1
Corrigé
N=input("Saisir N")
s=0
for i=1:(N/2)
if(modulo(N,i)==0)then
s=s+i
end
end
if(s==N)then
disp("le nombre est parfait")
else
disp("le nombre n'est pas parfait")
endExercice 5
Ecrire un programme qui permet de calculer la moyenne de notes fournies au clavier, le nombre des notes n’est pas connu a priori et l’utilisateur peut en fournir autant qu’il le désire. Pour signaler qu’il a terminé, on convient qu’il fournira une note fictive négative. Celle-ci ne devra naturellementpas être prise en compte dans le calcul de la moyenne.
Corrigé
note=input("saisir une note")
s=0
n=0
while(note>=0)
s=s+note
n=n+1
note=input("saisir une note")
end
if(n>0)then
moyenne=s/n
disp("moyenne de ces ",n," notes : ",moyenne)
else
disp("saisir au moins une note")
endExercice 6
Soit un montant m donné déposé dans une caisse d’épargne à un taux d’intérêt annuel t donné.
Elaborez un programme qui calcule :
- Le montant épargné après 10 ans
- Le nombre d’années nécessaires pour que ce montant atteigne 1 000 000 DH.
Corrigé
m=input("saisir le montant")
t=input("saisir le taux d'interet")
montant=m
for i=1:10
montant=montant+montant*t
end
disp(" le montant epargne apres 10ans est : ",montant) m=input("saisir le montant")
t=input("saisir le taux d'interet")
montant=m
annee=0
while(montant<1000000)
montant=montant+montant*t
annee=annee+1
end
disp(" nombre d'annees necessaires pour atteigne 1000000 DH est ",annee)
