[■] EXAMPLES.PAS [▲]

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.