Треугольник Паскаля в двухмерных массивах. До 11 рядов по умолчанию — Pascal(Паскаль)

program pascal_triangle;{программа печатающая треугольник Паскаля}
uses crt;
var
i,j,n:byte;
mas:Array[1..11,0..31]of byte;
begin
Clrscr;
write('Введите количество рядов (до 11): ');readln(n);{запрашиваем количество
                                                       рядов до 11. Просто
                                                       больше на экран не лезет}
writeln;

mas[1,n div 2+8]:=1;{устанавливаем значение верхушки массива равным единицы
                     в принципипе здесь число 8 выводится из ограничения в 11
                     рядов. Если ограничение будет меньше, то и это число
                     может быть меньше}

 for i:=2 to n do {после установленного значения верхушки массива(то есть, 1)
                   мы выводим все остальные значения исходя из того что
                   не указанные значения будут равны 0. Тогда приглядевшись,
                   замечаем что значения других рядов массива будет равно
                   сумме верхнего ряда минус 1 считая от положения данного
                   элемента + верхний ряд плюс 2 считая от положения данного
                   элемента. А единицы по бокам треугольника получаются потому
                   что эти два числа получаются или 1 и 0 или 0 и 1 в обоих
                   случаях мы и получаем нужную нам единицу. Немного трудно
                   сразу понять, но внимательно приглядевшись вы поймете.}
  begin
   for j:=0 to 33 do
    begin
     mas[i,j]:=mas[i-1,j-1]+mas[i-1,j+1];
    end;

  end;


for i:=1 to n do {ну это чисто технический цикл вывода получившегося двух
                  мерного массива. Только мы пишем что если значение элемента
                  массива равно 0, то вывести вместо этого нуля просто пробелы}
 begin
 for j:=0 to 33 do
  begin
  if mas[i,j]=0 then write('   ')
  else if mas[i,j]<10 then write(mas[i,j],'  ')
   else if mas[i,j]<100 then write(mas[i,j],' ')
    else write(mas[i,j]);
  end;
  writeln;
 end;

Readln;
end.

Leave a Comment

7 + 2 =