éNoncés+corrections bac2009

14
Année Scolaire : 2011-2012 4 SC Lycée Attarine Ariana 2012

Transcript of éNoncés+corrections bac2009

Page 1: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

Page 2: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

Program P20Mai2009_9h;

Uses WinCrt;

Type

Tab2Chaines = Array[1..30] of String;

Var

T: Tab2Chaines;

i,N: Integer;

{******=== Procedure De Saisie de N ===*******}

Procedure SaisieDe_N(Var N : Integer);

Begin

Repeat

Write('Saisir N: ');

Readln(N);

Until (2<=N) AND (N<=30); {Ou N in [2..30]}

End;

{******=== Procedure De Remplissage de T ===*******}

Procedure Remplissage_De_T(Var T:Tab2Chaines; N: Integer);

Var

i:Integer;

Begin

For i:=1 To N Do

Begin

Repeat

Write('Saisir la chaîne N° ',i,' : ');

Readln(T[i]);

Until length(T[i]) in [1..5];

End;

End;

{***=== Procedure Qui élimine à partir d'une chaîne...=****}

{******=== tous les Caractères Non Alphabétiques =*******}

Procedure ElimNonAlpha(Var Ch:String);

Var

i:Integer;

Begin

i:=1;

Repeat

IF Not (CH[i] IN ['A'..'Z','a'..'z'])THEN

Delete(Ch,i,1)

ELSE

i:=i+1;

Until i>length(ch);

End;

Page 3: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

{***=== Procedure De Conversion D'une Chaîne en Maj =****}

Procedure Convertir_En_Maj(Var Ch:String);

Var

i:Integer;

Begin

For i:=1 To Length(Ch) Do

Begin

Ch[i]:=Upcase(Ch[i]);

End;

End;

{******=== Fonction Palindrome =*******}

Function Palindrome(Mot:String):Boolean;

Var

k:Integer;

Begin

k:=0;

Repeat

k:=k+1;

Until (Mot[k]<>Mot[Length(Mot)-k+1]) OR (k>=(Length(Mot) DIV

2));

Palindrome:=(Mot[k]=Mot[Length(Mot)-k+1]);

End;

{******=== Procedure Traitement ===*******}

Procedure Traitement(Var T:Tab2Chaines; N: Integer);

Var

i:Integer;

Begin

For i:=1 To N Do

Begin

ElimNonAlpha(T[i]);

IF T[i]<>'' Then Convertir_En_Maj(T[i]);

End;

End;

{******=== Programme Principal ===*******}

Begin

SaisieDe_N(N);

Remplissage_De_T(T,N);

Traitement(T, N);

{-----Affichage Du Résultat-----}

For i:=1 To N Do

Begin

IF (T[i]<>'') And (Palindrome(T[i])) THEN

Writeln('La chaîne de la case ',i,

' est non vide palindrome :', T[i]);

End;

End.

Page 4: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

Page 5: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

Program P19Mai2009_14h;

Uses WinCrt;

Type

ChaineDeTailleMax50=String[50];

Var

Res,Ch: ChaineDeTailleMax50;

{****=== Fonction Qui Vérifie Si Une Ch est Composée ===*****}

{****=== Seulement De Lettres Alphabétiques ===*******}

Function Alpha(Ch:String):Boolean;

Var i:integer;

Begin

i:=1;

While (Upcase(Ch[i]) in ['A'..'Z']) AND (i<Length(Ch)) Do

Begin

i:=Succ(i); {ou i:=i+1}

End;

Alpha:=Upcase(Ch[i]) in ['A'..'Z'];

End;

{******=== Procedure De Saisie de Ch ===*******}

Procedure SaisieDe_Ch(Var Ch : ChaineDeTailleMax50);

Begin

Repeat

Write('Saisir Ch: ');

Readln(Ch);

Until (Length(Ch)>0) AND (Alpha(Ch));

End;

{******=== Fonction Résultat ===*******}

Function Resultat(Ch:ChaineDeTailleMax50):ChaineDeTailleMax50;

Var

i:Integer;

ConsonneMAJ, VoyelleMAJ, ConsonneMin, VoyelleMin:String;

Begin

ConsonneMAJ:=''; VoyelleMAJ :='';

VoyelleMAJ :=''; ConsonneMin:='';

For i:=1 To Length(Ch) Do

Begin

IF Ch[i] in ['A'..'Z'] THEN

Begin

IF Ch[i] in ['A','E','I','O','U','Y'] THEN

VoyelleMAJ:=VoyelleMAJ+Ch[i]

ELSE ConsonneMAJ:=ConsonneMAJ+Ch[i];

End

ELSE IF Ch[i] in ['a','e','i','o','u','y'] THEN

VoyelleMin:=VoyelleMin+Ch[i]

ELSE ConsonneMin:=ConsonneMin+Ch[i];

End;

Resultat:=ConsonneMAJ+VoyelleMAJ+ConsonneMin+VoyelleMin;

End;

{******=== Programme Principal ===*******}

Begin

SaisieDe_Ch(Ch);

Res:=Resultat(Ch);

Write('Le Résultat Res= ',Res);

End.

Page 6: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

Page 7: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

Program P19Mai2009_9h;

Uses WinCrt;

Type

Tab2entiers = Array[1..30] of Integer;

Var

T, TS : Tab2entiers;

N, k, Nbre2cases2TS : Integer;

Ch:String;

{******=== Procedure De Saisie de N et K ===*******}

Procedure SaisieDe_N_Et_De_K(Var N,K : Integer);

Begin

Repeat

Write('Saisir N: ');

Readln(N);

Until (5<=N) AND (N<=30); {Ou N in [5..30]}

Repeat

Write('Saisir K: ');

Readln(K);

Until (1<K) AND (K<N); {Ou K in [2..N-1]}

End;

{******=== Procedure De Remplissage de T ===*******}

Procedure Remplissage_De_T(Var T:Tab2entiers; N: Integer);

Var

i:Integer;

Begin

For i:=1 To N Do

Begin

Repeat

Write('Saisir l''entier N° ',i,' : ');

Readln(T[i]);

Until (T[i]>=0);

End;

End;

Page 8: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

{******=== Procedure De Génération de TS ===*******}

Procedure Generation_De_TS(Var TS:Tab2entiers; Var

Nbre2cases2TS: Integer;

T:Tab2entiers; K,N: Integer);

Var

i:Integer;

Begin

Nbre2cases2TS:=0;

Repeat

Nbre2cases2TS:=Nbre2cases2TS+1;

TS[Nbre2cases2TS]:=0;

For i:=Nbre2cases2TS To (Nbre2cases2TS+K-1) Do

Begin

TS[Nbre2cases2TS]:=TS[Nbre2cases2TS]+T[i];

End;

Until (Nbre2cases2TS+K-1)=N;

End;

{******=== Procedure D'Affichage de TS ===*******}

Procedure Affichage_De_TS(TS:Tab2entiers; Nbre2cases2TS:

Integer);

Var

i:Integer;

Begin

For i:=1 To Nbre2cases2TS Do

Begin

Writeln('TS[',i,'] = ', TS[i]);

End;

End;

{******=== Programme Principal ===*******}

Begin

SaisieDe_N_Et_De_K(N,K);

Remplissage_De_T(T,N);

Generation_De_TS(TS,Nbre2cases2TS, T, K, N);

Affichage_De_TS(TS, Nbre2cases2TS);

End.

Page 9: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

REPUBLIQUE TUNISIENNE

MINISTERE DE L’EDUCATION

ET DE LA FORMATION

***

Sections: Math. + Tech. + Sc.Exp.

EPREUVE PRATIQUE D’INFORMATIQUE

EXAMEN DU BACCALAUREAT

SESSION 2009

DATE : Mercredi 19 mai 2009 (Heure : 10h30)

DUREE : 1 h – COEFFICIENT : 0.5

Important : 1) Une solution modulaire au problème est exigée.

2) Enregistrez au fur et à mesure votre programme dans le dossier Bac2009 se trouvant sur la racine C:\ en lui

donnant comme nom votre numéro d’inscription.

Soit T un tableau de N chaînes de caractères non vides et dont la taille maximale est 5

caractères.

On se propose d’écrire un programme Pascal permettant de remplir le tableau T par N

chaînes (2<= N <=30), puis de calculer et d’afficher la somme des nombres extraits

des chaînes de chaque élément du tableau T.

Le nombre extrait de la chaine contenue dans la case i de T, est formé par la

concaténation der tous les chiffres de la chaîne parcourue de gauche à droite.

N.B. : Si une chaîne ne contient pas de chiffres, elle prend la valeur 0 dans le calcul

de la somme finale.

Exemple

Si N = 9 et que le tableau T contient les éléments suivants :

T = R4*s2 12hj5 5?7e Ak!r E9Y41 6754 3E-Z2 G(Y U5Kx1

1 2 3 4 5 6 7 8 9

Alors la somme S= 42 + 125+ 57 + 0 + 941 + 6754 + 32 + 0 +51 = 8002

Le programme affichera la valeur S.

Grille d’évaluation Nombre de points

Décomposition en modules utiles à la solution (déclaration+appel) 4 = 2 + 2

Si exécution et tests réussis Alors

Sinon

Structures de données adéquates au problème

Saisie et contrôle des données

Traitements avec structures de contrôle adéquates

Affichage des résultats

Compilation

16

2

3

6

1

4

Page 10: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

REPUBLIQUE TUNISIENNE

MINISTERE DE L’EDUCATION

ET DE LA FORMATION

***

Sections: Math. + Tech. + Sc.Exp.

EPREUVE PRATIQUE D’INFORMATIQUE

EXAMEN DU BACCALAUREAT

SESSION 2009

DATE : Mercredi 19 mai 2009 (Heure : 10h30)

DUREE : 1 h – COEFFICIENT : 0.5

Program P19Mai2009_10h30;

Uses WinCrt;

Type Tab2Chaines = Array[1..30] of String;

Var T: Tab2Chaines; N: Integer; S:LongInt;

{******=== Procedure De Saisie de N ===*******}

Procedure SaisieDe_N(Var N : Integer);

Begin

Repeat

Write('Saisir N: ');

Readln(N);

Until (2<=N) AND (N<=30); {Ou N in [2..30]}

End;

{******=== Procedure De Remplissage de T ===*******}

Procedure Remplissage_De_T(Var T:Tab2Chaines; N: Integer);

Var i:Integer;

Begin

For i:=1 To N Do

Begin

Repeat

Write('Saisir la chaîne N° ',i,' : ');

Readln(T[i]);

Until (length(T[i])in [1..5]);

End;

End;

{******=== Fonction String2Integer (Ch-->Entier) ==*******}

Function String2Integer(Ch:String):Integer;

Var i,e,Res:Integer;

Num:String;

Begin

Num:='';

For i:=1 To Length(Ch) Do

Begin

IF Ch[i] IN ['0'..'9'] THEN Num:=Num+Ch[i];

End;

Val(Num,Res,e);

String2Integer:=Res;

End;

{******=== Procedure De Calcul De la Somme S =*******}

Procedure SommeS(Var S:LongInt; T:Tab2Chaines; N: Integer);

Var i, X, e:Integer;

Begin

S:=0;

For i:= 1 To N Do

Begin

S:=S+String2Integer(T[i]);

End;

End;

{******=== Programme Principal ===*******}

Begin

SaisieDe_N(N);

Remplissage_De_T(T,N);

SommeS(S, T, N);

Write('La somme S= ',S);

End.

Page 11: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

REPUBLIQUE TUNISIENNE

MINISTERE DE L’EDUCATION

ET DE LA FORMATION

***

Sections : Math. + Tech. + Sc.Exp.

EPREUVE PRATIQUE D’INFORMATIQUE

EXAMEN DU BACCALAUREAT

SESSION 2009

DATE : Mercredi 20 mai 2009 (Heure : 10h30)

DUREE : 1 h – COEFFICIENT : 0.5

Important :

1. Une solution modulaire au problème est exigée.

2. Enregistrez au fur et à mesure votre programme dans le dossier Bac2009 se trouvant sur la

racine C:\ en lui donnant comme nom votre numéro d’inscription.

On veut dessiner à l’aide du caractère *, un triangle de hauteur H (5<= H <= 10), comme indiqué dans

l’exemple ci-dessous.

Ecrire un programme Pascal qui permet de saisir H, puis d’afficher le triangle.

Exemple

Si H = 6, le programme affichera le triangle suivant :

* * * * * * * * * * *

* * * * * * * * *

* * * * * * *

* * * * *

* * *

*

Grille d’évaluation Nombre de points

Décomposition en modules utiles à la solution (déclaration+appel) 4 = 2 + 2

Si exécution et tests réussis Alors

Sinon

Structures de données adéquates au problème

Saisie et contrôle des données

Traitements avec structures de contrôle adéquates

Compilation

16

2

2

8

4

H= 6 (6 lignes)

Page 12: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

REPUBLIQUE TUNISIENNE

MINISTERE DE L’EDUCATION

ET DE LA FORMATION

***

Sections: Math. + Tech. + Sc.Exp.

EPREUVE PRATIQUE D’INFORMATIQUE

EXAMEN DU BACCALAUREAT

SESSION 2009

DATE : 23 mai 2008 10h30

DUREE : 1 h – COEFFICIENT : 0.5

Sujet : Programmation Pascal

Important : 1. Une solution modulaire au problème est exigée.

2. Enregistrez au fur et à mesure votre programme dans le dossier Bac2009 se trouvant sur la racine C:\ en lui

donnant comme nom votre numéro d’inscription.

On se propose de ranger dans un tableau V les numéros des cartes d'identité nationale des N

élèves d’un lycée.

Deux élèves ne peuvent pas avoir un même numéro de carte d'identité nationale. Un numéro de

carte d'identité est composé obligatoirement de huit chiffres.

Ecrire un programme Pascal qui permet de saisir les numéros de cartes d'identité des N élèves

du lycée puis de les afficher.

Grille d’évaluation Nombre de points

Décomposition en modules utiles à la solution (déclaration+appel) 5

Si exécution et tests réussis Alors

Sinon

Compilation

Structures de données adéquates au problème posé

Traitements avec structures de contrôle adéquates

15

4

4

7

Page 13: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

REPUBLIQUE TUNISIENNE

MINISTERE DE L’EDUCATION

ET DE LA FORMATION

***

Sections: Math. + Tech. + Sc.Exp.

EPREUVE PRATIQUE D’INFORMATIQUE

EXAMEN DU BACCALAUREAT

SESSION 2009

DATE : 23 mai 2008 9h

DUREE : 1 h – COEFFICIENT : 0.5

Sujet : Programmation Pascal

Important : 1. Une solution modulaire au problème est exigée.

2. Enregistrez au fur et à mesure votre programme dans le dossier Bac2009 se trouvant sur la racine C:\ en lui

donnant comme nom votre numéro d’inscription.

Code morse

Ecrire un programme Pascal qui permet de coder en morse un mot de passe, supposé composé

de N chiffres décimaux (4≤ N ≤8), puis d'afficher ce code.

Pour une meilleure lisibilité du résultat, les chiffres codés en morse seront séparés par un point

d'interrogation (?) lors de l'affichage.

Tableau d'équivalence chiffres / codes morses :

Exemple:

Pour le mot de passé 123456, le programme affichera: .---- ? ..--- ? ...-- ? ....- ? ..... ? -.... ?

Grille d’évaluation Nombre de points

Décomposition en modules utiles à la solution (déclaration+appel) 5

Si exécution et tests réussis Alors

Sinon

Compilation

Structures de données adéquates au problème posé

Traitements avec structures de contrôle adéquates

15

4

4

7

0 1 2 3 4 5 6 7 8 9

----- .---- ..--- …-- ….- ….. -…. --… ---.. ----.

Ce caractère est

un trait d’union

Page 14: éNoncés+corrections bac2009

Année Scolaire : 2011-2012 4 SC

Lycée Attarine Ariana 2012

REPUBLIQUE TUNISIENNE

MINISTERE DE L’EDUCATION

ET DE LA FORMATION

***

Sections: Math. + Tech. + Sc.Exp.

EPREUVE PRATIQUE D’INFORMATIQUE

EXAMEN DU BACCALAUREAT

SESSION 2009

DATE : Mardi 19 mai 2009 à 14h

DUREE : 1 h – COEFFICIENT : 0.5

Sujet : Programmation Pascal

Important : 1. Une solution modulaire au problème est exigée.

2. Enregistrez au fur et à mesure votre programme dans le dossier Bac2009 se trouvant sur la racine C:\ en lui

donnant comme nom votre numéro d’inscription.

On se propose de réaliser le traitement suivant sur une chaîne CH :

Construire une chaîne RES à partir de la chaîne CH dans laquelle on rangera toutes les

consonnes de CH qui sont en majuscule, suivies de toutes les voyelles de CH qui sont en

majuscule, suivis de toutes les consonnes de CH qui sont en minuscule et finalement toutes les

voyelles de CH qui son en minuscule en conservant à chaque fois le même ordre d'apparition

dès lettres de la chaîne CH.

Ecrire un programme Pascal qui permet de saisir une chaîne CH non vide composée de lettres

alphabétiques et dont la taille ne dépasse pas 50 et de construire puis d'afficher la chaîne RES.

Exemple 1 :

Si CH = ‘’aFAbzKOikvMx’’

Alors le programme affichera la chaîne ‘’FKMAObzkvxai’’

Exemple 2 :

Si CH = ‘’bonjour’’

Alors le programme affichera la chaîne ‘’bnjroou’’

Grille d’évaluation Nombre de points

Décomposition en modules utiles à la solution (déclaration+appel) 4 = 2 + 2

Si exécution et tests réussis Alors

Sinon

Structures de données adéquates au problème

Saisie et contrôle des données

Traitements avec structures de contrôle adéquates

Compilation

16

2

2

8

4