2. Année Scolaire : 2011-2012 4 SC
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;
Lycée Attarine Ariana 2012
3. Année Scolaire : 2011-2012 4 SC
{***=== 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.
Lycée Attarine Ariana 2012
5. Année Scolaire : 2011-2012 4 SC
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.
Lycée Attarine Ariana 2012
7. Année Scolaire : 2011-2012 4 SC
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;
Lycée Attarine Ariana 2012
8. Année Scolaire : 2011-2012 4 SC
{******=== 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.
Lycée Attarine Ariana 2012
9. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
Sections: Math. + Tech. + Sc.Exp.
MINISTERE DE L’EDUCATION
ET DE LA FORMATION
EPREUVE PRATIQUE D’INFORMATIQUE
***
EXAMEN DU BACCALAUREAT DATE : Mercredi 19 mai 2009 (Heure : 10h30)
SESSION 2009 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 16
Sinon
Structures de données adéquates au problème 2
Saisie et contrôle des données 3
Traitements avec structures de contrôle adéquates 6
Affichage des résultats 1
Compilation 4
Lycée Attarine Ariana 2012
10. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
Sections: Math. + Tech. + Sc.Exp.
MINISTERE DE L’EDUCATION
ET DE LA FORMATION
EPREUVE PRATIQUE D’INFORMATIQUE
***
EXAMEN DU BACCALAUREAT DATE : Mercredi 19 mai 2009 (Heure : 10h30)
SESSION 2009 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.
Lycée Attarine Ariana 2012
11. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
Sections : Math. + Tech. + Sc.Exp.
MINISTERE DE L’EDUCATION
ET DE LA FORMATION
EPREUVE PRATIQUE D’INFORMATIQUE
***
EXAMEN DU BACCALAUREAT DATE : Mercredi 20 mai 2009 (Heure : 10h30)
SESSION 2009 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 :
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * * H= 6 (6 lignes)
* * *
*
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 16
Sinon
Structures de données adéquates au problème 2
Saisie et contrôle des données 2
Traitements avec structures de contrôle adéquates 8
Compilation 4
Lycée Attarine Ariana 2012
12. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
Sections: Math. + Tech. + Sc.Exp.
MINISTERE DE L’EDUCATION
ET DE LA FORMATION
EPREUVE PRATIQUE D’INFORMATIQUE
***
EXAMEN DU BACCALAUREAT DATE : 23 mai 2008 10h30
SESSION 2009 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 15
Sinon
Compilation 4
Structures de données adéquates au problème posé 4
Traitements avec structures de contrôle adéquates 7
Lycée Attarine Ariana 2012
13. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
Sections: Math. + Tech. + Sc.Exp.
MINISTERE DE L’EDUCATION
ET DE LA FORMATION
EPREUVE PRATIQUE D’INFORMATIQUE
***
EXAMEN DU BACCALAUREAT DATE : 23 mai 2008 9h
SESSION 2009 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 :
Ce caractère est 0 1 2 3 4 5 6 7 8 9
un trait d’union
----- .---- ..--- …-- ….- ….. -…. --… ---.. ----.
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 15
Sinon
Compilation 4
Structures de données adéquates au problème posé 4
Traitements avec structures de contrôle adéquates 7
Lycée Attarine Ariana 2012
14. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
Sections: Math. + Tech. + Sc.Exp.
MINISTERE DE L’EDUCATION
ET DE LA FORMATION
EPREUVE PRATIQUE D’INFORMATIQUE
***
EXAMEN DU BACCALAUREAT DATE : Mardi 19 mai 2009 à 14h
SESSION 2009 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 16
Sinon
Structures de données adéquates au problème 2
Saisie et contrôle des données 2
Traitements avec structures de contrôle adéquates 8
Compilation 4
Lycée Attarine Ariana 2012