Floyd's triangle: Difference between revisions
Content added Content deleted
(→{{header|Pascal}}: add example) |
(→{{header|Pascal}}: add variant with for loop) |
||
Line 199: | Line 199: | ||
<lang pascal>Program FloydDemo (input, output); |
<lang pascal>Program FloydDemo (input, output); |
||
procedure |
procedure floyd1 (numberOfLines: integer); |
||
{ variant with repeat .. until loop } |
|||
var |
var |
||
i, j, digits, numbersInLine: integer; |
i, j, digits, numbersInLine: integer; |
||
begin |
begin |
||
digits := trunc(ln(numberOfLines*(numberOfLines+1))/ln(10)); |
digits := trunc(ln(numberOfLines*(numberOfLines+1))/ln(10)) + 1; |
||
i := 1; |
i := 1; |
||
j := 1; |
j := 1; |
||
Line 211: | Line 211: | ||
repeat |
repeat |
||
repeat |
repeat |
||
write(i: digits |
write(i: digits, ' '); |
||
inc(i); |
inc(i); |
||
inc(j); |
inc(j); |
||
Line 219: | Line 219: | ||
inc(numbersInLine); |
inc(numbersInLine); |
||
until (numbersInLine > numberOfLines); |
until (numbersInLine > numberOfLines); |
||
end; |
|||
procedure floyd2 (numberOfLines: integer); |
|||
{ Variant with for .. do loop } |
|||
var |
|||
i, j, digits, numbersInLine: integer; |
|||
begin |
|||
digits := trunc(ln(numberOfLines*(numberOfLines+1))/ln(10)) + 1; |
|||
i := 1; |
|||
for numbersInLine := 1 to numberOfLines do |
|||
begin |
|||
for j := 1 to numbersInLine do |
|||
begin |
|||
write(i: digits, ' '); |
|||
inc(i); |
|||
end; |
|||
writeln; |
|||
end; |
|||
end; |
end; |
||
begin |
begin |
||
floyd1(5); |
|||
floyd2(14); |
|||
end.</lang> |
end.</lang> |
||
Output: |
Output: |