Lycée Mahmoud Messadi Nabeul
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -28%
Précommande : Smartphone Google Pixel 8a 5G ...
Voir le deal
389 €

Sujets Bac 2008

2 participants

Aller en bas

Sujets Bac 2008 Empty Sujets Bac 2008

Message par Admin Mar 17 Mar - 16:50

22 Mai 2008 9H:
on se propose d'écrire un programme Pascal permettant de déterminer et d'afficher si un entier N 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 jusqu'au 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 à 9, on lui soustrait 9, on obtient 2)
    2 4 = 6 (6 est strictement inférieur à 9)
    6 9 = 15 (15 est supérieur à 9, on lui soustrait 9, on obtient 6)
    6 3 = 9 (9 >=9, on lui soustrait 9, on obtient 0)
    le résultat est nul et tous les chiffres de N ont été traités, donc le nombre 65493 est divisible par 9. en effet, 65493 = 9 * 7277

22 Mai 2008 10H 30
on se propose d'écrire un programme Pascal permettant de déterminer et d'afficher un code à partir d'un entier N strictement positif et supérieur à 100, selon le principe suivant:

  1. calculer la somme S des chiffrres qui composent le nombre N
  2. recommencer le calcul de la somme des chiffres de la somme obtenue S tant que celle-ci n'est 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: 39867
en effet: pour N = 9867:

  • la 1ère somme S vaut 30 ( car 9+ 8+ 6+ 7 = 30)
  • la 2ème somme 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 39867

23 Mai 2008 15H30 (Mastermind):
écrire un programme Pascal qui choisit au hasard un nombre formé de 4 chiffres puis demande à l'uilisateur de le deviner. A chaque proposition, le programme affichera:

  • le nombre de chiffres bien placés (BP)
  • le nombre de chiffres mal placés (MP)

    le programme s'arrête lorsque la combinaison a été trouvée ou bien lorsque le nombre maximum d'essais NBES a été atteint (NBES = 10).
    exemple: pour le nombre secret 1437, et les propositions suivantes, le programme affichera:
    votre proposition: 1234
    2BP 1MP
    votre proposition: 2345
    0BP 2MP
    votre proposition: 4567
    1BP 1MP
    votre proposition: 1467
    3BP 0MP
    votre proposition: 1437
    4BP 0MP
    Vous avez trouvé en 5 coups.

    23 Mai 2008 10H 30:
    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 huits 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.

    22 Mai 2008 14H:
    Ecrire un programme Pascal qui permet de:
  • remplir un tableau T, d'une 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 d'indice P donné, s'il est égale à la somme d'un certains 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".

Exemple 1: pour le tableau T suivant, avec N=7 et P=5


3 2 4 6 12 18 20


le programme affiche:6, 4, 2
Exemple 2: pour le tableau T suivant, avec N=7 et P=3

3 2 4 6 12 18 20
le programme affiche le message:"Condition non vérifiée".


Dernière édition par Admin le Ven 27 Mar - 18:53, édité 1 fois

Admin
Admin

Messages : 65
Date d'inscription : 30/12/2008

https://lmmnabeul.forumactif.org

Revenir en haut Aller en bas

Sujets Bac 2008 Empty Correction 22 Mai 2008 9H:

Message par Admin Dim 22 Mar - 0:33

program mai22_08_9h;
uses wincrt;
var
n:longint;

procedure saisie(var n:longint);
begin
repeat
writeln('saisir n>9');
readln(n);
until (n>9);
end;

function somme (x,y:integer):integer;
var s:integer;
begin
s:=x+y;

while (s>=9) do
s:=s-9;
somme:=s;
end;

function calcul(n:longint):integer;
var
ch:string;
a,b,som,e,i:integer;
begin
str(n,ch);
val(ch[1],a,e);
val(ch[2],b,e);
som:=somme(a,b);
for i:=3 to length(ch) do
begin
val(ch[i],a,e);
som:=somme(som,a);
end;
calcul:=som;
end;

{pp}
begin
saisie(n);
if (calcul(n)=0)then
writeln(n,' est divisible par 9')
else
writeln(n,' n''est pas divisible par 9');
end.


Admin
Admin

Messages : 65
Date d'inscription : 30/12/2008

https://lmmnabeul.forumactif.org

Revenir en haut Aller en bas

