Bac pratique 2010/2011-- Informatique sections scientifiques

الموضوع في 'أرشيف المنتدى التعليمي' بواسطة 3abdessèmi3, بتاريخ ‏18 افريل 2011.

  1. 3abdessèmi3

    3abdessèmi3 كبير مراقبي المنتدى التعليمي طاقم الإدارة

    إنضم إلينا في:
    ‏24 سبتمبر 2009
    المشاركات:
    9.773
    الإعجابات المتلقاة:
    19.784
      18-04-2011 00:08
    [​IMG]
    Les examens pratiques pour les sections scientifiques ont été fixés pour 24 et 25 Mai 2011

    [​IMG]

    le but de ce sujet est de bien préparer pour passer l'examen mentionné donc toutes vos questions seront les bienvenues.

    Bien évidement, tout le monde est invité à respecter la charte du forum (pas de langage sms S.V.P et de demandes de correction)


    مثبت: قانون المنتدى التعليمي

    مثبت:
    Remarque importante

    Je compte aussi sur la collaboration de différents collègues (après l'aide de dieu)

    Voici ci joint les examens pratiques de l'année dernière.


    Je tiens à signaler que ce sujet est consacré pour les élèves du 4ème année scientifiques (sciences expérimentales, mathématiques et sciences techniques)


    Nous attendons vos brouillons et vos questions


    الله الموفّق
     

    الملفات المرفقة:

    chafi9 ،شهدالصالح ،ad94 و 35آخرون معجبون بهذا.
  2. emna111

    emna111 عضوة مميزة بمنتدى الفرنسية و الانجليزية و بالمنتدى التعليمي عضو قيم

    إنضم إلينا في:
    ‏5 ديسمبر 2009
    المشاركات:
    1.733
    الإعجابات المتلقاة:
    10.273
      18-04-2011 11:38
    BAC PRATIQUE 25 MAI 2010 A 10 H

    Program bac2010;
    uses wincrt;
    var
    n: integer;

    Procedure Saisie (Var a: integer);
    begin
    repeat
    writeln ('donnez un entier supérieur ou égale à10');
    readln (a);
    until (a >=10);
    end;

    Function verif (a:integer): boolean;
    var m,p,K: integer;
    begin
    Repeat
    m:= a div10;
    p:= a mod10;
    k := Abs (m-2*p);
    until
    K In [0..9];
    verif := K In [0..7] ;
    End;

    {P,P**
    Begin
    Saisie (n);
    If (verif (n) = True ) then
    Writeln (n, 'est divisible par 7')
    else writeln (n' n''est pas divisible par 7') ;
    End;
    end.



     
    16 معجب بهذا.
  3. emna111

    emna111 عضوة مميزة بمنتدى الفرنسية و الانجليزية و بالمنتدى التعليمي عضو قيم

    إنضم إلينا في:
    ‏5 ديسمبر 2009
    المشاركات:
    1.733
    الإعجابات المتلقاة:
    10.273
      18-04-2011 11:52
    BAC PRATIQUE 25 MAI 2010 A 8H 30 MIN


    Program Kaprekar;

    uses wincrt;

    Var i :integer;

    FUNCTION kap (K: integer): longint; {ou integer ?**
    var
    x1 , x2: integer;
    Ch1, ch, chk : string;

    begin
    STR (K, chk);
    STR (SQR (K), ch);
    n:= length (chk);
    ch1 := copy (Ch, lenght (ch) -n+1) , n);
    DElETE (ch, length (ch) -n +1, n);
    val (ch1, x1, e);
    val (ch, x2, e);
    Kap := x1 + x2;
    end;

    {P.P**
    Begin
    writeln ('les entiers Kaprekar sont') ;
    For i:= 1 to 1000 do
    if Kap (i) = i then
    writeln (i) ;
    end;
    end;
    end.

    Est-ce qu'un seul module (la fonction Kap) suffit pour que cette solution soit une solution modulaire ou bien que je dois ajouter une fonction verif par exemple pour vérifier si un entier est kaprekar ou non?
    J'ai déjà abordé ce sujet et c'était la seule ambiguïté que j'ai rencontrée.
    Merci
     
    8 معجب بهذا.
  4. 3abdessèmi3

    3abdessèmi3 كبير مراقبي المنتدى التعليمي طاقم الإدارة

    إنضم إلينا في:
    ‏24 سبتمبر 2009
    المشاركات:
    9.773
    الإعجابات المتلقاة:
    19.784
      18-04-2011 12:17
    Vous avez commis quelques fautes syntaxiques qui ont été mentionnées (en rouge) ci-dessus
    Voici un écran d'exécution de votre programme
    [​IMG]
    et comme vous voyez vous avez commis une petite faute qui est dans la ligne en vert (ci-dessus)

    Lorsque vous mettez K in [0..7] c'est à dire
    k in [0,1,2,3,4,5,6,7] or c'est faux nous devons mettre k in [0,7]
    , vous avez aussi oublié d'affecter "a" à "k" c'est à dire de mettre a:=k à la fin de la boucle répéter (avant until) sinon nous restons dans une boucle infinie et là le programme se plante.
    Avant d'oublier, toutes les variables doivent être déclarées, Longint (déjà l'exemple mentionné dans la feuille d'examen 345678 dépasse la plage des entiers qui est 32767

    Grossomodo, vous êtes sur la bonne voie, très bien continuez emna[​IMG]

    Bonne chance

     
    11 معجب بهذا.
  5. 3abdessèmi3

    3abdessèmi3 كبير مراقبي المنتدى التعليمي طاقم الإدارة

    إنضم إلينا في:
    ‏24 سبتمبر 2009
    المشاركات:
    9.773
    الإعجابات المتلقاة:
    19.784
      18-04-2011 13:13
    Les différentes fautes commises sont mentionnées en vert

    BAC PRATIQUE 25 MAI 2010 A 8H 30 MIN


    Program Kaprekar;

    uses wincrt;

    Var i :integer;

    FUNCTION kap (K: longint): integer; {ou integer ?**
    integer suffit car x1+x2 ne depassera dans aucun cas 32767 mais vous devez déclarer k longint sinon l'instruction suivante :
    STR (SQR (K), ch); va retourner une valeur fausse
    var
    x1,n,e , x2: integer;
    vous avez oublié de déclarer n et e

    Ch1, ch, chk : string;

    begin
    STR (K, chk);
    STR (SQR (K), ch);
    n:= length (chk);
    ch1 := copy (Ch, lenght (ch) -n+1) , n);
    faute de frappe length et la parenthèse à enléver
    DElETE (ch, length (ch) -n +1, n);
    val (ch1, x1, e);
    val (ch, x2, e);
    Kap := x1 + x2;
    end;

    {P.P**
    Begin
    writeln ('les entiers Kaprekar sont') ;
    For i:= 1 to 1000 do
    if Kap (i) = i then
    writeln (i) ;
    end;
    end;
    ces deux "end;" sont à enlever puisque vous n'avez pas mis begin pour la boucle "pour" ni pour "if" et c'est correcte puisqu'il s'agit d'une seule instruction
    end.

    Est-ce qu'un seul module (la fonction Kap) suffit pour que cette solution soit une solution modulaire ou bien que je dois ajouter une fonction verif par exemple pour vérifier si un entier est kaprekar ou non?
    il est préférable d'ajouter une fonction verif

    J'ai déjà abordé ce sujet et c'était la seule ambiguïté que j'ai rencontrée.
    Merci


    très bien continuez


     
    8 معجب بهذا.
  6. futurezone

    futurezone عضو فعال

    إنضم إلينا في:
    ‏26 أكتوبر 2010
    المشاركات:
    542
    الإعجابات المتلقاة:
    638
      18-04-2011 19:23
    S'il vous plait qui dispose des bacs pratiques de l'an 2005??Je veux que les souvenirs reviennent! C'était mon bac!
     
    3 معجب بهذا.
  7. 3abdessèmi3

    3abdessèmi3 كبير مراقبي المنتدى التعليمي طاقم الإدارة

    إنضم إلينا في:
    ‏24 سبتمبر 2009
    المشاركات:
    9.773
    الإعجابات المتلقاة:
    19.784
      18-04-2011 20:27
    Voici ci-joint votre demande

    :satelite:
     

    الملفات المرفقة:

    14 معجب بهذا.
  8. emna111

    emna111 عضوة مميزة بمنتدى الفرنسية و الانجليزية و بالمنتدى التعليمي عضو قيم

    إنضم إلينا في:
    ‏5 ديسمبر 2009
    المشاركات:
    1.733
    الإعجابات المتلقاة:
    10.273
      18-04-2011 23:36
    BAC PRATIQUE 25 MAI 2010 à 14H

    Program pascal;
    uses wincrt;
    Var

    N,K: integer;

    { S ne doit pas être déclarée ici car elle est déjà déclarée comme étant une fonction ? **

    Function Puissance (a,b: integer): integer;
    var p,i: integer;
    Begin
    p := 1;

    For i:= 1 to b do
    p := p*a ;
    puissance := p;
    end;

    Function somme (N,K: integer) : integer;
    var
    S: integer;

    begin

    s := 0;

    repeat
    r := N mod 10;
    N := N div 10;
    S := S + Puissance (r,K) ;
    until (N=0);
    Somme := S;
    end;

    {P,P**

    Begin

    For N := 1000 to 9999 do
    begin
    K := 0;
    S := 0;

    repeat
    K := K+1 ;
    S := Somme (N,K);
    Until (K=5 ) or ( S=N );

    Writeln ('les entiers demandés sont ')
    if (S =N) then
    writeln (S) ;
    end;
    end.

    Me permettez- vous de poster un autre essai ou bien dois-je céder la place à mes collègues ? J'aimerais bien faire le maximum d'applications étant donné que je passe un test ce Vendredi inchAllah et je me sens encore un peu 'débutante' .
    Merci

     
    4 معجب بهذا.
  9. 3abdessèmi3

    3abdessèmi3 كبير مراقبي المنتدى التعليمي طاقم الإدارة

    إنضم إلينا في:
    ‏24 سبتمبر 2009
    المشاركات:
    9.773
    الإعجابات المتلقاة:
    19.784
      19-04-2011 12:41
    Comme d'habitude, les différentes clarifications sont écrites en vert ci-dessous


    BAC PRATIQUE 25 MAI 2010 à 14H

    Program pascal;
    uses wincrt;
    Var

    N,K: integer;

    { S ne doit pas être déclarée ici car elle est déjà déclarée comme étant une fonction ? **
    Puisque vous avez utilisé "S" dans le programme principal, vous devez alors la déclarer car les variables locaux ne sont pas connues par le programme principal
    Function Puissance (a,b: integer): integer;
    var p,i: integer;
    Begin
    p := 1;

    For i:= 1 to b do
    p := p*a ;
    puissance := p;
    end;

    Function somme (N,K: integer) : integer;
    var
    S: integer;
    r:integer;
    vous avez oublié de déclarer r

    begin

    s := 0;
    repeat
    r := N mod 10;
    N := N div 10;
    S := S + Puissance (r,K) ;
    until
    (N=0);
    Somme := S;
    end;

    {P,P**

    Begin
    voici ci-dessous un exemple d'un écran d'exécution figure 1. Le travail est correcte, mais vous ne obtenez pas une bonne exécution à cause de la ligne
    "Writeln ('les entiers demandés sont ')" qui doit être mise en dehors de la boucle pour (au début) ainsi que vous devez afficher N et K donc l'instruction de la structure conditionnelle if qui sera writeln (S,' ',K) ;
    le programme affichera l'écran de la figure 2

    For N := 1000 to 9999 do
    begin
    K := 0;
    S := 0;

    repeat
    K := K+1 ;
    S := Somme (N,K);
    Until (K=5 ) or ( S=N );

    Writeln ('les entiers demandés sont ')
    if (S =N) then
    writeln (S) ;
    end;
    end.

    [​IMG]
    Figure 1

    [​IMG]
    Me permettez- vous de poster un autre essai ou bien dois-je céder la place à mes collègues ? J'aimerais bien faire le maximum d'applications étant donné que je passe un test ce Vendredi inchAllah et je me sens encore un peu 'débutante' .
    Merci


    oui bien sûr, vos collègues sont aussi invités à poster leurs essais or ils sont absents et là bien sûr vous aurez toute la permission et quant aux autres ils peuvent poster leurs essais sans consulter les vôtres.

    Bon travail
     
    7 معجب بهذا.
  10. ssjamine0

    ssjamine0 عضو مميز

    إنضم إلينا في:
    ‏10 أكتوبر 2009
    المشاركات:
    795
    الإعجابات المتلقاة:
    1.929
      20-04-2011 08:03
    بسم الله الرحمان الرحيم
    والصلاة و السلام على رسول الله

    استاذنا العزيز بارك الله فيك على جهدك معنا.
    هل يمكن ان تريني اين الخطا في عملي هذا
    و شكرا
    program bacpratique2010a14h;
    uses wincrt;
    var
    n : longint;
    procedure saisie (var n :longint );
    begin
    repeat
    writeln('saisir un entier');
    readln(n);
    until ( n>=1000 ) and (n<=9999);
    end;
    function verifn ( n : integer ): boolean;
    var
    a ,b , c ,d : integer;
    ok : boolean ;
    begin
    a := n div 1000 ;
    b := ( n mod 1000) div 100 ;
    c:= (n div 100) mod 10 ;
    d := n mod 10 ;

    if a + b + c +d = n then ok := true
    else
    begin
    if sqr(a) + sqr(b) + sqr(c) + sqr(d) = n
    then ok := true
    else
    begin
    if a*sqr(a) + b*sqr(b) + c*sqr(c) + d*sqr(d) =n
    then ok :=true
    else
    begin
    if sqr(a)*sqr(a) + sqr(b)*sqr(b) + sqr(c)*sqr(c) + sqr(d)*sqr(d) =n
    then ok := true
    else
    begin
    if a*sqr(a)*sqr(a) + b*sqr(b)*sqr(b) + c*sqr(c)*sqr(c) + d*sqr(d)*sqr(d) =n
    then ok := true
    else ok := false;
    end;
    end;
    end;
    end;

    verifn:= ok ;
    end;

    procedure affichage(var n :longint);
    var i : integer;
    begin
    for i := 1000 to 9999 do
    begin
    if verifn(n)=true
    then writeln(n);
    end;
    end;

    begin
    saisie(n);
    verifn(n);
    affichage(n);
    end.
     
    5 معجب بهذا.

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