Pascal/Turbo Pascal - Dibujar un triángulo

 
Vista:
Imágen de perfil de David

Dibujar un triángulo

Publicado por David (3 intervenciones) el 31/10/2014 02:15:47
Hola, actualmente estoy iniciándome en la programación y tengo que hacer un ejercicio que consiste en un programa que dibuje un triángulo mediante un procedimiento en que se le pasen la altura y el caracter tal que quede así:
a
aa
aaa
aaaa

Indexo el código que he hecho hasta ahora. No consigo que dibuje el triángulo. Agradecería algo de ayuda. Gracias.

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
Program Dibujar_triangulo;
 Uses
     crt;
Var
   caracter:char;
   veces:integer;
   altura:integer;
   Procedure linea (altura:integer;caracter:char; var veces:integer);
		 begin
		 for altura:=1 to veces do
		 write (caracter);
		 end;
 
Procedure pinta_tri (altura:integer );
var veces:integer;
         begin
		 veces:= altura;
		 for altura:=1 to veces-1 do
		 begin
		 linea(altura,caracter,veces);
		 end;
		 end;
 
begin
writeln ('Introduzca caracter');
readln (caracter);
writeln('Introduzca altura deseada');
readln(altura);
linea (altura, caracter,veces);
pinta_tri (altura);
 
  readkey;
end.
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
sin imagen de perfil

Dibujar un triángulo

Publicado por Szpilman (12 intervenciones) el 31/10/2014 11:15:11
Prueba esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
PROCEDURE dibujarTriangulo ( longitud : INTEGER ); {triangulo, apartado c}
CONST
	UNO = 1;
VAR
	cont,i : INTEGER;
BEGIN
	writeln;
	FOR cont := UNO TO longitud DO BEGIN
		FOR i := UNO TO cont DO
			write(cont);
	writeln;
	END;
END

Pero donde pone "write(cont)" tú pones write el carácter introducidido, por lo que tendrás que pasarlo por el procedure. Otra cosa, cuando llamas a un subprograma en el programa principal, lo llamas correctamente (véase pinta_tri (altura);)
Pero cuando ya estás en el subprograma, tienes que ponerle otro nombre a la variable pasada "altura".

Un saludo.
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
Imágen de perfil de David

Dibujar un triángulo

Publicado por David (3 intervenciones) el 31/10/2014 22:54:50
Muchas gracias Szpilman, sus indicaciones me fueron suficientes para conseguir la correcta ejecución del programa.
La constante y renombrar la variable me resultaron ideas un poco difíciles de entender para mí. En mi idea de diseño creía que debía "anidar" un procedimiento dentro del otro.
Indexo cómo me quedó el ejercicio resuelto. Un saludo.

Program Dibujar_triangulo;
Uses
crt;
Var
caracter:char;
veces:integer;
altura:integer;
Procedure linea (altura:integer;caracter:char; var veces:integer);
begin
for altura:=1 to veces do
write (caracter);
end;

Procedure pinta_tri (altura:integer );
Const
uno=1;
var veces:integer; i:integer;
begin
writeln;
for veces:=uno to altura do
begin
for i:= uno to veces do
write (caracter);
writeln;

end;
end;

begin
writeln ('Introduzca caracter');
readln (caracter);
writeln('Introduzca altura deseada');
readln(altura);
linea (altura, caracter,veces);
pinta_tri (altura);
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

Dibujar un triángulo

Publicado por ramon (2158 intervenciones) el 31/10/2014 19:13:54
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
{Mira la correccion de tu pograma}
 
Program Dibujar_triangulo;
Uses
crt;
Var
caracter:char;
g, veces:integer;
altura:integer;
 
 Procedure triangulo(c : char; v : integer);
 begin
   for g := 1 to v do
   begin
     write('  ');
     for altura := 1 to g do
     begin
       write(c);
     end;
       writeln;
       writeln;
    end;
 end;
 
 
 
begin
clrscr;
write('Introduzca caracter : ');
readln(caracter);
write('Introduzca altura deseada : ');
readln(altura);
writeln;
triangulo(caracter,altura);
writeln;
writeln('   Pulse Una Tecla');
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
Imágen de perfil de David

Dibujar un triángulo

Publicado por David (3 intervenciones) el 31/10/2014 23:02:56
Hola ramon, gracias por su aportación. Tomo nota de la tabulación del código y el detalle de indicar al usuario la salida del programa... aún soy descuidado a la hora de tabular el código.
Un saludo.
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
Imágen de perfil de gerson

moda,mediana.media de 4 notas

Publicado por gerson (4 intervenciones) el 03/11/2014 21:48:37
me puedes ayudar ramon en este programa .esq no se como aserlo y sino lo ago reprueb0 :(. ES CALCULAR LA MEDIA ,moda,mediana de 4 notas ingresadas por el usuario del 1 al 100 son las notas. :(
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