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>