Home > Palm > Samples > Combination > Pascal Palm sample in Pascal

#### Purpose

This is the Pascal version of our combination application. It's one of the Palm Samples.

#### Requirements

You need HSPascal, a.k.a. High-Speed Pascal (see tools section).

#### Source code

Below is the .pas file.

```Program CombinationSample;

{\$ApplName Comb-HSP,CoHS}

Uses Crt, HSUtils, Field, Form, DataMgr, MemoryMgr;

Function Factorial(n:integer) : integer;
Begin
If (n <= 1)
Then Factorial :=  1
Else Factorial := n * Factorial(n-1);   // let's use recursion here
End;

Function Combination(n:integer; p:integer) : integer;
Begin
Combination := Factorial(n) Div (Factorial(n - p) * Factorial(p));
End;

Var Buffer: String[20];
Button: Integer;

Begin
Writeln('Combination > Palm > HSPascal');
Writeln('');

Str(Factorial(7), Buffer);
Writeln('Factorial(7) = ' + Buffer);

Str(Factorial(4), Buffer);
Writeln('Factorial(4) = ' + Buffer);

Str(Factorial(3), Buffer);
Writeln('Factorial(3) = ' + Buffer);

Str(Combination(7,4), Buffer);
Writeln('Combination(7,4) = ' + Buffer);

end.
```

HSPascal is really a great tool, just as Pascal is a great language. Note how compact the source code can be, and review the ports of combination to other languages.

As a matter of fact, the whole program is limited to the core functions: Factorial(), Combination() and CombinationSample().

Next sample