Draw a cuboid: Difference between revisions
Content added Content deleted
(→{{header|Lua}}: added Lua solution) |
MaiconSoft (talk | contribs) (Added Delphi example) |
||
Line 707: | Line 707: | ||
| |/ |
| |/ |
||
+-----------------------------------------------------+</pre> |
+-----------------------------------------------------+</pre> |
||
=={{header|Delphi}}== |
|||
{{libheader| System.SysUtils}} |
|||
{{Trans|Go}} |
|||
<lang Delphi> |
|||
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.</lang> |
|||
=={{header|Elixir}}== |
=={{header|Elixir}}== |