Corrigé C9.  Enoncé

Exercice 1 : Inventaire

    TYPE Typearticle = STRUCTURE
        Numprod : T
        Pu : REAL
        Qte : ENTIER
    FIN
    TYPE T = STRUCTURE
        Nm : ENTIER    {Numéro de magasin}
        Nr : ENTIER         {Numéro de rayon}
        Num: ENTIER
    FIN

1) Création du fichier Fstock à partir d'un fichier TEXT

    LIRE(FTEXT, Nm, Nr,Num, Pu, Qte)
    TANTQUE Nm # 0 :
        Art.Numprod.Nm := Nm
        Art.Numprod.Nr := Nr
        Art.Numprod.Num := Num
        Art.Pu := Pu
        Art.Qte := Qte
        ECRIRE(Fstock, Art)
        LIRE(Ftext, Nm, Nr,Num, Pu, Qte)
    FINTANTQUE


2) Edition de l 'état d'inventaire

    LIRE(Fstock, E)
    Im := 1 ; Ir := 1
    Mray, Mmag, Mtotal := 0
    ECRIRE('MAGASIN n� 1)
    TANTQUE non Dernier(Fstock) :
        SI E.Numprod.Nm = Im
            SI E.Numprod.Nr = Ir :
                Mray := Mray + E.Qte * E.Pu
                Prendre(Fstock, E)
            SINON
               
                ECRIRE('RAYON N�', Ir, Mray )
                Mmag := Mmag + Mray
                Mray := 0
                Ir := Ir + 1
            FSI
        SINON
            ECRIRE('RAYON N�', Ir, Mray )
            Mmag := Mmag + Mray
            Mtotal := Mtotal + Mmag
            ECRIRE('MONTANT TOTAL DU MAGASIN',Mmag)
            ECRIRE('MAGASIN N�', Im)
            Im :=Im + 1
            Ir := 1
            Mmag, Mray := 0
        FSI
    FINTANTQUE
    ECRIRE('RAYON N�', Ir, Mray )
    Mmag := Mmag + Mray
    ECRIRE('MONTANT TOTAL DU MAGASIN',Mmag)
    Mtotal := Mtotal + Mmag
    ECRIRE('MONTANT TOTAL DU STOCK',Mtotal)

Programme

Se référer au programme P9.


Exercice 2 : Histogramme

    ALGORITHME Histogramme
    VAR     I, N, V     : ENTIER
        T     : TABLEAU(1..10) DE ENTIER
        Vote     : TABLEAU(M, 10) DE CAR
    DEBUT
        T := -1         { Affectation globale }
        Vote := ' '    { Initialisation globale}
        POUR I = 1, N :
            LIRE(V)
            T(V) := T(V) + 1
            Vote(N -T(V), V) := '*'
        FINPOUR
        ECRIRE(Vote)
    FIN

Exercice 3 : Tri par insertion

    ALGORITHME Tri
    VAR     A, I, K, N , L : ENTIER
        T : TABLEAU[1..N] de ENTIER
        Trouv : BOOLEEN
    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