éNoncés+corrections bac2008

4 650 vues

Publié le

1 commentaire
2 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
4 650
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
185
Commentaires
1
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

éNoncés+corrections bac2008

  1. 1. 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 : 22 mai 2008 10h30 SESSION 2008 DUREE : 1 h – COEFFICIENT : 0.5 Sujet : Programmation PascalImportant : 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 d’écrire un programme Pascal permettant de déterminer et dafficher un code àpartir dun entier N strictement positif et supérieur à 100, selon le principe suivant : 1. Calculer la somme S des chiffres qui composent le nombre N 2. Recommencer le calcul de la somme des chiffres de la somme obtenue S tant que celle-ci nest pas comprise entre 1 et 9. 3. Le code sera le nombre formé par N auquel on place à sa gauche la dernière somme obtenue.Exemple:Pour N= 9867, le programme affichera : le code est : 39867En effet:Pour N= 9867 :  La 1ère somme S vaut 30 (car 9+8+6+7= 30)  La 2ème somme S vaut 3 (car 3+0 = 3)  Etant donné que la dernière somme S, qui vaut 3, est comprise entre 1 et 9, le code sera 39867Grille d’évaluation : Questions 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 7Lycée Attarine Ariana 2012
  2. 2. 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 : 22 mai 2008 10h30 SESSION 2008 DUREE : 1 h – COEFFICIENT : 0.5Program P22Mai2008_10h30;Uses WinCrt;Var N:LongInt;{**= Procedure De Saisie de N ==**}Procedure SaisieDe_N(Var N : LongInt);Begin Repeat Write(Saisir N: ); Readln(N); Until (N>100);End;{**=FN Qui Calcule la somme des chiffres dun nombre=**}Function SommeChiffres(NBR:LongInt):Integer;Var Ch:String; S,i,e,X:Integer;Begin S:=0; STR(NBR,CH); For i:=1 To Length(Ch) Do Begin Val(Ch[i],X,e); S:=S+X; End; SommeChiffres:=S;End;{******=== Fonction Code ==*******}Function Code(N:LongInt):LongInt;Var Res,Aux:LongInt; e:Integer; Ch, Gauche:String;Begin Aux:=N; Repeat Aux:= SommeChiffres(Aux); Until Aux<=10; Str(N,Ch); Str(Aux,Gauche); Val(Gauche+Ch, Res, e); Code:=Res;End;Begin{******=== Programme Principal ===*******} SaisieDe_N(N); Write(Le Code = ,Code(N));End.Lycée Attarine Ariana 2012
  3. 3. 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 : 22 mai 2008 9h SESSION 2008 DUREE : 1 h – COEFFICIENT : 0.5 Sujet : Programmation PascalImportant : 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 décrire un programme Pascal permettant de déterminer et d’afficher si un entierN saisi (N > 9) est divisible par 9 ou non, en appliquant la méthode suivante: 1. On fait la somme du 1er et du 2ème chiffre de N 2. Si la somme obtenue est supérieure ou égale à 9, on lui soustrait 9 3. On ajoute ensuite à cette somme et on lui applique la règle 2 (on lui retranche 9 si elle est supérieure à 9) et ainsi de suite jusquau dernier chiffre de N. 4. Si le résultat final est nul, le nombre N est alors divisible par 9.Exemple:Pour N = 65493 le programme effectuera les opérations suivantes : 6 + 5 = 11 (11 est supérieur ou égal à 9, on lui soustrait 9, on obtient 2) 2 + 4 = 6 (6 est strictement inférieur à 9) 6 + 9 = 15 (15 est supérieur ou égal à 9, on lui soustrait 9, on obtient 6) 6 + 3 = 9 (9 est supérieur ou égal à 9, on lui so11strait 9, on obtient 0) Le résultat est nul et tous les chiffres de N ont été traités, donc le nombre 65493 estdivisible par 9. En effet, 65493 = 9 x 7277Grille d’évaluation : Questions 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 7Lycée Attarine Ariana 2012
  4. 4. 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 : 22 mai 2008 9h SESSION 2008 DUREE : 1 h – COEFFICIENT : 0.5Program P22Mai2008_9h;Uses WinCrt;Type Vecteur=Array[1..10] of Integer;{Selon lénoncé et lexemple: N est de type LongInt --> au max contient 10 chiffres (2 Milliards w chwaya sarf)}Var T: Vecteur; TailleT:Integer; N:LongInt;{******=== Procedure De Saisie de N ===*******}Procedure SaisieDe_N(Var N : LongInt);Begin Repeat Write(Saisir N: ); Readln(N); Until (N>9);End;{**== Procedure Qui Met tous les chiffre de N dans T ==**}Procedure Chiffres_De_N_Dans_T(Var T:Vecteur; Var TailleT: Integer; N:LongInt);Begin TailleT:=0; Repeat TailleT:=TailleT+1; T[TailleT]:=N MOD 10; N:=N DIV 10; Until (N=0);End;{******=== Fonction Verif ==*******}Function Verif(T:Vecteur;TailleT: Integer):Boolean;Var i,S:Integer;Begin S:=T[TailleT]; For i:=TailleT-1 DownTo 1 Do Begin S:=S+T[i]; IF S>=9 THEN S:=S-9; End; Verif:=(S=0);End;Begin {******=== Programme Principal ===*******} SaisieDe_N(N); Chiffres_De_N_Dans_T(T, TailleT,N); IF Verif(T, TailleT) THEN Write(Le Nombre [,N, ] est Divisible par 9) ELSE Write(Le Nombre [,N, ] nest pas Divisible par 9);End.Lycée Attarine Ariana 2012
  5. 5. 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 : 22 mai 2008 9h SESSION 2008 DUREE : 1 h – COEFFICIENT : 0.5 Sujet : Programmation PascalImportant : 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.Ecrire un programme Pascal qui permet de :  Remplir un tableau T, dune façon automatique et aléatoire, par n entiers strictement positifs, inférieurs ou égaux à 1000, avec (5≤ n ≤ 30).  Vérifier pour lélément de T dindice p donné, sil est égal à la somme dun certain nombre déléments consécutifs de T qui le précèdent immédiatement. Dans ce cas, le programme affiche ces éléments, sinon il affiche "Condition non vérifiée".Exemple1: Pour le tableau T suivant, avec n=7 et p=5 : 3 2 4 6 12 18 20 T 1 2 3 4 5 6 7 Le programme affiche : 6, 4, 2Exemple2: Pour le tableau T suivant, avec n=7 et p=3 : 3 2 4 6 12 18 20 T 1 2 3 4 5 6 7 Le programme affiche "Condition non vérifiée".Grille d’évaluation : Questions 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 7Lycée Attarine Ariana 2012
  6. 6. 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 : 22 mai 2008 14h SESSION 2008 DUREE : 1 h – COEFFICIENT : 0.5Program P22Mai2008_14h;Uses WinCrt;Type Vecteur=Array[1..30] of integer;Var T:Vecteur; N, P:Integer;{******=== Procedure De Saisie de N ===*******}Procedure SaisieDe_N(Var N : Integer);Begin Repeat Write(Saisir N: ); Readln(N); Until (N>=5) And (N<=30);End;{******=== Procedure De Saisie de P ===*******}Procedure SaisieDe_P(Var P : Integer; N:Integer);Begin Repeat Write(Saisir P: ); Readln(P); Until (P>=2) And (P<=N);End;{******=== Procedure De Remplissage de T ===*******}Procedure Remplissage_De_T(Var T:Vecteur; N: Integer);Var i:Integer;Begin Randomize; {initialise le générateur aléatoire} For i:=1 To N Do Begin T[i]:=Random(1000)+1; {Random(1000) génère un nombre aléatoire entre 0 et 999} End;End;Lycée Attarine Ariana 2012
  7. 7. Année Scolaire : 2011-2012 4 SC{******=== Procedure Affichage de la liste ===*******}Procedure AfficherListe(T:Vecteur; N,P: Integer);Var S, i:Integer;Begin S:=0; i:=P; Repeat i:=i-1; S:=S+T[i]; Write(T[i],, ); Until S=T[P];End;{**=FN Qui Calcule la somme =**}Function Somme(T:Vecteur; N,P:Integer):Integer;Var S,i:Integer;Begin S:=0; i:=P; Repeat i:=i-1; S:=S+T[i]; Until (S>=T[P]) OR (i=1); Somme:=S;End;{******=== Programme Principal ===*******}Begin SaisieDe_N(N); Remplissage_De_T(T, N); SaisieDe_P(P,N); IF Somme(T,N,P)=T[P] THEN AfficherListe(T,N,P) ELSE Write(Condition non vérifiée);End.Lycée Attarine Ariana 2012

×