TD5 et correction

publicité
Degead UE21 TD 5
Exercice 1
Écrire les instructions permettant de calculer la somme des n premiers nombres au carré.
Écrire les instructions permettant de calculer la somme des n premiers nombres impaires au carré.
Exercice 2
On a entré les votes exprimés lors d'un scrutin dans une liste de noms. Donnez les instructions permettant d'acher les résultats du vote sous forme de pourcentage.
Exercice 3
Écrire un algorithme qui demande à l'utilisateur un nombre compris entre 1 et 3 jusqu'à ce que la
réponse convienne.
Exercice 4
Écrire un algorithme 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 inversement, Plus grand ! si le nombre est inférieur à 10.
Exercice 5
Écrivez une fonction qui renvoie le nombre de voyelles contenues dans une chaîne de caractères passée
en paramètre.
1
Correction
Exercice 1
.
n :=20 :
cpt :=0 :
for i from 1 to n do
cpt :=cpt +i*i :
od :
cpt ;
restart ;
n :=20 :
cpt :=0 :
i :=1 :
while(i<2*n)do
cpt :=cpt+i*i :
i :=i+2 :
od :
cpt ;
Ici on compte les carrés des nombres de 1 à 20
Ici on ne comptera que les 20 premiers nombres impaires.
n :=20 :
restart ; cpt :=0 :
for i from 1 by 2 to 2*n do
cpt :=cpt +i*i :
od :
cpt ;
Ici on utilisera by 2 dans la boucle for
2
Exercice 2
Code
.
ListeVotes :=["Francois","Marianne","Marianne","Claude","Amel","Francois","Francois",
"Marianne","Amel","Francois","Amel","Marianne","Marianne","Amel","Francois"] :
cptAm :=0 :
cptFr :=0 :
cptMa :=0 :
cptCl :=0 :
for i from 1 to nops(ListeVotes)do
if(ListeVotes[i]="Amel")then
cptAm :=cptAm+1 :
:
if(ListeVotes[i]="Francois")then
cptFr :=cptFr+1 :
:
if(ListeVotes[i]="Marianne")then
cptMa :=cptMa+1 :
:
if(ListeVotes[i]="Claude")then
cptCl :=cptCl+1 :
:
od ;
ScoreAmel :=evalf(100*cptAm/nops(ListeVotes)) ;
ScoreFrancois :=evalf(100*cptFr/nops(ListeVotes)) ;
ScoreMarianne :=evalf(100*cptMa/nops(ListeVotes)) ;
ScoreClaude :=evalf(100*cptCl/nops(ListeVotes)) ;
Résultat
.
ScoreAmel := 26.66666667
ScoreFrancois := 33.33333333
ScoreMarianne := 33.33333333
ScoreClaude := 6.666666667
3
Exercice 4
Code
.
n :=readstat("Donnez un nombre entre 0 et 20") ;
while(n<10 or n>20)do
if n<10 then
n :=readstat("Vous avez donné un nombre trop petit. Donnez un nombre plus grand.") ;
else
n :=readstat("Vous avez donné un nombre trop grand. Donnez un nombre plus petit.") ;
:
od ;
n;
Résultat
.
Donnez un nombre entre 10 et 20 n 2 ;
Vous avez donné un nombre trop petit. Donnez un nombre plus grand. 984 ;
Vous avez donné un nombre trop grand. Donnez un nombre plus petit. 12 ;
12
4
Téléchargement