[■] EXAMPLES.PAS [▲]

算法博物馆

经典代码片段。

1. Hello World

经典的蓝底黄字。

PROGRAM HelloWorld; USES Crt; BEGIN ClrScr; TextColor(Yellow); WriteLn('Hello Turbo Pascal!'); ReadLn; END.

2. 图形 (BGI)

轻松绘制像素。

PROGRAM GraphicsTest; USES Graph; VAR gd, gm: Integer; BEGIN gd := Detect; InitGraph(gd, gm, ''); Circle(320, 240, 100); ReadLn; CloseGraph; END.

3. 声音

PC 扬声器的蜂鸣声。

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. 猜数字

简单的逻辑游戏。

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. 弹球

ASCII 动画。

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. 文件处理

保存记录。

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. 斐波那契

递归示例。

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.