2
program PascalTriangle;
var
  a:array[1..15,1..15] of integer;
  i,n,j:integer;
  f,g:text;
  st1,st2,st3:string;
begin
  read(n);

  a[1,1]:=1;
  For i:=2 to n+1 do
    For j:=1 to n+1 do
      If (j=1) or (j=i) then 
        a[i,j]:=1
      else
        a[i,j]:=a[i-1,j-1]+a[i-1,j];

  assign (g,'d:\output.txt');
  rewrite (G);
  For i:=1 to n+1 do 
  begin
    For j:=1 to n+1 do
      If a[i,j]<> 0 then 
        write (g,a[i,j],'   ');

    writeln(g);
  end;

  close(g);
end.

Мне нужно вывести треугольник Паскаля в файл, получается выводить в файл только по левому краю.

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1 

к примеру, но нужно вывести в файл по правому краю

        1
      1 1
    1 2 1 
  1 3 3 1
1 4 6 4 1 

вот так ,что я только не перепробовал, никак это не удается , подскажите как вывести этот треугольник по правому краю?

insolor
  • 49,104
Ага
  • 107

1 Answers1

1
program PascalTriangle;
var
  a:array[1..15,1..15] of integer;
  i,n,j,s,max,spaceCount:integer;
  f,g:text;
  st1,st2,st3,space:string;
begin
  read(n);
  max:=0;

  a[1,1]:=1;
  For i:=2 to n+1 do    
      For j:=1 to n+1 do
        begin
          If (j=1) or (j=i) then 
            a[i,j]:=1
          else
            a[i,j]:=a[i-1,j-1]+a[i-1,j];
          if a[i,j] > max then
            max:=a[i,j];
        end;

    spaceCount:= length(IntToStr(max)) +1;
    space:=StringOfChar(' ', spaceCount+1);


  assign (g,'d:\output.txt');
  rewrite (G);
  For i:=1 to n+1 do 
  begin
    For s:=0 to n-i do
      write(g, space);
    For j:=1 to n+1 do
      If a[i,j]<> 0 then
        begin
          If j <> 1 then
            write (g, ' '+ StringOfChar(' ', + spaceCount - length(IntToStr(a[i,j])) ));
          write (g, a[i,j]);
        end;

    writeln(g);
  end;

  close(g);
end.
Alex78191
  • 3,334
  • 1
  • 10
  • 21
  • Спасибо большое, но выравнивание происходит до 5 строки , следующие строки допустим 5 и дальше начинают смещаться еще дальше вправо , как это можно подправить? – Ага May 19 '17 at 22:31
  • Исправил выравнивание для чисел разной длины. – Alex78191 May 19 '17 at 23:05
  • Увидел, дописал IntToStr, спасибо) Еще если можно вопрос такой, как можно просмотреть содержимое типизированного файла(внес ли я какую то информацию или нет), я создаю record и вношу к примеру в файл input.dat , и как понять внеслось ли там все корректно ? Заранее благодарю. – Ага May 19 '17 at 23:12
  • В смысле дописал IntToStr? Создайте отдельный вопрос по записям. – Alex78191 May 19 '17 at 23:25