Sections : Math. + Tech. + Sc.Exp.
REPUBLIQUE TUNISIENNE MINISTERE DE L’EDUCATION
***
EPREUVE PRATIQUE D’INFORMATIQUE
DATE : Mardi 23 mai 2006 ( Heure : 14h ) EXAMEN DU BACCALAUREAT
SESSION 2006 DUREE : 1 h – COEFFICIENT : 0.5
Sujet : Programmation en Pascal
Ecrire un programme Pascal qui permet de saisir n entiers de trois chiffres chacun (n est une constante) puis de chercher et d’afficher les nombres symétriques deT.
Exemple :
Pour n = 7 etT
Le programme affichera : Les nombres symétriques de T sont : 424, 121, 454 et 616 On propose l’algorithme suivant :
0) DébutSymétrique 1) Procsaisie(T)
2) Ecrire ("Les nombres symétriques de T sont :") 3) Pour i de 1 à n répéter
Si FNverif(T[i]) alors Ecrire(T[i] :4) Finsi
Finpour
4) FinSymétrique Questions :
1. Traduire cet algorithme en Pascal.
2. Ecrire la procédure saisie permettant de remplir un tableauV parp entiers à trois chiffres.
3. Transformer la séquence 3) en une procédure Affiche et en tenir compte dans le programme principal.
4. Ecrire la fonction Verif permettant de vérifier si un entier m de trois chiffres est symétrique ou non.
Enregistrer au fur et à mesure votre programme dans le dossier bac2006 situé à la racine C : en lui donnant comme nom le numéro de votre carte d’identité.
Grille d’évaluation :
Questions Nbre de points
Enregistrement dansbac2006 2
1. Traduction en Pascal
2.Ecriture de la procédure saisie
3. Transformation de la sequence 3) en une procedure Affiche 4. Ecriture de la fonction Verif
4 4 3 7
424 715 133 121 454 616 566
1 2 3 4 5 6 7
Correction : program symet;
uses wincrt;
type
tab=array[1..100] of integer;
var t:tab;
n:integer;
procedure remplissage(var t:tab; var n:integer);
var i:integer;
begin repeat
writeln('Donner la taille du tableau ');
readln(n);
until n in [6..14];
for i:=1 to n do repeat
writeln('t[',i,']= ');
readln(t[i]);
until (t[i]>=100)and (t[i]<=999);
end;
function symetrique(x:integer):boolean;
var
s:boolean;
u,c:integer;
begin
c:=x div 100;
u:=x mod 10;
if c=u then s:=true else s:=false;
symetrique:=s;
end;
procedure affiche(t:tab);
var i:integer;
begin
for i:=1 to n do
if symetrique(t[i])=true then write(t[i],' ');
end;
begin
remplissage(t,n);
affiche(t);
end.