Corrigé C22. Enoncé
Exercice 1 : X ?, Y ?
1. Au niveau de l'algorithme il manque la définition de la variable N. l'algorithme x
calcul la somme S = 1 + 7 + 21 + 35.... en prenant exactement ( N div 2 ) + 1 termes.
POUR N=1 , S est 1
POUR N=2 ou N=3 , S est 1 + 7
POUR N=4 ou N=5 , S est 1 + 7 + 21
POUR N=6 ou N=7 , S est 1 + 7 + 21 + 35
etc.
l'algorithme Y délivre la valeur 1, puis les N premiers multiples de i.
POUR n=6 et i =4, y délivre 1, 4, 8, 12, 16, 20 et 24.
POUR n=3 et i=1, y délivre 1, 1, 2, 3.
Exercice 2 : Calcul de la somme 1/2 - 1/3 + 1/4 +...
Une simple analyse nous permet de trouver la formule de récurrence suivante :
S0 = 0
Sn := Sn-1 + (-1)n+1 / (n+1)
Donc S1 = 1/2 ; S2 = S1 -1/3 ; S3 = S2 + 1/4 ; .....
On calcule successivement les termes S1, S2, .....
On s'arrête quand la différence ( en valeur absolue ) de deux termes consécutifs
devient inférieure à la précision.
ALGORITHME Serie
VAR
Précision, A, B
: REEL
N :
ENTIER
DEBUT
LIRE ( Précision )
A
:= 0
B :=
1/2
N
:= 1
TANTQUE Valeur Absolue
( A-B) >= Précision :
N := N + 1
A := B
B := A + (-1)**(N+1) / (N+1)
FINTANTQUE
ECRIRE (B)
FIN
Exercice 3 : Nombre parfait
ALGORITHME Parfait
VAR N, I, S, Q
: ENTIER
DEBUT
LIRE(N) { On suppose N
> 1 }
S
:= 1
I
:= 2
TANTQUE I <= N/2 :
Q := N / I % Division entière %
SI N = Q*I : S := S + I FSI
I := I + 1
FINTANTQUE
SI S = N :
ECRIRE ( N , 'est parfait')
SINON
ECRIRE(N, 'n''est pas parfait' )
FINSI
FIN
Tous les nombres parfaits de 1 à 1000 :
ALGORITHME Parfait1000
VAR J, S, I, Q
: ENTIER
DEBUT
J := 2
TANTQUE J <= 1000 :
{Corps de l'algorithme précèdent }
S := 1
I := 2
TANTQUE I <= J/2 :
Q := J / I { Division entière }
SI J = Q*I : S := S + I FSI
I := I + 1
FINTANTQUE
SI S =J :
ECRIRE(J)
FSI
J := J + 1
FINTANTQUE
FIN
Exercice 4 : Recherche de Couples avec conditions
ALGORITHME Couple
VAR A, B, N, M, Q1, Q2 :
ENTIER
DEBUT
{ On suppose M >= N
}
LIRE (N, M)
A := N
TANTQUE A <= M :
B := N
TANTQUE B <= M :
Q1:=(A**2 + B**2) / 5 { DIVISION ENTIERE }
Q2:=(A**2 + B**2) / 2 { DIVISION ENTIERE }
SI Q1 * 5 = (A**2 + B**2) OU
Q2 * 2 <> (A**2 + B**2) :
ECRIRE( A, B)
FSI
B := B + 1
FINTANTQUE
A := A + 1
FINTANTQUE
FIN