Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Pascal
Believe it or not, Pascal was in the top 3 languages when I was a teenager. Let's dive in!
Checking the sample code
...except, we cannot: it seems to be unsupported on Tech.io
...
Which is understandable, given the fact, that it fell out of the top 100 languages by popularity long time ago.
So, instead of running a Chuck Norris
sample solution in Pascal, let me show you a screenshot from Borland Pascal 7.0
, an IDE that was well ahead of its time 25+ years ago:
While we cannot run it on Tech.io
we can still check the source code of the sample puzzle solution. It is rather long for such a short puzzle...
program Answer;
{$H+}
uses sysutils, classes, math, StrUtils;
// Helper to read a line and split tokens
procedure ParseIn(Inputs: TStrings);
var Line : string;
begin
readln(Line);
Inputs.Clear;
Inputs.Delimiter := ' ';
Inputs.DelimitedText := Line;
end;
function decimalToBinary(a: Integer): String;
var
d: Integer;
str: String;
Begin
str:='';
while a>0 do
begin
d := a mod 2;
str := concat(IntToStr(d), str);
a := a div 2;
end;
decimalToBinary := str;
End;
var
m, b, a : String;
Inputs: TStringList;
c : Array[0..1] of String;
i, j: Integer;
begin
Inputs := TStringList.Create;
readln(m);
c[0] := '00';
c[1] := '0';
b := '';
for j := 1 to Length(m) do
begin
b := b + AddChar('0', decimalToBinary(Ord(m[j])), 7);
end;
a := '';
a := a + c[Ord(b[1]) - Ord('0')] + ' 0';
for i := 2 to Length(b) do
begin
if (b[i] = b[i - 1]) then
a := a + '0'
else
a := a + ' ' + c[Ord(b[i]) - Ord('0')] + ' 0';
end;
writeln(a);
flush(StdErr); flush(output); // DO NOT REMOVE
end.
// To debug: writeln(StdErr, 'Debug messages...');
Looking at the syntax
While I used to know Pascal "inside-out", I admit that I have largely forgotten it, so I will skip going into more details here.
Resources to check
- Overview on Wikipedia
- Official tutorial: NO, trust me, no-one is learning to code in Pascal nowadays...
- But if you insist, you can check out Free Pascal Compiler
Coming next...
After this short detour, let's continue with a language, that really stood the test of time: C++!