1. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 8h 30mn
Sujet
Ecrire un programme Pascal qui permet de:
lire un entier positif n de 2 chiffres
lire un entier positif p de 3 chiffres
former et afficher un entier res de 5 chiffres à partir des deux entiers n et p et ceci
en intercalant l'entier p entre les deux chiffres de n.
Exemple: Pour n=14 et p= 258, l'entier res sera égal à 12584
Grille d’évaluation
Questions Nombre de points
Décomposition en modules utiles à la solution proposée (déclarations et appels) 4
Si exécution et test réussis 16
Sinon
Compilation 3
Structures de données adéquates au problème 2
Saisie et contrôle des données 4
Traitement avec les structures de contrôles adéquates 5
Affichage du résultat 2
Lycée Attarine Ariana 2012
2. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 8h 30mn
program P24mai8h30mn;
uses wincrt;
var n,p:Integer;
Res:Longint;
{*******************************************}
procedure Saisie_n(var n:integer);
begin
Repeat
Write('n= ');
Readln(n);
Until n in [10..99]
end;
procedure Saisie_p(var p:integer);
begin
Repeat
Write('p= ') ;
Readln(p);
Until (p>=100) and (p<=999);
end;
{*******************************************}
Function Traitement(n,p:integer):Longint;
var
nch,pch:String;
e:Integer;
tmp:LongInt;
begin
STR(n,nch);
STR(p,pch);
INSERT(pch,nch,2);
{Ou encore...
nch:=nch[1] + pch + nch[2]}
VAL(nch,tmp,e);
Traitement:=tmp;
end;
{*******************************************}
begin
Saisie_n(n);
Saisie_p(p);
Res:=Traitement(n,p);
writeln('Résultat= ',Res)
end.
Lycée Attarine Ariana 2012
3. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 10h
Sujet
Un nombre heureux est un entier strictement positif, qui, lorsqu'on additionne les carrés de
chacun de ses chiffres, puis on additionne les carrés des chiffres de la somme obtenue et ainsi de
suite, on obtient un entier à un seul chiffre et est égal à 1.
Exemple 1 : pour l'entier 7 on a: 72 = 49
42 + 92 = 97
92 + 72 = 130
12 + 32 + 02 =10
12 + 02 = 1
On a obtenu un entier à un seul chiffre qui est égal à 1 ; donc 1 'entier 7 est heureux
Exemple 2 : pour 1' entier 85 on a : 82 +52 = 89
82 + 92 = 145
12 + 42 +52 = 42
42 + 22 = 20
22 + 02 = 4
On a obtenu un entier à un seul chiffre mais qui est différent de 1 ; donc l'entier 85 n'est
pas heureux
Travail demandé :
Ecrire un programme Pascal qui permet de saisir un entier n strictement positif puis de
vérifier et d'afficher s'il est heureux ou non.
Grille d’évaluation
Questions Nombre de points
Décomposition en modules utiles à la solution proposée (déclarations et appels) 4(2+2)
Si exécution et test réussis 16
Sinon
Compilation 3
Structures de données adéquates au problème 2
Saisie et contrôle des données 2
Traitement avec les structures de contrôles adéquates
extraction des chiffres 3
calcul des sommes des carrés 3
boucles 1
Affichage du résultat 2
Lycée Attarine Ariana 2012
4. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 10h
uses Wincrt;
var N:Integer;{*************************************}
Procedure Saisie(Var N:Integer);
Begin
Repeat
Write('N= ');
Readln(N);
Until N>0;
end;{*************************************}
Function Somme_Carre_Chiffres(N:Integer):Integer;
Var Ch:string;
i,d,e,somme:integer;
begin
STR(N,ch);
somme:=0;
for i:=1 to Length(ch) do
begin
VAL(ch[i],d,e);
somme:=somme+SQR(d);
end;
Somme_Carre_Chiffres:=somme;
end;
{ou encore...
Function Somme_Carre_Chiffres(N:Integer):Integer;
Var S,U:Integer;
Begin
S:=0;
Repeat
U:=N MOD 10;
S:=S+ SQR(U);
N:=N DIV 10;
Until N = 0;
Somme_Carre_Chiffres:=S;
End;}
Procedure Verifier_Heureux(N:Integer);
Begin
Repeat
N:=Somme_Carre_Chiffres(N);
Until N<10;
IF N = 1 THEN
Write('L''entier est heureux')
ELSE Write('L''entier n''est pas heureux')
End;
{************** PP *******************}
Begin
Saisie(N);
Verifier_Heureux(N);
End.
Lycée Attarine Ariana 2012
5. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 14h
Sujet
Un entier est dit distinct s'il est composé de chiffres distincts (différents).
Ecrire un programme Pascal qui permet de saisir un entier n (n > 0), puis de vérifier et
d'afficher si cet entier est distinct ou non.
Exemple 1:
n = 1273 est dit distinct car il est formé par les chiffres 1, 2, 7 et 3 qui sont tous
distincts, donc, le programme affichera : Cet entier est distinct
Exemple 2:
n = 1565 est dit non distinct car il est formé par les chiffres 1, 5, 6 et 5 qui ne sont pas
tous distincts (le chiffre 5 se répète deux fois), donc, le programme affichera: Cet entier est
non distinct.
Grille d’évaluation
Questions Nombre de points
Décomposition en modules utiles à la solution proposée (déclarations et appels) 4(2+2)
Si exécution et test réussis 16
Sinon
Compilation 3
Structures de données adéquates au problème 2
Saisie et contrôle des données 2
Traitement avec les structures de contrôles adéquates
extraction des chiffres 3
calcul des sommes des carrés 3
boucles 1
Affichage du résultat 2
Lycée Attarine Ariana 2012
6. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 14h
Program P24_Mai_14h;
Uses Wincrt;
Var N:Longint;
{*****************************************************}
Procedure Saisie(Var N:Longint);
Begin
Repeat
write('N= ');
readln(N);
until (N>0);
End;
{*****************************************************}
Function Verifier(N:longint):boolean;
Var
Ch:string;
i:integer;
b:boolean;
Begin
Str(n,ch);
b:=True;
For i:=1 to length(ch) do
Begin
{Si on trouve un chiffre dans un autre emplacement
on modifie la variable b<--False }
If (pos(ch[i],ch)<>i) then b:=False;
End;
Verifier:=b;
End;
{*****************************************************}
Begin
Saisie(N);
If (Verifier(N)) then
writeln(N,' est distinct.')
else writeln(N,' est non distinct.');
End.
Lycée Attarine Ariana 2012
7. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 14h
Program P24_Mai_14h_Version_2;
Uses wincrt ;
Var n :longint ;
{*****************************************************}
Procedure Saisie(Var N:Longint);
Begin
Repeat
Write('N= ');
Readln(N);
until (N>0);
End;
{* Fonction qui recherche la fréquence d'un caractère C
dans une chaîne Ch *******}
Function Frequence(Ch :String; C:Char):Integer ;
Var
i:Integer ;
F:integer;
begin
F:=0;
For i:=1 to Length(Ch) do
IF Ch[i]= C THEN F:=F+1;
Frequence:=F;
end;
{******************************************************}
Procedure Traitement(N:Longint);
Var
i:Integer;
Ch:String ;
b:Boolean ;
Begin
STR(N,Ch);
b:=True ;
i:=0;
repeat
i:=i+1;
if Frequence(Ch,Ch[i])<>1 then b:=False;
Until (b=False) OR (i=Length(Ch));
IF b=True THEN
Write (N, ' est distinct')
ELSE Write(N, ' n''est pas distinct' ) ;
End;
{******************************************************}
begin
Saisie (N) ;
Traitement (N) ;
end.
Lycée Attarine Ariana 2012
8. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 15h30mn
Sujet
Soit la suite U définie par :
U1 = 1
U2 = 3
Un = 2*Un-1 + 3*Un-2 pour tout n 3
Ecrire un programme Pascal qui permet de calculer et d’afficher les n premiers termes
de la suite U avec 3 ≤ n ≤ 20.
Grille d’évaluation
Questions Nombre de points
Décomposition en modules utiles à la solution proposée (déclarations et appels) 4(2+2)
Si exécution et test réussis 16
Sinon
Compilation 3
Structures de données adéquates au problème 2
Saisie et contrôle des données 3
Traitement avec les structures de contrôles adéquates
initialisation 1
calcul de Un 3
boucles 1
Affichage du résultat 3
Lycée Attarine Ariana 2012
9. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 15h30mn
Program P24_Mai_14h_Version_2;
Uses Wincrt ;
Type
Tab=Array[1..20] Of LongInt;
Var
U:Tab;
N :Integer ;
{*****************************************************}
Procedure Saisie(Var N:Integer);
Begin
Repeat
Write('N= ');
Readln(N);
until (N>0);
End;
{*Remplissage du tableau "U" par les N termes de la suite*}
Procedure Suite(Var U:Tab; N:Integer);
Var
i:Integer ;
begin
U[1]:=1;
U[2]:=3;
For i:=3 to N do {On commence par i=3}
U[i]:=2*U[i-1] + 3*U[i-2];
end;
{********** Affichage Des N Termes *******************}
Procedure Affichage(U:Tab; N:Integer);
Var
i:Integer;
Begin
For i:=1 to N do
Writeln(U[i]);
End;
{******************************************************}
begin
Saisie (N) ;
Suite(U,N);
Affichage(U,N);
end.
Lycée Attarine Ariana 2012
10. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2012
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 28 mai 2012 à 8h30mn
Sujet
Un nombre polydivisible est un entier naturel s'écrivant avec les chiffres a b c d e ..., qui
possède les propriétés suivantes :
Le nombre formé par ses deux premiers chiffres "a b", est un multiple de 2.
Le nombre formé par ses trois premiers chiffres "a b c", est un multiple de 3.
Le nombre formé par ses quatre premiers chiffres "a b c d", est un multiple de 4.
etc.
Exemple1 :
345654 est un nombre polydivisble, en effet:
34 est divisible par 2
345 est divisible par 3
3456 est divisible par 4
34565 est divisible par 5
345654 est divisible par 6
Exemple1 :
123456 n'est pas polydivisible, parce que 1234 n'est pas un multiple de 4.
Travail demandé :
Ecrire un programme Pascal qui permet saisir un entier N (N>100) puis de vérifier et
d’afficher s’il est polydivisible ou non
Grille d’évaluation
Questions Nombre de points
Décomposition en modules utiles à la solution proposée (déclarations et appels) 4(2+2)
Si exécution et test réussis 16
Sinon
Compilation 3
Structures de données adéquates au problème 2
Saisie et contrôle des données 2
Traitement avec les structures de contrôles adéquates 5
Affichage du résultat 2
Lycée Attarine Ariana 2012
11. Année Scolaire : 2011-2012 4 SC
REPUBLIQUE TUNISIENNE
MINISTERE DE L’EDUCATION
EXAMEN DU BACCALAUREAT - SESSION DE JUIN 2011
SECTIONS: Mathématiques + Sciences Expérimentales + Sciences Techniques
EPREUVE PRATIQUE D’INFORMATIQUES Durée : 1h Coefficient : 0.5
DATE : 24 mai 2011 à 15h30mn
Program Proposition_25_Mai_8h_30mn;
Uses Wincrt ;
Var
N :LongInt ;
{*****************************************************}
Procedure Saisie(Var N:LongInt);
Begin
Repeat
Write('N= ');
Readln(N);
until (N>100);
End;
{*****************************************************}
Function Polydivisible(N:LongInt):Boolean;
Var
CH,Tmp:String;
X:LongInt;
e,i:Integer;
B:Boolean;
Begin
STR(N,CH);
Tmp:=CH[1];
i:=1;
B:=True;
Repeat
i:=i+1;
Tmp:=Tmp+CH[i];
Val(Tmp,X,e);
IF (X MOD i) <>0 THEN B:=False;
Until (i=Length(CH)) OR (B=False);
Polydivisible:=B;
End;
{*****************************************************}
Begin
Saisie(N);
IF Polydivisible(N)=True THEN
Write(N,' est polydivisible')
ELSE Write(N,' n''est pas polydivisible');
End.
Lycée Attarine Ariana 2012