SECTIONS: MATHEMATIQUES, SCIENCES EXPERIMENTALES, SCIENCES TECHNIQUES

 

*** CORRECTION *** BAC 2009 ***

EPREUVE :     I N F O R M A T I Q U E       

(Durée : 1h30)

 

*** Document non officiel ***

 Exclusif pour le forum INFOMATH : https://infomath.1fr1.net

 

Page 2 sur 2

Page précédente

 

PARTIE II (12 points)

 

1. La solution du problème peut être formée de 3 modules :

PROCEDURE SAISIE(var T:TAB; var n:entier) qui permet de saisir un tableau contenant des entiers classés dans l'ordre croissant. Elle sera utilisée dans la saisie des deux tableaux V1 et V2.

PROCEDURE FUSIONNER(T1,T2:TAB; n1,n2:entier; var T3:TAB; n3:entier) qui permet de fusionner les deux tableaux en éliminant les doublons et en gardant l'ordre croissant dans T3.

PROCEDURE AFFICHER(T:TAB;n:entier) qui permet d'afficher un tableau T de taille n. Cette procédure est utilisée pour afficher V1,V2 et V3.

 

2. Analyse des modules :

Analyse du programme principal

        NOM : FUSTAB

S

L.D.E

O.U

 

4

 

 

3

1

2

5

Résultat = Affichage

Affichage = PROC AFFICHER(V1, N)

                     PROC AFFICHER(V2,M)

                     PROC AFFICHER(V3,P)

(V3, P) = PROC FUSIONNER(V1,V2,N,M,V3,P)

(V1,N) = PROC SAISIE(V1,N)

(V2,M) = PROC SAISIE(V2,M)

FIN FUSTAB

AFFICHER

V1, V2, V3

M, N, P

 

FUSIONNER

SAISIE

 

Analyse de la procédure SAISIE

       DEFPROC SAISIE (var T:TAB; var n:ENTIER)

S

L.D.E

O.U

 

2

 

 

 

 

 

 

1

 

 

 

3

 

Résultat = (T, n)

T = [ ]

         T[1] = Donnée

         POUR i de 1 à n FAIRE

                REPEAT

                       T[i] = Donnée(‘Saisir un entier : ‘) 

                JUSQU'A (T[i] > T[i–1])

         FIN_POUR

n = [ ]

         REPETER

                  n = Donnée(‘ Taille du tableau : ‘) 

         JUSQU’A  (n DANS [2..20])

FIN SAISIE   

 

i

 

Analyse de la procédure AFFICHER

       DEFPROC AFFICHER (T:TAB; n:ENTIER)

S

L.D.E

O.U

1

 

 

2

Résultat = AFF

AFF = [ ]

        POUR i de 1 à n FAIRE

               ECRIRE( T[i] )

        FIN_POUR 

FIN SAISIE

 

i

 

Analyse de la procédure FUSIONNER

       DEFPROC FUSIONNER (T1, T2 : TAB; n1, n2: ENTIER; var T3 : TAB; var n3 : ENTIER)

S

L.D.E

O.U

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

Résultat = (T3, n3)

(T3, n3) = [i:=1, j:=1, k:=0]

            REPETER

                    k := k + 1 

                    SI (T1[i] = T2[j]) ALORS

                             T3[k] = T1[i]

                              i := i + 1

                              j := j + 1

                    SINON

                              SI (T1[i] > T2[j]) ALORS

                                       T3[k] = T2[j]

                                       j := j + 1

                              SINON

                                       T3[k] = T1[i]

                                       i := i + 1

                              FIN_SI

                    FIN_SI

            JUSQU'A (i>n1) OU (j>n2)

            SI (i<=n1) ALORS

                 POUR k de i à n1 FAIRE

                        n3:=n3+1

                        T3[n3]:=T1[k]

                 FIN_POUR

            FINSI

            SI (j<=n2) ALORS

                 POUR k de jà n2 FAIRE

                        n3:=n3+1

                        T3[n3]:=T2[k]

                 FIN_POUR

            FINSI

 

FIN FUSIONNER

 

i

 

j

 

k

 

 

 

Liens :

-         Retour en haut

-         Retour au sujet principal

-         Retour à la rubrique

-         Retour au forum