# Pascal

Pascal is a statically typed programming language. It was designed as a language for education. It is generally a compiled language.

Several derivatives of Pascal exist which enhance the language, such as Object Pascal.

## Why would I learn this language?

Pascal is considered to be one of a few languages which one can learn completely. The language is deliberately limited and (by default) there are few external libraries. In this sense, learning Pascal is a finite process.

Pascal has a simple syntax and easy to understand type system. Programs are generally fairly easy to read and write.

Pascal is a fairly well established language, but is also not very modern.

## Starting Points

Learn Pascal
Beginner guide to programming using Pascal.
Free Pascal
Open Source Compiler for Pascal and Object Pascal.

## Example Code

Here is an example of the Fizz Buzz problem:

``````
program FizzBuzz(output);

var
i : integer;

begin
for i := 1 to 100 do
if i mod 15 = 0 then
writeln('FizzBuzz')
else if i mod 3 = 0 then
writeln('Fizz')
else if i mod 5 = 0 then
writeln('Buzz')
else
writeln(i)
end.
``````

Here is an example of the 100 doors problem:

``````program OneHundredDoors;

var
doors	: Array[1..100] of Boolean;
i, j	: Integer;

begin
(* Initialize the array of doors to closed *)
for i := 1 to 100 do
doors[i] := false;

(* Process the doors *)
for i := 1 to 100 do begin
j := i;
while j &lt;= 100 do begin
doors[j] := not doors[j];
j := j + i
end
end;

(* Print out the results *)
for i := 1 to 100 do begin
Write('Door #', i, ' is ');
if doors[i] then
WriteLn('open.')
else
WriteLn('closed.');
end;
end.``````