Sujets Bac 2008 Empty Correction 23 Mai 08 10h30

Message par Admin Dim 29 Mar - 20:11

program mai23_08_10h30;
uses wincrt;
type
tab = array[1..30]of string[8];
var
t:tab;
i,n:integer;

procedure saisie( var n:integer);
begin
repeat
writeln('saisir n');
readln(n);
until n in [4..30];
end;
function verif (ch:string):boolean;
var j:integer;
begin
j:=1;
while (ch[j] in ['0'..'9']) and (j<8)do
begin
j:=j+1;
end;
verif := ch[j] in ['0'..'9'];
end;
function exist (t:tab;i:integer):boolean;
var
j:integer;
begin
j:=0;
repeat
j:=j+1;
until (t[j] = t[i]) or (j=i-1);
exist:=t[i] = t[j];
end;
procedure remplir(var t:tab; n:integer);
begin
repeat
write('saisir t[1]= ');
readln(t[1]);
until (length(t[1])=8 and (verif (t[1]));
for i:=2 to n do
repeat
write('saisir t[',i,']= ');
readln(t[i]);
until (length(t[i])=8 and (verif(t[i])) and not(exist(t,i)) ;
end;
procedure affichage(t:tab; n:integer);
begin
for i:=1 to n do
writeln('t[',i,']= ',t[i]);
end;
{pp}
begin
saisie(n);
remplir(t,n);
affichage(t,n);
end.

Admin
Admin

Messages : 65
Date d'inscription : 30/12/2008

https://lmmnabeul.forumactif.org

Revenir en haut Aller en bas

Sujets Bac 2008 Empty Re: Sujets Bac 2008

Message par ameni hlaili Ven 15 Mai - 15:39

22 Mai 2008 10H 30
on se propose d'écrire un programme Pascal permettant de déterminer et d'afficher un code à partir d'un entier N strictement positif et supérieur à 100, selon le principe suivant:

  1. calculer la somme S des chiffrres qui composent le nombre N
  2. recommencer le calcul de la somme des chiffres de la somme obtenue S tant que celle-ci n'est 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: 39867
en effet: pour N = 9867:

  • la 1ère somme S vaut 30 ( car 9+ 8+ 6+ 7 = 30)
  • la 2ème somme 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 39867
    suggestion :


program espoir bac;
uses wincrt;
var
n:integer;
ch:string;
procedure saisie(var n:integer);
begin
repeat
writeln('n=');
readln(n);
until (n>0) and( n>100); si n>100 alors n>0
end;
ction calcul ( var n:integer):string;
var
i,a,e,s:integer;
ch,c,nb:string;
begin
str(n,ch);
for i:= 1 to length(ch) do
begin
repeat
val(ch[i],a,e);
s:=0;
s:=s+a;
until s in[1..9];
str(s,c);
nb:=c+ch;
end;
calcul:=nb;
end;

begin
saisie(n);
writeln('le code est',calcul(n))
end.
Exclamation study
correction
program espoirbac;
uses wincrt;
var
n:integer;
ch:string;
procedure saisie(var n:integer);
begin
repeat
writeln('n=');
readln(n);
until ( n>100);
end;
function calcul ( var n:integer):string;
var
i,a,e,s:integer;
ch,c,nb:string;
begin
str(n,ch);


repeat
s:=0;
for i:= 1 to length(ch) do

begin
val(ch[i],a,e);

s:=s+a;
end;
str(s,ch);
until s in[1..9];
str(n,c);
calcul:=ch+c;;
end;

begin
saisie(n);
writeln('le code est',calcul(n))
end.

ameni hlaili

Messages : 12
Date d'inscription : 06/01/2009
Age : 33

Revenir en haut Aller en bas

Sujets Bac 2008 Empty Re: Sujets Bac 2008

Message par ameni hlaili Ven 15 Mai - 15:45

23 Mai 2008 15H30 (Mastermind):
écrire un programme Pascal qui choisit au hasard un nombre formé de 4 chiffres puis demande à l'uilisateur de le deviner. A chaque proposition, le programme affichera:

  • le nombre de chiffres bien placés (BP)
  • le nombre de chiffres mal placés (MP)

    le programme s'arrête lorsque la combinaison a été trouvée ou bien lorsque le nombre maximum d'essais NBES a été atteint (NBES = 10).
    exemple: pour le nombre secret 1437, et les propositions suivantes, le programme affichera:
    votre proposition: 1234
    2BP 1MP
    votre proposition: 2345
    0BP 2MP
    votre proposition: 4567
    1BP 1MP
    votre proposition: 1467
    3BP 0MP
    votre proposition: 1437
    4BP 0MP
    Vous avez trouvé en 5 coups.
  • je voudrais bien avoir la solution de ce sujet!
  • merci d' avance! Very Happy Smile

ameni hlaili

Messages : 12
Date d'inscription : 06/01/2009
Age : 33

Revenir en haut Aller en bas

Sujets Bac 2008 Empty Re: Sujets Bac 2008

Message par ameni hlaili Sam 16 Mai - 16:57

22 Mai 2008 14H:
Ecrire un programme Pascal qui permet de:

  • remplir un tableau T, d'une 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 d'indice P donné, s'il est égale à la somme d'un certains 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".


  • Exemple 1: pour le tableau T suivant, avec N=7 et P=5


    3 2 4 6 12 18 20


    le programme affiche:6, 4, 2
    Exemple 2: pour le tableau T suivant, avec N=7 et P=3

    3 2 4 6 12 18 20
    le programme affiche le message:"Condition non vérifiée".


    program bacreussite;
    uses wincrt;
    type
    tab= array[1..1000] of integer;
    var
    n:integer;
    t:tab;

    procedure saisie(var n:integer);
    begin
    repeat writeln('n=');
    readln(n);
    until n in [5..30];
    end;
    procedure remplir ( var t:tab);
    var
    i: integer;
    begin
    for i:=1 to n do
    begin
    randomize ;
    writeln('t[',i,']=');
    readln(t[i]);
    end;
    end;
    procedure traitement(var t:tab;n :integer);
    var
    p,i,a:integer;
    begin
    writeln('p=');
    readln(p);
    a:=p+1;
    for i:=1 to n do
    begin
    if (a =t[i]) and (a=t[i]+1) then
    writeln('condition vérifiée')
    else writeln('non vérif.');

    end;
    end;
    begin
    saisie(n);
    remplir(t);
    traitement(t,n);

    end.
    malheuresement !j'ai pas compris le sujet! Evil or Very Mad confused

    ameni hlaili

    Messages : 12
    Date d'inscription : 06/01/2009
    Age : 33

    Revenir en haut Aller en bas

    Sujets Bac 2008 Empty correction sujet Mastermind (23 Maï 2008 15H30)

    Message par ameni hlaili Dim 17 Mai - 15:25

    solution proposée par un élève:

    program devine;
    uses wincrt;
    var
    x,p,nbes:integer;
    procedure hasard(var x:integer);
    begin
    randomize;
    x:=random(9000)+1000;
    end;
    procedure prop(var p:integer);
    begin
    repeat
    writeln('votre proposition STP');
    readln(p);
    until (p>=1000) and (p<=9999);
    end;
    procedure traitement(x:integer;var nbes:integer);
    var bp,mp,i:integer;
    x1,p1:string;
    begin
    nbes:=0;
    str(x,x1);
    repeat
    bp:=0; mp:=0;
    prop(p);
    str(p,p1);
    for i:=1 to 4 do
    if x1[i]=p1[i] then
    bp:=bp+1
    else
    if (pos(p1[i],x1)<>0) then
    mp:=mp+1;
    writeln(bp,' bp ',mp,' mp');
    nbes:=nbes+1;
    until (x1=p1) or (nbes=10);
    end;
    procedure affichage(x,p,nbes:integer);
    begin
    if (x=p) then
    writeln('vous avez trouvé en ',nbes,' coups')
    else
    writeln('désolé le nombre est: ',x);
    end;
    begin
    hasard(x);
    traitement(x,nbes);
    affichage(x,p,nbes);
    end.

    ameni hlaili

    Messages : 12
    Date d'inscription : 06/01/2009
    Age : 33

    Revenir en haut Aller en bas

    Sujets Bac 2008 Empty Re: Sujets Bac 2008

    Message par Contenu sponsorisé


    Contenu sponsorisé


    Revenir en haut Aller en bas

    Revenir en haut

    - Sujets similaires

     
    Permission de ce forum:
    Vous ne pouvez pas répondre aux sujets dans ce forum