Programmation en pascal

Fermé
samspess Messages postés 27 Date d'inscription lundi 29 décembre 2003 Statut Membre Dernière intervention 26 novembre 2005 - 9 juin 2005 à 16:27
p.legal Messages postés 88 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 21 mars 2008 - 15 juin 2005 à 00:10
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
A voir également:

5 réponses

emmanuelP Messages postés 137 Date d'inscription vendredi 8 février 2002 Statut Contributeur Dernière intervention 7 mai 2006 161
9 juin 2005 à 16:55
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
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
samspess Messages postés 27 Date d'inscription lundi 29 décembre 2003 Statut Membre Dernière intervention 26 novembre 2005
9 juin 2005 à 18:23
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
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
p.legal Messages postés 88 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 21 mars 2008 24
14 juin 2005 à 23:34
1
11
21
1211
111221
312211
13112221
1113213211
31131211131221
13211311123113112211

c'est marant ça ?!

J'essaye de faire un truc en Liberty BASIC et je le poste.


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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
p.legal Messages postés 88 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 21 mars 2008 24
15 juin 2005 à 00:10
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