Pascal
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Pascal</language>
===An welchem Datum war Ostern in den vergangenen Jahren?===
<code id="4bc33121aaf3d" rows="30" hidden>
var year: integer;
function EasterSunday(year: Integer): String;
var
a,b,c,d,f,g : Real;
e: Integer;
begin
if year < 100 then year := year + 1900;
a := year mod 19;
b := year mod 4;
c := year mod 7;
f := 19*a + 24;
d := f - (trunc(f/30) * 30);
g := (5 + 2*b + 4*c + 6*d);
e := floor((g - (floor(g/7) * 7)) + d + 22);
if e <= 31 then
Result := IntToStr(e) + '.' + '03.' + IntToStr(year)
else
begin
if e - 31 >= 26 then e:=19 else e:= e - 31;
Result := IntToStr(e) + '.' + '04.' + IntToStr(year)
end;
end;
</code>
<run id="4d2c0017f0a6a">
year := random(1000)+1900;
writeln('In year '+intToStr(year)+' was eastern sunday on '+EasterSunday(year));
</run>
<check>
result := (EasterSunday(1939) = '9.04.1939') AND (EasterSunday(1974) = '14.04.1974');
</check>
===Fibonacci===
<code id="4bc33121ab70f">
function fib(n: integer): integer;
var tmp: integer;
begin
if n=1 then result := 1
else if n=2 then result := 1
else begin
tmp := fib(n-1);
result := tmp + fib(n-2);
end;
end;
</code>
<check>
result := (fib(5) = 5) AND (fib(8) = 21);
</check>
<run id="4bc33121ac6ae">
writeln(intToStr(fib(8)));
</run>
=== Canvas Example ===
<code id="4d2a0bf79cac4">
var i:integer;
j:integer;
</code>
<run id="4d2a0bf79cd45">
selectCanvas(1);
canvas_clear();
for i:=0 to 5 do begin
for j:= 0 to 5 do begin
canvas_setColor((255-42*i),(255-42*j),0);
canvas_fillRect(j*25,i*25,25,25);
canvas_setColor(0,0,0);
canvas_text(j*25+7,i*25+16,'x',16);
end;
end;
</run>
<canvas></canvas>
=== Turtle Example ===
<code id="4d2a0bf79cb32">
var isUp:Boolean;
</code>
<run id="4d2a0bf79cdb4">
selectCanvas(2);
canvas_clear(); // Zeichenfläche löschen
turtle_move(200,100); // Turtle in die Mitte stellen
isUp := false;
for i := 0 to 17 do begin
turtle_penColor(i*10+50,0,250-10*i);
turtle_penWidth(10);
turtle_forward(20);
turtle_right(20);
isUp := not isUp;
if isUp then turtle_penUp() else turtle_penDown();
end;
</run>
<canvas></canvas>
<code id="4d2a0bf79cbbd">
var Bob:Integer;
Eva:Integer;
step:Integer;
</code>
<run id="4d26ec4d87403">
selectCanvas(3);
Bob := createTurtle(3);
Eva := createTurtle(3);
canvas_clear(); // Zeichenfläche löschen
selectTurtle(Bob);
turtle_penColor(255,0,0);
turtle_move(300,200);
selectTurtle(Eva);
turtle_penColor(0,255,0);
turtle_move(50,50);
for step := 0 to 500 do begin
// Bewegung von Eva
selectTurtle(Eva);
turtle_setAngleTo(Bob);
turtle_forward(2);
// Bewegung von Bob
selectTurtle(Bob);
turtle_forward(random(8));
if step mod 2 = 0 then
turtle_right(random(90))
else
turtle_left(random(90));
end;
</run>
<canvas w=600 h=400></canvas>
=== Sound Example ===
<run id="4d2a0bf79ce23">
selectSound(1); // Piano MIDI
for i := 0 to 10 do
sound_play(50+i*2,100);
</run>
<code id="4d2a0bf79cc25">
var Lied:String;
key:integer;
dauer:integer;
c:Char; k:Char;
</code>
<run id="4aa4b46b6775d">
Lied := 'E-4 E-4 E-2 E-4 E-4 E-2 E-4 G-4 C-4 '+
'D-4 E-1 F-4 F-4 F-4 F-4 F-4 E-4 E-4 '+
'E-8 E-8 E-4 D-4 D-4 E-4 D-2 G-2';
selectSound(19); // 19. MIDI organ
for i := 1 to length(Lied) do begin
if i mod 4 = 1 then begin
c := Lied[i];
k := Lied[i+2];
if c = 'C' then key := 60;
if c = 'D' then key := 62;
if c = 'E' then key := 64;
if c = 'F' then key := 65;
if c = 'G' then key := 67;
if c = 'A' then key := 69;
if c = 'H' then key := 71;
if k = '1' then dauer := 1000 div 1;
if k = '2' then dauer := 1000 div 2;
if k = '4' then dauer := 1000 div 4;
if k = '8' then dauer := 1000 div 8;
sound_play(key,dauer);
end;
end;
</run>
== Eingabe/Ausgabe ==
<code id="4f54d4abdc8c3">
var eingabe:String;
</code>
<run id="4f54d4abdca2a">
eingabe := inputDialog('Gib deinen Namen ein:');
showMessage('Hallo '+eingabe+'!');
</run>