Corrigé C20.  Enoncé

Exercice 1 : tri par insertion

    ALGORITHME Tri
    VAR     I, K, L, A : ENTIER
        T : TABLEAU[1..N] DE ENTIER
    DEBUT
        LIRE( T)   
        POUR I = 2, N
            A := T(I)
            K := 1 ; Trouv := FAUX
            TANTQUE K < I ET NON Trouv :
                SI A <= T(K) :
                    Trouv := VRAI
                SINON
                    K := K + 1
                FSI
            FINTANTQUE
            SI Trouv :
                POUR L := I, K+1, -1 :
                    T(L) := T(L-1)
                FINPOUR
                T(K) := A
            FSI
        FINPOUR
    FIN

Exercice 2 : Représentations des polynômes

(I) Représentations :


Première représentation :

Le degré est l'indice et l'élément représente le coefficient.

    TYPE Polynome = TABLEAU [0..N] DE ENTIER

Deuxième représentation :

    TYPE Polynome = STRUCTURE
        Nbre     : ENTIER
        Tab     : TABLEAU(40..2) DE REEL
    FIN

(Ii) Ecriture des modules :

Première représentation :

Module Point

    FONCTION Point( P, V) : REEL
    VAR    T : Polynome
        V : REEL
        I : ENTIER
    DEBUT
        Point := 0
        POUR I= 0, N :
             Point := Point + I * ( X ** T(I))
        FINPOUR
    FIN


Module Dérivée

    ACTION Dérivé( P, R)
    VAR    P, R          : Polynome
        I, K, Coef     : ENTIER
    DEBUT
        POUR I= 0, N-1 :
            R(I) := P(I+1) * (I+1)
        FINPOUR
    FIN

Deuxième représentation :

Module Point

    FONCTION Point( P, V) : REEL
    VAR    P : Polynome
        V : REEL
        I : ENTIER
    DEBUT
        Point := 0
        POUR I=1, P.Nbre :
             Point := Point + (P.Tab(I, 1) * ( V ** P.Tab(I, 2) ))
        FINPOUR
    FIN

Module dérivée

    ACTION Dérivé( P, V)
    VAR    P, R          : Polynome
        I, K, COEF     : ENTIER
    DEBUT
        K := 0
        POUR I=1, P.Nbre :
            Coef := P.Tab(I, 1) * P.Tab(I, 2)
            SI Coef # 0 :
                K := K + 1
                R.Tab(K, 1) := Coef
                R.Tab(K, 2) := P.Tab(I, 2) - 1
            FSI
        FINPOUR
        R.Nbre := K
    FIN

(Iii) Calcul de p(x) en utilisant la factorisation de Horner   

Deuxième représentation :

    S := T(1)*X + T(2)
    POUR I =2, Nbr -1 :
        S := (S * X) + T(I+1)
    FINPOUR