52 lines
904 B
Text
52 lines
904 B
Text
program Draw_a_cuboid;
|
|
|
|
{$APPTYPE CONSOLE}
|
|
|
|
uses
|
|
System.SysUtils;
|
|
|
|
procedure cubLine(n, dx, dy: Integer; cde: string);
|
|
var
|
|
i: integer;
|
|
begin
|
|
write(format('%' + (n + 1).ToString + 's', [cde.Substring(0, 1)]));
|
|
|
|
for i := 9 * dx - 1 downto 1 do
|
|
Write(cde.Substring(1, 1));
|
|
|
|
Write(cde.Substring(0, 1));
|
|
Writeln(cde.Substring(2, cde.Length).PadLeft(dy + 1));
|
|
end;
|
|
|
|
procedure cuboid(dx, dy, dz: integer);
|
|
var
|
|
i: integer;
|
|
begin
|
|
Writeln(Format('cuboid %d %d %d:', [dx, dy, dz]));
|
|
|
|
cubLine(dy + 1, dx, 0, '+-');
|
|
|
|
for i := 1 to dy do
|
|
cubLine(dy - i + 1, dx, i - 1, '/ |');
|
|
|
|
cubLine(0, dx, dy, '+-|');
|
|
|
|
for i := 4 * dz - dy - 2 downto 1 do
|
|
cubLine(0, dx, dy, '| |');
|
|
|
|
cubLine(0, dx, dy, '| +');
|
|
|
|
for i := 1 to dy do
|
|
cubLine(0, dx, dy - i, '| /');
|
|
|
|
cubLine(0, dx, 0, '+-');
|
|
Writeln;
|
|
end;
|
|
|
|
begin
|
|
cuboid(2, 3, 4);
|
|
cuboid(1, 1, 1);
|
|
cuboid(6, 2, 1);
|
|
|
|
readln;
|
|
end.
|