Corrigé C5.  Enoncé

1. Aspect algorithmique

a) Recherche du minimum et du maximum

On suppose k>0

    ALGORITHME MinMax
    VAR    Min, Max, K, I : ENTIER
    DEBUT
        LIRE(K)
        LIRE(Nombre)
        Min, Max := Nombre
        POUR I=2, K :
            LIRE(Nombre)
            SI Nombre > Max : Max := Nombre FSI
            SI Nombre < Min : Min := Nombre FSI
        FINPOUR
        ECRIRE(Min, Max)
    FIN


b) Recherche du premier nombre dont le carré est égal à la somme des 2 précédents

    ALGORITHME Carré
    VAR     A, B, C, I, N : ENTIER
        TROUV : BOOLEEN
    DEBUT
        LIRE(N)
        LIRE(A, B)
        TROUV := FAUX ; I := 2
        TANTQUE I < N ET NON TROUV :
            LIRE(C)
            SI C2 = A + B :
                TROUV := VRAI
            SINON
                A := B
                B := C
            FSI
        FINTANTQUE
        SI Trouv : ECRIRE(C) SINON ECRIRE( ' Inexistant ' ) FSI   
    FIN

c) Nombre de sous-suites croissantes

    ALGORITHME Nombre
    VAR N, Prec, Nbre, Nb, I: ENTIER
    DEBUT
        Nb := 1
        LIRE(N) ; LIRE(Prec)
        POUR I=2, N
            LIRE(Nbre)    
            SI Prec > Nbre :
                Nb := Nb + 1
            FSI
            Prec := Nbre
        FINPOUR
        ECRIRE( Nbre )
    FIN

2. Aspect programmation

a) Traduction de c)

    PROGRAM Nombre;
    VAR N, Prec, Nbre, Nb, I : INTEGER ;
    BEGIN
        NB := 1;
        READ(N) ; READ(Prec) ;
        FOR I:=2 TO N DO
            BEGIN
                READ(Nbre)     ;
                IF Prec > Nbre THEN Nb := Nb + 1 ;
                Prec := Nbre
            END;
        WRITE( Nb )
    END.


b) Dessin demandé

Se référer au programme P1.