Das Museum der Algorithmen
Eine Sammlung zeitloser Codeschnipsel, wie sie in jedem Informatikbuch der 90er standen.
1. Hello World (Der Klassiker)
Nichts geht über den ersten gelben Text auf blauem Grund.
PROGRAM HelloWorld;
USES Crt;
BEGIN
ClrScr;
TextColor(Yellow);
WriteLn('Hello Turbo Pascal!');
ReadLn;
END.
2. Grafikmodus (BGI)
Die "Borland Graphics Interface" (BGI) war der einfachste Weg, Pixel zu zeichnen.
PROGRAM GraphicsTest;
USES Graph;
VAR gd, gm: Integer;
BEGIN
gd := Detect;
InitGraph(gd, gm, '');
Circle(320, 240, 100);
ReadLn;
CloseGraph;
END.
3. Sound & Musik
Der PC-Speaker war limitiert, aber wir haben ihn geliebt.
program RetroFeeling;
uses Crt;
var i: Integer;
begin
TextBackground(Blue);
ClrScr;
for i := 1 to 10 do
begin
TextColor(i);
Sound(100 * i);
WriteLn('Hello Turbo Pascal! Counting: ', i);
Delay(200);
NoSound;
end;
WriteLn;
WriteLn('Press API key to exit...');
ReadKey;
end.
4. Zahlenraten
Ein einfaches Spiel mit Eingabe, Logik und Ausgabe.
program GuessNumber;
uses Crt;
var Secret, Guess, Tries: Integer;
begin
ClrScr;
Randomize;
Secret := Random(100) + 1;
Tries := 0;
WriteLn('Ich denke mir eine Zahl zwischen 1 und 100.');
repeat
Write('Dein Tipp: ');
ReadLn(Guess);
Inc(Tries);
if Guess < Secret then WriteLn('Zu klein!')
else if Guess > Secret then WriteLn('Zu gross!')
else begin
TextColor(LightGreen);
WriteLn('Richtig! Du hast ', Tries, ' Versuche gebraucht.');
end;
until Guess = Secret;
ReadKey;
end.
5. Bouncing Ball (Animation)
Einfache Physik ohne Grafikmodus, nur mit ASCII-Zeichen.
program BouncingBall;
uses Crt;
var
x, y, dx, dy: Integer;
begin
x := 10; y := 10; dx := 1; dy := 1;
ClrScr;
CursorOff; { Versteckt den Cursor }
repeat
GotoXY(x, y); Write(' '); { Alten Ball löschen }
{ Position berechnen }
Inc(x, dx); Inc(y, dy);
{ Kollision mit den Bildschirmrändern (80x25 Zeichen) }
if (x <= 1) or (x >= 80) then dx := -dx;
if (y <= 1) or (y >= 25) then dy := -dy;
GotoXY(x, y); TextColor(Yellow); Write('O'); { Neuen Ball zeichnen }
Delay(50);
until KeyPressed;
CursorOn;
end.
6. Datei-Handling (Highscore)
Daten dauerhaft speichern mit typisierten Dateien (Records).
program Highscore;
uses Crt;
type
TEntry = record
Name: String[20];
Score: LongInt;
end;
var
F: file of TEntry;
Player: TEntry;
begin
Assign(F, 'SCORES.DAT');
Rewrite(F); { Datei erstellen }
Write('Gib deinen Namen ein: '); ReadLn(Player.Name);
Write('Gib deinen Score ein: '); ReadLn(Player.Score);
Write(F, Player); { Den Record direkt in die Datei schreiben }
Close(F);
WriteLn('Daten in SCORES.DAT gespeichert!');
ReadKey;
end.
7. Rekursion (Fibonacci)
Der klassische mathematische Algorithmus.
program Fibonacci;
uses Crt;
function Fibo(n: Integer): LongInt;
begin
if (n <= 2) then Fibo := 1
else Fibo := Fibo(n - 1) + Fibo(n - 2);
end;
var
i: Integer;
begin
ClrScr;
WriteLn('Die ersten 10 Fibonacci-Zahlen:');
for i := 1 to 10 do
Write(Fibo(i), ' ');
WriteLn;
ReadKey;
end.