IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres IDE Pascal Discussion :

Afficher triangle


Sujet :

Autres IDE Pascal

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Afficher triangle
    Bonjour, je commence tout juste à étudier la programmation, et nous utilisons Dev Pascal. Je dois réaliser ce même triangle, mais mon programme ne fonctionne pas. Il affiche seulement des "c" les uns en dessous des autres... Je ne comprends pas d'où vient le problème, si vous pouvez m'aider, merci beaucoup!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    program Pyramide
     
    Var
       l,c,t: integer;
     {l est le numéro de la ligne, t est nombre total de lignes, c est le numéro de la colonne}
    Begin
           repeat
     
               writeln ('<10');
               readln (t);
           until t in [1 .. 9];
     
     
    For
       l:=1 to t do;
     
          begin
            for c:= 1 to (t-l) do
                writeln ('    ');
     
            for c:= 1 to l do
                writeln ('c');
            for c:= (l-1)to 1 do
                write(c);
     
    writeln ;
    readln;
    end;
     
    End.

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Tu es completement en dehors du sujet, cette discussion, vieille de sept ans, porte sur le langage C++, qui n'a qu'un lointain rapport avec le pascal.
    Pose ta question sur le forum Pascal

    De plus, tu essaie d'afficher des triangles EN pascal, pas le triangle de pascal.

    A première vue, tu n'as pas compris la différence entre write et writeln.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 420
    Points : 5 819
    Points
    5 819
    Par défaut
    salut

    comme le dis leternel tu as déjà un problème de compréhension entre write et writeln
    le writeln fait un retour a la ligne systématique
    on vas décortiquer les étapes à faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      pour i de 1 to  h Faire 
       EcrireLigne(i)
    voila la boucle principale est faites que nous reste t'il a definir ... la ligne
    donc la ligne ce décompose en trois partie distinct la parti gauche,le centre et la parti droite c'est trois partie sont variable selon la hauteur ou il se trouve dans la pyramide
    a la fin de ces trois partie tu y adjoint un retour chariot

    voila un début de piste fort prometteur je te laisse faire quelques essai et ensuite reviens vers nous avec ta nouvelle ébauche de programme afin de voir ta progression
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut suite pyramide
    Bonjour ! Merci de vos réponses !!

    J'ai étudié la différence entre write et writeln et j'ai trouvé ! Je comprends l'idée du "retour chariot" mais je n'arrive pas a la mettre en œuvre... Il faut aussi que j'initialise c pour qu'il prenne une valeur croissante puis décroissante, mais je ne vois pas quel indicateur utiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    program Pyramide;
     
     
    Var
     
    l,c,t : integer;
     
    Begin
         Repeat
               writeln ('<10');
               read (t);
         Until t in [1 .. 9];
     
     For l:=1 to t do
     
         begin
               for c:=1 to (t-l) do write (' ') ;
               writeln ;
               for c:=1 to l do write ('c');
               writeln;
               for c:=c to l+1 do write (' ')  ;
               writeln ;
            end;
            readln (c);
        end.

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 420
    Points : 5 819
    Points
    5 819
    Par défaut
    salut

    si je comprend bien ton t correspond a la hauteur de ta pyramide

    le plus simple pour comprendre ce que tu doit faire tu par de ta forme finale et tu essai de trouver la formule que tu a besoin
    pour construire tes ligne

    AAACAAA 0
    AACCCAA 1
    ACCCCCA 2
    CCCCCCC 3
    donc pour notre exemple la hauteur de 4 dans notre exemple
    on as une largeur de 7 ce qui veut dire que ta base est égale a
    2*(h-1)+1
    le + 1 est la pointe
    imaginons maintenant que tu as une hauteur de 7 => la base seras égale a (7-1)*2 +1 = 13 voila
    on as déjà calculé la base nécessaire pour dessiner ta pyramide

    maintenant il te reste juste à définir la disposition de tes éléments dans chaque ligne
    en regardant le dessin on vois très bien que chaque ligne est un multiple de 2
    1 ligne 2*0+1 = 1
    2 ligne 2*1+1 = 3
    3 ligne 2*2+1 = 5
    4 ligne 2*3+1 = 7 et ainsi de suite
    maintenant que l'on connais l'encombrement de ton nombre de c dans chaque ligne le reste n'est qu'une soustraction
    chaque ligne doit faire la taille de la base défini plus haut
    ce qui nous donne pour chaque ligne les éléments suivant
    NbBlanc = (base-NbrC) div 2
    ensuite nbrc
    et NbBlanc

    donc pour chaque ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       For i:= 1 to NbBlanc
         write(' ');
      For i:= 1 to nbrc
        write('C');
      For i:= 1 to NbBlanc
        write(' ');
      writeln();
    voila je pense t'avoir donné toutes les infos nécessaire pour que tu puisse faire ta pyramide
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

Discussions similaires

  1. Impossible afficher triangle GWT-G3D
    Par julien13630 dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 11/04/2013, 12h06
  2. afficher un triangle
    Par jalilc dans le forum C
    Réponses: 13
    Dernier message: 21/10/2006, 12h16
  3. Afficher un triangle avec OpenGL
    Par Premium dans le forum OpenGL
    Réponses: 19
    Dernier message: 19/10/2006, 09h06
  4. [C++.NET][DX9] pas moyen d'afficher un triangle
    Par NicolasG dans le forum DirectX
    Réponses: 13
    Dernier message: 02/01/2006, 15h55
  5. Comment afficher le barycentre d'un triangle
    Par DUBERNET dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 08/12/2005, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo