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