Corrigé C11. Enoncé

Exercice 1 : Le plus apparent

    ALGORITHME Leplus_apparent
    VAR
        Max, I, J, Compt, N, Res : ENTIER
        T : TABLEAU[1..N] DE ENTIER
    DEBUT
        Max := 0
        Compt := 0
        POUR I:= 1, N :
            POUR J:= I+1, N :
                SI T(I) = T(J): Compt := Compt + 1 FSI
            FINPOUR
            SI Compt > Max :
                Max := Compt
                Res := I
            FSI
        FINPOUR
        ECRIRE(T(Res) )
    FIN

Exercice 2 : Course de Ski

    ALGORITHME Ski
    TYPE Typ = STRUCTURE
            Temps             : ENTIER
            Nom, Pays      : CAR
    FIN
    VAR     I, J, K, N, Nbr : ENTIER
        Trouv       : BOOLEEN
        Tab          : TABLEAU[1..10] DE T typ
    DEBUT
        LIRE(n)
        Nbr := 0
        POUR I=1, N
            LIRE(Nom, Pays, Mm, Ss, Cc)
            T := (Mm*60 + Ss )*100 + Cc
            J := 1 ; Trouv := FAUX
            TANTQUE J <= Nbr ET NON Trouv
                SI t(J) >= T :
                    Trouv := VRAI
                SINON J := J + 1 FSI
            FINTANTQUE
            SI Trouv :
                POUR K:=Nbr, J, -1 : T(K+1) := T(K) FINPOUR
            FSI
            T(J).Temps := T
            T(J).Nom := Nom
            T(J).Pays := Pays
            Nbr := Nbr + 1
           
            POUR K = 1, Nbr :
                T:= Tab(.k.).Temps
                Ss := T Div 100
                Cc := T - 100*Ss
                Mm := Ss div 60
                Ss := Ss - 60*Mm            
                Nom:= Tab(.K.).Nom
                Pays := Tab(.K.).Pays
                ECRIRE(K, Pays, Nom, Mm, Ss, Cc)
            FINPOUR
        FIN

    Programmation

    Se référer au programme P8.


Exercice 3 : Edition d'une ligne

    ALGORITHME Editer
    VAR
        C : CAR ;
        Ligne : TABLEAU[1..N] DE CAR
        I, N : ENTIER
    DEBUT
        LIRE(C)
        I := 0
        TANTQUE C # '.' :
            SI C = '/' :
                I :=I-1 ; SI I < 0 : I := 0 FSI
            SINON
                SI C ='<' :
                    I := 0
                SINON
                    SI C = '>' :
                        I := (Quotient(I, 10) + 1) * 10
                    SINON
                        SI C = '#' :
                            Imprimer(LIGNE)
                        SINON
                            I := I + 1
                            SI I <= 120 :
                                Ligne(I) :=C
                            FSI
                        FSI
                    FSI
                FSI
            FSI
            LIRE(C)
        FINTANTQUE
    FIN