Programmation en pascal

samspess Messages postés 27 Statut Membre -  
p.legal Messages postés 89 Statut Membre -
Bonjour
j'ai un petit probleme de programmation en pascal, il me faut programmer le triangle suivant
Trouver la règle de création du triangle suivant
1
11
21
1211
111221
...
Ecrire le programme qui génère un tel triangle.

Merci d'avance pour vos réponse

5 réponses

  1. emmanuelP Messages postés 137 Statut Contributeur 161
     
    Slt,

    C'est un classique....
    1
    11 sur la ligne du dessus il y a un "1" (=11)
    21 sur la ligne du dessus il y a deux "1" (=21)
    1211 sur la ligne du dessus il y a un "2" (=12) et un "1" (=11)

    ton pb se résume à compter les paquets de chiffres dans ta suite...

    Good luck
    0
  2. mohammed
     
    Salut,
    avec tous le respect que je vous dois, je n'ais pas réussi à comprendre la logique de votre triangle peut être que vous avez mal écrit le triangle,Non?
    si vous avez du nouveau je peut vous aider.
    Bonne chance.
    Merci
    0
  3. samspess Messages postés 27 Statut Membre
     
    en fait j'ai une difficulté à écrire mes boucle dans mon programme que voici
    program triangmeta;
    {$APPTYPE CONSOLE}
    uses
    sysutils;

    const
    minlintab=1;
    maxlintab=100;
    mincoltab=1;
    maxcoltab=100;

    var
    tab:array [mincoltab..maxcoltab,minlintab..maxlintab] of integer;
    A , I , J , L , L1 , P1 , P2 , NBOCCUR , Q: integer ;

    begin

    for I:=minlintab to maxlintab do (*initialisation du tableau*)
    for J:=mincoltab to maxcoltab do
    tab[I,J]:=0 ;

    writeln ('donnez nous un entier 1<x<9'); (*renseignement du triangle meta*)
    readln (A); (*lecture de l entier*)
    tab[1,1]:=A; (*ecriture dans la case 1,1*)
    writeln(tab[1,1]); (*affiche contenu de la case 1,1*)

    (*ecriture du programme*)
    I:=1;
    J:=1;
    while tab [I,J]<>0 do
    begin
    P1:=1;
    P2:=1;
    tab [L+1,P2+1]:=tab[L,P1];
    end;

    NBOCCUR:=1;
    while tab [L,P1]=tab[L,P1+1] do
    begin
    NBOCCUR:=NBOCCUR+1;
    P1:=P1+1;
    tab[L+1,P2]
    writeln(tab[L+1,P2]);
    end;

    tab [L+1,P2]:= NBOCCUR;
    P2:=P2+2;

    end.

    Merci de votre participation
    0
    1. mohammed
       
      Salut,
      je n'ai pas compris ce triangle encore mais pour votre Pg il yy a des erreures:
      1- chose pas évidante mais!, il faut vérifier que l'utilisateur a entrer une val >1 et <9 sinon à vous de voir.
      2- dans la boucle while tab[i,j]<>0 do
      a) vous avez oubliez l'incrémentation de I et de J car si vpous le laisser comme ça vous entrez dans une boucle infinie puisque
      tab[1,1]<>0.
      b) vous avez mis tab[L+1,.., sachant que l n'a aucune valeur. et si pascal lui donne la val 0 tab[0,.. n'existe pas .
      si vous vpoudriez que je vous aide écrit moi comment construire le triangle meta j'ai bon chercher sur gogle mais nada.
      J'attend des infos.
      Bonne chance.
      Merci.
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. p.legal Messages postés 89 Statut Membre 24
     
    et voici le resultat :

    a$="1"
    for i=1 to 30
        a$=tri$(a$)
        print using("#####",len(a$));"  ";a$
    next i
    wait
    
    function tri$(a$)
        lon=len(a$)
        cnt=1
        car$=mid$(a$,1,1)
        carb$=mid$(a$,1,1)
        while cnt<=lon
            scan
            while car$=carb$ 
                car$=mid$(a$,cnt+1,1)
                count=count+1
                cnt=cnt+1
            wend
            tri$=tri$+str$(count)+mid$(a$,cnt-1,1)
            count=0
            carb$=car$
        wend
        end function


    moins de 20 lignes en Liberty BASIC pour creer une fonction qui donne le resultat.

    @++

    Liberty BASIC France : http://lbasic.atomysk.com
    Le Forum d'aide : http://lbasic.atomysk.com/forum
    0