Pascal/Turbo Pascal - Problema pascal

   
Vista:

Problema pascal

Publicado por Diego (11 intervenciones) el 11/11/2013 19:07:14
Lo primero, Hola a todos llevo ya varias ojeadas a ejercicios y al final me he decidido a registrame a este gran foro jeje

me gustaria que me ayudases con este ejercicio, tengo ideas en mente pero me fallan a la hora de poder plasmarlas en el compilador, muchas gracias!!

Escribir un programa, asteriscos.pas, que dibuje una figura similar a la siguiente, consistente en n filas (n lo introduce el usuario), donde la fila j es la secuencia de 2^j grupos formados cada uno por 2^n-j-1 blancos (espacios) y el mismo número de asteriscos. Para n=6 la figura sería la siguiente:
********************************
**************** ****************
******** ******** ******** ********
**** **** **** **** **** **** **** ****
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Para ello, escribir (y utilizar) el subprograma, RepetirCaracter, que escriba un carácter dado tantas veces como se indique.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema pascal

Publicado por ramon (2072 intervenciones) el 13/11/2013 14:14:00
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
{Algo así}
 
program asteriscos;
 uses
    crt;
  var
    q, m, p, j, n : integer;
 
  procedure RepetirCaracter(c : char; v, r : integer);
  var
    h, d, t : integer;
  begin
    d := 1;
    h := (v div r);
    write('   ');
    repeat
     for t := 1 to h do
     begin
     write(c);
     end;
     write(' ');
     d := d + 1;
    until d > r;
    writeln;
  end;
 
   function potencia_2(n : integer) : longint;
   var
      ss : longint;
      ll : integer;
     begin
         potencia_2 := 0;
         ss := 1;
         for ll := 1 to n do
         ss := ss * 2;
         potencia_2 := ss
      end;
 
 
  begin
     clrscr;
     write('   Entre Numero 1 Al 6 : ');
     readln(n);
     writeln;
     for j := n - 1 downto 0 do
     begin
     p := p + potencia_2(j);
     q := potencia_2((n-j-1));
     RepetirCaracter('*',p,q);
     end;
     readkey;
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar