Pascal/Turbo Pascal - dibujos con cualquier signo

 
Vista:

dibujos con cualquier signo

Publicado por oswaldo (2 intervenciones) el 29/03/2012 02:36:11
Elaborar los procedimientos en Pascal que impriman los siguientes Dibujos, considerando n = 5 y carácter = * (como ejemplos)
ejemplo:1
*****
****
***
**
*
ejemplo:2
*
**
***
****
*****
% ejemplo3
*%*
**%**
***%***
****%****
*****%*****

ejemplo:4
*
***
*****
*******
*********
***********
ejemplo:5
***********
*********
*******
*****
***
*

ejemplo:6
*
*
**
**
***
***
****
****
*****
*****
ejemplo 7
*****
*
****
**
***
***
**
****
*
***** necesito un programa por cada dibujo, el numero de renglones y el caracter deseado lo ingresa el usuario, solo pude hacer los ejemplos 2,4,5 necesito ayuda con los demas por favor es urgente.
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

dibujos con cualquier signo

Publicado por ramon (2158 intervenciones) el 29/03/2012 21:28:48
{Si deseas otro signo en lugar del asterisco pon [una variable por ejemplo m : char] y dala el valor
que quieras presentar ejenplo m := '@'; ponlo en el lugar del asterisco y ya esta}

program esterisco;
uses
crt;
var
n, t, p : integer;
k, m : char;

procedure rectangulo(aa : char; cu : integer; simb : boolean);
var
sa, ve : integer;
begin
if cu = 1 then
ve := 2
else
ve := 1;
t := 5;
if (aa = 'b') or (aa = 'B') then
begin
t := 1;
if (ve = 2) and (simb = false) then
begin
write('*'); {A qui la m}
writeln;
end
else
begin
if (ve = 2) and (simb = true) then
begin
write('%'); {define otra variable char y pon otro caracter}
writeln;
end;
end;
for n := 1 to 5 do
begin
for sa := 1 to ve do
begin
for t := 1 to t do
begin
write('*'); {A qui la m}
end;
if (simb = true) and (sa = 1) then
write('%'); {define otra variable char y pon otro caracter}
end;
t := t + 1;
writeln;
end;
end;
if (aa = 'a') or (aa = 'A') then
begin
t := 1;
for n := 1 to 5 do
begin
for sa := 1 to ve do
begin
for t := 5 downto t do
begin
write('*'); {A qui la m}
end;
end;
t := t + 1;
writeln;
end;
if ve = 2 then
write('*'); {A qui la m}
writeln;
end;
writeln;
writeln('Pulse [Enter]');
readln;
end;

procedure rectangulo6;
var
n, t, p, d : integer;
begin
n := 1;
for t := 1 to 5 do
begin
for p := 1 to 2 do
begin
for d := 1 to n do
begin
write('*'); {A qui la m}
end;
writeln;
end;
n := n + 1;
end;
writeln;
writeln('Pulse [Enter]');
readln;
end;

procedure rectangulo7;
var
d, n, t, p : integer;
begin
n := 5;
for d := 1 to 5 do
begin
for t := 1 to n do
begin
write('*'); {A qui la m}
end;
writeln;
for p := n to 5 do
begin
write('*'); {A qui la m}
end;
writeln;
n := n - 1
end;
writeln;
writeln('Pulse [Enter]');
readln;
end;

procedure menu;
var
te : char;
salir : boolean;
begin
salir := false;
repeat
clrscr;
writeln('***** Menu Formas *****');
writeln;
writeln(' 1 = Ejemplo N§ 1');
writeln(' 2 = Ejemplo N§ 2');
writeln(' 3 = Ejemplo N§ 3');
writeln(' 4 = Ejemplo N§ 4');
writeln(' 5 = Ejemplo N§ 5');
writeln(' 6 = Ejemplo N§ 6');
writeln(' 7 = Ejemplo N§ 7');
writeln(' 8 = Salir');
writeln;
writeln(' Elija Opcion ');
te := readkey;
clrscr;
case te of
#49 : rectangulo('a',0,false);
#50 : rectangulo('b',0,false);
#51 : rectangulo('b',1,true);
#52 : rectangulo('b',1,false);
#53 : rectangulo('a',1,false);
#54 : rectangulo6;
#55 : rectangulo7;
#56 : salir := true;
end;
until salir = true;
end;



begin
clrscr;
m := '@';
menu;
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

dibujos con cualquier signo

Publicado por oswaldo (2 intervenciones) el 30/03/2012 00:26:01
muchas gracias, las imagenes que publique salieron mal, pero espero que lo que me pusiste me sirva, creo que con unas modificaciones puedo optener lo que queria¡¡ gracias
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

dibujos con cualquier signo

Publicado por Naye (5 intervenciones) el 04/04/2012 04:21:31
Disculpa ramon pero si no son con esos dibujos? es que yo quiero tengo un problema similar pero con estos dibujos mira:
1
*****
****
***
**
*

*
**
***
****
*****
%
*%*
**%**
***%***
****%****
*****%*****


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

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


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



*****
*
****
**
***
***
**
****
*
*****
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

dibujos con cualquier signo

Publicado por ramon (2158 intervenciones) el 04/04/2012 21:47:25
{Esto genera las formas que me pasas}

program formas;
uses
crt;
var
x, y, cc, cont : integer;

procedure formastri(x1, y1 : integer; sent : char);
begin
if sent in['r','R'] then
begin
for cont := 1 to 5 do
for cc := 1 to 6 - cont do
begin
gotoxy(x1 + cc,y1 + cont);write('*');
end;
end
else
begin
for cont := 1 to 5 do
for cc := 1 to cont do
begin
gotoxy(x1 + cc,y1 + cont);write('*');
end;
end;
end;

procedure formatato(x1, y1 : integer);
begin
for cont := 1 to 6 do
begin
for cc := 1 to (cont * 2) - 1 do
begin
gotoxy(x1 + cc,y1 + cont);write('*');
end;
gotoxy(x1 + (cc div 2) + 1,y1 + cont);write('%');
end;
end;

procedure formatri5(x1, y1 : integer; sent : char);
begin
if sent in['r','R'] then
begin
gotoxy(x1 + 1,y1);write('*');
for cont := 1 to 5 do
for cc := 1 to (cont * 2) + 1 do
begin
gotoxy(x1 + cc,y1 + cont);write('*');
end;
end
else
begin
for cont := 1 to 5 do
for cc := 1 to 12 - cont * 2 + 1 do
begin
gotoxy(x1 + cc,y1 + cont);write('*');
end;
gotoxy(x1 + 1,y1 + cont + 1);write('*');
end;
end;

procedure formadoble(x1, y1 : integer);
begin
cc := 1;
repeat
for cont := 1 to cc do
begin
gotoxy(x1 + cont,y1 + cc);write('*');
gotoxy(x1 + cont,y1 + cc + 1 );write('*');
end;
cc := cc + 2;
until cc > 10;
end;

procedure formae(x1, y1 : integer);
var
yy : integer;
begin
yy := 0;
repeat
for cc := 1 to 5 - yy do
begin
gotoxy(x1 + cc,y1 + yy * 2);write('*');
end;
for cc := 1 to 5 - yy do
begin
gotoxy(x1 + cc,(y1 + 9) - yy * 2);write('*');
end;
yy := yy + 1;
until yy > 5;
end;


begin
clrscr;
formastri(1,1,'r');
formastri(1,6,' ');
formatato(10,1);
formatri5(24,2,'r');
formatri5(24,7,' ');
formadoble(1,13);
formae(32,14);
readln;
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

dibujos con cualquier signo

Publicado por Naye (5 intervenciones) el 08/04/2012 06:14:42
Ramon, disculpa por no explicarme bien, lo que necesito es un programa parecido o igual al primero con menu y todo, pero que me imprima otras figuras, nadamas que al meterlas aqui, no se porque al publicarlas me las deforma...
abria forma de que te los enviara a algun correo o como le puedo hacer para mostrartelos tal cual? Te lo agradeceria mucho..
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

dibujos con cualquier signo

Publicado por ramon (2158 intervenciones) el 09/04/2012 11:36:22
Disculpa estas ablando me de dibujos en modo texto o en gráfico puesto que es diferente
el tratamiento del programa.
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

dibujos con cualquier signo

Publicado por naye (5 intervenciones) el 09/04/2012 22:46:47
Es en modo grafico, te repito son casi iguales a los del primer ejercicio, solo que estan centrados, vamos, la forma es diferente.
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