*** Correction Epreuve Pratique Bac Info 21/05/2009 9h ***

الموضوع في 'أرشيف المنتدى التعليمي' بواسطة obelix911, بتاريخ ‏21 ماي 2009.

  1. obelix911

    obelix911 عضو نشيط

    إنضم إلينا في:
    ‏4 جانفي 2006
    المشاركات:
    105
    الإعجابات المتلقاة:
    56
      21-05-2009 12:35
    :besmellah1:

    Je vous présente l’épreuve pratique d’algorithmique et programmation (section sciences

    de l’informatique) d’aujourd’hui (21/05/09) à 9h. + ma propre correction..


    [​IMG]

    Veuillez noter qu’avant de lacer le programme, il faut configurer les options du

    COMPILER


    [​IMG]

    [​IMG]

    et voici la correction​


    كود (text):
    [LEFT]{*************************************************************
    {------------- Correction par : Rouissi Nidhal -------------**
    {------------- Lycée Ben Arous : BAC INFO 2009 -------------**
    {*************************************************************


    Program superpre;
    uses wincrt;
    var n,i:longint;
        f:text;


    {***** Procedure saisie : La saisie d'un entier n entre 40000 et 100000 *******

    Procedure saisie(var n:longint);
    begin
    repeat
    writeln('Donner un entier n entre 40000 et 100000 :');
    readln(n);
    until (n>40000) and (n<100000);
    end;


    {***** Procedure creer : La creation du fichier text super_p.txt *******

    Procedure creer(var f:text);
    begin
    assign(f,'c:\docume~1\user\Mesdoc~1\Documents\EXAMS BAC INFO\ALGO\super_p.txt');
    rewrite(f);
    end;




    {***** Fonction premier : Déterminer si un entier n donné est premier ou non *******

    Function premier(n:longint):boolean;
    var i:longint;
    begin
    premier:=true;
    for i:=2 to n div 2 do
     begin
     if (n mod i)=0 then
     premier:=false;
     end;
    end;



    {***** Fonction sup_pre : Déterminer si un entier n donné est super premier ou non *******

    Function sup_pre(n:longint):boolean;
    begin
    sup_pre:=true;
    if not premier(n) then
    sup_pre:=false
    else if not premier(n div 10) then
    sup_pre:=false
    else if not premier(n div 100) then
    sup_pre:=false
    else if not premier(n div 1000) then
    sup_pre:=false
    else if not premier(n div 10000) then
    sup_pre:=false;
    end;



    {***** Procedure remplir : Remplir le fichier super_p.txt par les nombres super premier puis les afficher *******

    Procedure remplir(var f:text;n:longint);
    var i:longint;
        ch:string;
    Begin
    creer(f);
    for i:=1 to n do
     begin
     if sup_pre(i) then
      begin
      str(i,ch);
      ch:=ch+' super premier';
      writeln(ch);
      writeln(f,ch);
      end;
     end;
    close(f);
    end;


    {***** Programme Principale *******

    Begin
    saisie(n);
    remplir(f,n);
    End.

    {***** Merci *******[/LEFT]

    Application: Pour n=40001, le programme doit afficher

    كود (text):

    [LEFT]1 super premier
    2 super premier
    3 super premier
    5 super premier
    7 super premier
    11 super premier
    13 super premier
    17 super premier
    19 super premier
    23 super premier
    29 super premier
    31 super premier
    37 super premier
    53 super premier
    59 super premier
    71 super premier
    73 super premier
    79 super premier
    113 super premier
    131 super premier
    137 super premier
    139 super premier
    173 super premier
    179 super premier
    191 super premier
    193 super premier
    197 super premier
    199 super premier
    233 super premier
    239 super premier
    293 super premier
    311 super premier
    313 super premier
    317 super premier
    373 super premier
    379 super premier
    593 super premier
    599 super premier
    719 super premier
    733 super premier
    739 super premier
    797 super premier
    1319 super premier
    1373 super premier
    1399 super premier
    1733 super premier
    1913 super premier
    1931 super premier
    1933 super premier
    1973 super premier
    1979 super premier
    1993 super premier
    1997 super premier
    1999 super premier
    2333 super premier
    2339 super premier
    2393 super premier
    2399 super premier
    2939 super premier
    3119 super premier
    3137 super premier
    3733 super premier
    3739 super premier
    3793 super premier
    3797 super premier
    5939 super premier
    7193 super premier
    7331 super premier
    7333 super premier
    7393 super premier
    13997 super premier
    13999 super premier
    17333 super premier
    19139 super premier
    19319 super premier
    19333 super premier
    19739 super premier
    19793 super premier
    19937 super premier
    19973 super premier
    19979 super premier
    19991 super premier
    19993 super premier
    19997 super premier
    23333 super premier
    23339 super premier
    23399 super premier
    23993 super premier
    29399 super premier
    31193 super premier
    31379 super premier
    37337 super premier
    37339 super premier
    37397 super premier
    [/LEFT]


    P.S: Borjouléya louléd, devoir 7allou9... :D

    :satelite:
     
    8 شخص معجب بهذا.
  2. ramy90

    ramy90 عضو فعال

    إنضم إلينا في:
    ‏22 فيفري 2008
    المشاركات:
    414
    الإعجابات المتلقاة:
    258
      21-05-2009 14:42
    devoir de 10h30 ?
     
  3. rgzied

    rgzied عضو فعال

    إنضم إلينا في:
    ‏12 ماي 2008
    المشاركات:
    415
    الإعجابات المتلقاة:
    164
      21-05-2009 15:50
    devoir 10:30

    lysee slimen ben slimen Zaghouan


    [​IMG]

    la correction encour



    :easter::easter:
     
    1 person likes this.
  4. obelix911

    obelix911 عضو نشيط

    إنضم إلينا في:
    ‏4 جانفي 2006
    المشاركات:
    105
    الإعجابات المتلقاة:
    56
      21-05-2009 18:07
    7low zeda eddevoir mta3 10h30
     
  5. alioss2

    alioss2 عضو

    إنضم إلينا في:
    ‏22 ديسمبر 2007
    المشاركات:
    83
    الإعجابات المتلقاة:
    8
      22-05-2009 00:35
    program alioss;
    uses wincrt;
    var
    f:text;
    k:integer;
    u:longint;
    function min(u:integer):integer;
    var
    i,x,e:integer;
    ch:string;
    aux:char;
    b:boolean;
    begin
    str(u,ch);
    repeat
    b:=false;
    for i := 1 to length(ch)-1 do
    if ch>ch[i+1] then
    begin
    aux:=ch;
    ch:=ch[i+1];
    ch[i+1]:=aux;
    b:=true
    end;
    until(b=false);
    val(ch,x,e);
    min:=x;
    end;

    function max(u:integer):integer;
    var
    i,x,e:integer;
    ch:string;
    aux:char;
    b:boolean;
    begin
    str(u,ch);
    repeat
    b:=false;
    for i := 1 to length(ch)-1 do
    if ch<ch[i+1] then
    begin
    aux:=ch;
    ch:=ch[i+1];
    ch[i+1]:=aux;
    b:=true
    end;
    until(b=false);
    val(ch,x,e);
    max:=x;
    end;

    procedure calcul(var f:text;var k:integer;u:integer);
    var
    up,ma,mi:integer;
    begin
    k:=1;writeln(f,u);
    repeat
    up:=u;
    ma:=max(u);
    mi:=min(u);
    u:=ma-mi;
    writeln(f,u);
    k:=k+1;
    until(up=u);
    end;


    procedure affichage(var f:text;k:integer);
    var
    x,i:integer;
    begin
    reset(f);
    for i := 0 to k-2 do
    begin
    readln(f,x);
    writeln('le ',i+1,' terme de la suite est: ',x);
    end;
    end;

    begin
    assign(f,'C:\Bac2009\139737\suite.txt');
    rewrite(f);
    repeat
    write('donner un terme u : ');
    read(u);
    until(u >= 1000) and (u < 9999);
    calcul(f,k,u);

    affichage(f,k);
    close(f);
    end.


    9adach na5ou
    ?????????????
     
    1 person likes this.
  6. anas sellami

    anas sellami عضو نشيط

    إنضم إلينا في:
    ‏4 فيفري 2007
    المشاركات:
    299
    الإعجابات المتلقاة:
    132
      22-05-2009 01:11


    ------------------------------------
    je pense que tout ce que tu as travaillé est juste mais reste la fonction sup_pre squi peut etre amiliorée .... c juste mais moi j'ai utilisé un chemain plus raccourci
    (for i:=1 to n do
    if premier(n div 10) then
    sup_pre(n)
    )

    et c'est compilé et ca marche 10/10

    en fin bon courage a toutes et a tous ...


    :satelite:
     
  7. alioss2

    alioss2 عضو

    إنضم إلينا في:
    ‏22 ديسمبر 2007
    المشاركات:
    83
    الإعجابات المتلقاة:
    8
      22-05-2009 08:26
    DSl Mr mais j'ai travaillé le devoir de 10:30 et vous vous me parler sur le devoir de 8:30
    Vérifier mon travail SVP
    :satelite:
     
  8. obelix911

    obelix911 عضو نشيط

    إنضم إلينا في:
    ‏4 جانفي 2006
    المشاركات:
    105
    الإعجابات المتلقاة:
    56
      22-05-2009 09:42
    Alioss..ton programme est compilable et donne le bon résultat
    Ex : Pour Uo = 4123
    Ton programme affiche

    كود (text):
    [LEFT]

    Le 1 terme de la suite est : 4123
    Le 2 terme de la suite est : 3087
    Le 3 terme de la suite est : 8352
    Le 4 terme de la suite est : [COLOR="Red"]6174[/COLOR]

    [/LEFT]
    Donc normalement kénék 5adém b une démarche logique w bonne décomposition en module té5ou 20

    :easter:
     
  9. obelix911

    obelix911 عضو نشيط

    إنضم إلينا في:
    ‏4 جانفي 2006
    المشاركات:
    105
    الإعجابات المتلقاة:
    56
      22-05-2009 09:48
    na3réf ya sallémi j'ai pu faire tt le boulot dans une seule proc ama né5dem 3al "decomposition en modules utiles" c tn port bin el 16 wél 20 ;)
     

مشاركة هذه الصفحة

جاري تحميل الصفحة...