Pascal 打印帕斯卡模式

Pascal 打印帕斯卡模式,pascal,Pascal,请帮我打印这个图案,并解释其背后的逻辑。先谢谢你 0 111 22222 3333333 我的Pascal代码是: program patnum; uses crt; var row, col1, col2, totalRows, totalCol: integer; Begin clrscr; tot

请帮我打印这个图案,并解释其背后的逻辑。先谢谢你

      0
    111
  22222
3333333
我的Pascal代码是:

program patnum;
            uses crt;
            var
               row, col1, col2, totalRows, totalCol: integer;
            Begin
                 clrscr;
                 totalRows := 3;
                 totalCol := totalRows-2;
                        for row := 0 to totalRows do
                        begin
                                for col1 := 0 to totalCol do
                                begin
                                   write(' ');
                                end;
                                totalCol := totalCol - 1;  
                                for col2 := 0 to row do
                                begin
                                   write(row);
                                end;
                        writeln('');
                        end;
                 readln;
            End.

*请帮助*

这似乎真的是一个编程练习。然而,这是:

Program patnum(output);

function digitNumber(n:integer) : integer;
var counter : Integer;
begin
    counter := 0;
    while n >= 1 do
    begin
        counter := counter + 1;
        n := n div 10;
    end;

    digitNumber := counter; 
end;

procedure prettyPrint(x1 : integer; x2 : integer; x3 : integer; x4 : integer);
var Counter, max, tmp : Integer; 
Begin

    max := digitNumber(x1);

    tmp := digitNumber(x2);
    if(tmp > max) then
    begin
        max := tmp;
    end;

    tmp := digitNumber(x3);
    if(tmp > max) then
    begin
        max := tmp;
    end;    

    tmp := digitNumber(x4);
    if(tmp > max) then
    begin
        max := tmp;
    end;


    tmp := max - digitNumber(x1);
    For Counter := 1 to tmp do
    Begin 
        write(' ');
    End; 
    writeln(x1);

    tmp := max - digitNumber(x2);
    For Counter := 1 to tmp do
    Begin 
        write(' ');
    End; 
    writeln(x2);

    tmp := max - digitNumber(x3);
    For Counter := 1 to tmp do
    Begin 
        write(' ');
    End; 
    writeln(x3);

    tmp := max - digitNumber(x4);
    For Counter := 1 to tmp do
    Begin 
        write(' ');
    End; 
    writeln(x4);
End;



begin
  prettyPrint(22,3333,1,534);
end.
我建议使用一个数组来保存要打印的值,但我把它留给你

此外,您的代码似乎几乎毫无用处


*编辑:请注意,该函数在整数<1时失败。

我确信有一种更简单的方法可以做到这一点,但如果您只是想努力完成它,这应该会有所帮助

 var
    t : integer       
 begin
    t := 6
    for x := 0 to t do
    begin
       write(" ");
    end;
    write("0");
    writeln;
    t := 4;
    for x := 0 to t do
    begin
       write(" ");
    end;
    write("111");

    writeln;
    t := 2;
    for x := 0 to t do
    begin
       write(" ");
    end;
    write("22222");
    writeln;
    t := 0;
    for x := 0 to t do
    begin
       write(" ");
    end;
    write("3333333");
 end.

你能告诉我怎样才能拥有好的编码技能吗?你可以通过阅读像easy logic这样的教程和自己编程来提高你的编码技能。如果你真的想成为一名优秀的程序员,你必须玩弄代码,尝试并搜索一些你可以解决的新任务。谢谢你a.拉玛,我对pascal编程还不熟悉,但是我的任务是打印模式,你给的好处不是在Turbo pascal中工作。什么是好的编译器?好的,我纠正了其中的几个错误,所有这些都是因为我的上一个pascal程序已经20年了:D你不能自己纠正它们吗?不管怎么说,这次我经常测试我的代码,很久以前我就没有pascal编译器了。我试过了,但没用,我试过了,谢谢你的建议。帕斯卡已经很老了,互联网上很少有消息来源。如果它有效,请投票并接受我的答案。它有效,我不能投票,因为它需要15个声誉。