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) end
Exercice 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") end
Exercice 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") end
Exercice 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)