Programmation en pascal

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. Contributeur
    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
    1. 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
      1. 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
        1. 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.
      2. 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