خدمت تمرين اما فما اغلاط صلحولي

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

  1. walidinho

    walidinho عضو نشيط

    إنضم إلينا في:
    ‏8 جانفي 2008
    المشاركات:
    205
    الإعجابات المتلقاة:
    461
      15-11-2008 17:53
    السلام عليكم​
    ecrire un programme qui permet de vérifier si une chaine de taille maximale 10 est palindrome
    si elle contient les memes lettres de droite a gauche
    et de gauche a droite
    exp
    azza/radar:polindrome
    azzA/RADARS:non polindrome


    هاي خدمتي

    program pal;
    uses wincrt;
    var ch:string;
    ch:[0..10];
    i:=0;
    repeat
    i:=i+1;
    until(ch<>length(ch)-i+1)or(i=length(ch)div2)
    if(ch<>length(ch)-i+1)then
    writeln('non palindrome');
    else
    writeln('palindrome')
    end.

    عندي غلطة ملول
    يقلي
    duplicate identifier



    نستناكم يا لولاد
    بارك الله فيكم
    و السلام عليكم

     
    2 شخص معجب بهذا.
  2. gafsi87

    gafsi87 عضو مميز

    إنضم إلينا في:
    ‏18 ماي 2008
    المشاركات:
    891
    الإعجابات المتلقاة:
    2.192
      15-11-2008 20:08
    Tu dois déclarer le type de i

    ch<>length(ch)-i+1
    ici ch est de type caractère, comment tu veux le comparer à length(ch)-i+1 qui est de type entier
     
    2 شخص معجب بهذا.
  3. walidinho

    walidinho عضو نشيط

    إنضم إلينا في:
    ‏8 جانفي 2008
    المشاركات:
    205
    الإعجابات المتلقاة:
    461
      15-11-2008 22:10



    ما فهمتكش
    و شمعنتها ندكلاريوه
    +
    شنوا الحل
     
  4. woodi

    woodi كبار الشخصيات

    إنضم إلينا في:
    ‏27 نوفمبر 2007
    المشاركات:
    7.444
    الإعجابات المتلقاة:
    29.075
      15-11-2008 22:15
    la première faute : ch est de type caractère donc ne peut pas etre comparé à length qui est un entier
     
    3 شخص معجب بهذا.
  5. almouchtak

    almouchtak عضو

    إنضم إلينا في:
    ‏18 أوت 2008
    المشاركات:
    5.421
    الإعجابات المتلقاة:
    9.491
      15-11-2008 22:26
    :besmellah1:



    ما شاء الله على خونا وليد تيهاو معلم انفورماتيك و خوارزمية:bang:


    اما هذي ساهلة و ما نغلطوش فيها نحنا les
    informaticien

     
  6. woodi

    woodi كبار الشخصيات

    إنضم إلينا في:
    ‏27 نوفمبر 2007
    المشاركات:
    7.444
    الإعجابات المتلقاة:
    29.075
      15-11-2008 22:33
    Program palindrôme ;
    Uses WinCRT ;
    Var ch : string ;
    N , oi = integer ; // sit u veux pas une procedure pour determiner la longueur de la chaine
    Ch : [0..N] ;
    Test : booleen // permet de tester la chaine
    Begin
    Writeln ( ‘donner l’’entier n ‘ ) ;
    Readln (n) ;
    Test := false ;
    For oi = 1 to (N div 2 ) do // pas la peine de parcourir toute la chaine
    If ( ch = ch[N – oi + 1] )
    Test := true ; // si la condition n’est pas vérifiée le test reçoit false.
    End ;
    If test = true writeln (‘la chaine est palindrome ‘)
    Else writeln (‘elle n’’est pas ‘ ) ;
    End.

    peut etre sur le world c'est plus claire .
    NB: ça fait un bon temps que j'ai pas fait de la programmation donc je ne suis pas certain de la solution
     

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

    4 شخص معجب بهذا.
  7. gafsi87

    gafsi87 عضو مميز

    إنضم إلينا في:
    ‏18 ماي 2008
    المشاركات:
    891
    الإعجابات المتلقاة:
    2.192
      16-11-2008 01:48

    Si tu essaies ton programme avec le mot tunisia-sat il afficherait la chaine est palindrome
    parce que t'as pas traité le cas ou la condition ch = ch[N – oi + 1] n'est pas vérifiée, t'as mentionné ça juste en commentaire alors qu'il faut l'encoder

    et aussi il faut demander à l'utilisateur d'enrter la chaine à tester
    Donc si ça te dérange pas je modifierais ton code




    [​IMG]


    NB : Peut être qu'il y aura des fautes syntaxiques dans le programme
     
    3 شخص معجب بهذا.
  8. woodi

    woodi كبار الشخصيات

    إنضم إلينا في:
    ‏27 نوفمبر 2007
    المشاركات:
    7.444
    الإعجابات المتلقاة:
    29.075
      16-11-2008 17:11
    Mais alors là pas du tout ..au contraire je t'en remercie.
    pour le codage , oui c'est vrai g oublié que c du pascal ..car on C c pas la peine de faire les deux cas ..du
    moins c'est ce que je me rappelle

    concernant la boucle , je pense que for serait mieux en terme de mémoire mais bon c pas intéressant à cette étape
     
    1 person likes this.
  9. gafsi87

    gafsi87 عضو مميز

    إنضم إلينا في:
    ‏18 ماي 2008
    المشاركات:
    891
    الإعجابات المتلقاة:
    2.192
      16-11-2008 19:50
    :wlcm:
    avec la boucle for on sera obligé de parcourir toute la chaine même si on trouve des cas d'erreurs
    alors qu'avec la boucle répéter on s'arrête dès que le test aura false​
    :satelite:
     
  10. ROUFA1606

    ROUFA1606 عضو مميز

    إنضم إلينا في:
    ‏9 أكتوبر 2007
    المشاركات:
    807
    الإعجابات المتلقاة:
    140
      16-11-2008 20:43
    sahit wassel
     

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

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