Programme pascal qui d'affiche un triangle

Mamoun Miladi -  
 rikooo -
Bonjour,

salut a tous j'ai un problème dans un exercice dans mon livre
il me demande de faire un programme et d'enduire un analyse dans programme pascal qui permet d'affiché un triangle isocèle formé d'étoiles de n ligne (n = donné par le clavier )
un exemple pour comprendre
n=8

*
***
*****
*******
*********
***********
*************
***************

s'il vous plaie j'ai besoin de votre aide et merci
votre nouveau ami mam :(

4 réponses

  1. chrislains
     
    bjr jesper k ceci va taider c le programme

    ligne:integer;
    a, b: integer;
    begin
    writeln('nbre ligne'); read(ligne);
    for a:=1 to ligne do
    begin
    for b:=1 to a do
    write('*');
    writeln;
    end
    end.

    jespere k c pas trop trop tard

    en revange je recherche comment faire la figure ci dessous
    *
    * *
    ** **
    * *
    *
    7
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Un seul exemple de figure, qui plus est sans explication, ne permet pas de savoir comment la figure est construite pour les itérations suivantes...

      Néanmoins pour n=2, ceci marchera :

      program chrislains;
      
      procedure g(n:integer);
      var i:integer;
      begin
           for i:=1 to n do
               write('*');
      end;
      
      procedure f(n:integer);
      var i:integer;
      begin
          if n=0 then writeln('*')
                 else begin
                      f(n-1);
                      g(n);
                      write(' ');    
                      g(n);
                      writeln;
                      f(n-1);
                      end;
      end;
      
      BEGIN
         f(2);
      END.
      0
    2. mounir sghaier
       
      mr6 c just
      0
    3. ko
       
      program sym ;
      uses wincrt ;
      var ch: string ;
      procedure affichage (ch1,ch2: string ) ;
      begin
      if ch1 <> '' then
      begin

      writeln (ch1,ch2) ;
      affichage (copy ( ch1,1,length (ch1) -1 ) , copy (ch2,2,length (ch2) -1)) ;
      writeln (ch1,ch2) ;
      end ;
      end ;
      begin
      writeln ('saisir ch : '); readln (ch ) ;
      writeln ;
      affichage (ch,ch) ;
      end .
      0
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    Voici pour les "losanges" même si ça n'en est pas vraiment...

    program losange;
    
    procedure f(n:integer);
    var i:integer;
    begin
         for i:=1 to n do
             write(' ');
         write('*');
    end;
    
    procedure g(n,nmax:integer);
    begin
         f(nmax-n);
         f(2*n);
         writeln;
    end;
    
    procedure h(n,nmax:integer);
    begin
         if (n<nmax)
         then begin
              g(n,nmax);
              h(n+1,nmax);
              g(n,nmax);
              end
         else g(n,nmax);
    end;
    
    var n:integer;
    BEGIN
         for n:=0 to 5 do
         begin
              writeln('n=',n);
              h(0,n);
              writeln;
         end;
    END.
    1
    1. ko
       
      es que on peut faire un losonge avec la recursivité ?
      0
  3. laguchori Messages postés 81 Statut Membre
     
    bonsoir voila ce que tu veux
    ligne:integer;
    a, b: integer;
    begin
    writeln('nbre ligne un nombre impaire'); read(ligne);
    for a:=1 to (ligne div 2 )+1 do
    begin
    for b:=1 to a do
    write('*');
    writeln;
    end;
    for k:=ligne div2 +2 to ligne do
    begin
    for i:=ligne div 2 downto 1 do
    write('*');
    writeln;

    end ;
    end.
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Ton programme a plusieurs erreurs et ne donne pas le résultat attendu mais celui-ci :

      a=2 :
      
      *
      **
      ***
      **
      **
      0
    2. chrislains
       
      en fait je cherche a faire un programme en turbo pascal qui affiche un losange
      0
    3. rikooo
       
      uses wincrt;
      var
      d,i,j,c,h:integer;
      begin
      readln(d);
      for i:=1 to d div 2 do
      begin
      for j:=1 to i do
      write('*');
      writeln('');
      end;
      for h:= d div 2 downto 1 do
      begin
      for c:= h-1 downto 1 do
      write('*');
      writeln('');
      end

      end.
      0