S I N U S & C O.:
  • Wer sich schon immer gefragt hat, wie der Taschenrechner den Sinus bzw. Cosinus-Wert ausrechnet, wird jetzt mit der Theorie der Sinus bzw. Cosinus - Reihen schlauer werden...

    Die Quellcodes können die Sinus bzw. Cosinus - Werte bis auf 20 Stellen genau berechnen... Voraussetzung ist aber ein Coprozessor...

    Mathematische Theorie:

    • sin x = x - x3 / 3! + x5 / 5! - x7 / 7! + - ...
    • cos x = 1 - x2 / 2! + x4 / 4! - x6 / 6! + - ...
    • tan x = sin x / cos x
    • cot x = cos x / sin x
    • ex = 1 + x / 1! + x2 / 2! + x3 / 3! +...

    x im Bogenmaß benutzen

 
Q U E L L C O D E:
  • Sinus-Iteration:
    {Pascal-Programm
    von Dipl.-Ing. Thomas Speiser
    Software-Programmer}

    {Sinus-Iteration}


    program Sinus;
    {$N+}
    {$E-}
    uses Crt, Dos;

    var i,a: longint;
    vor: integer;
    x: real;
    v: extended;

    {In Pascal gibts keine Fakultät}

    function Fak(s: longint): real;
    var w: real;
    begin
    w:=1;
    for a:=1 to s do w:=w*a;
    fak:=w;
    end;

    {In Pascal gibts keine Exponentiale}
    function Hoch(s:real; s2: longint): real;
    var w: real;
    begin
    w:=1;
    for a:=1 to s2 do w:=w*s;
    hoch:=w;
    end;

    begin
    Clrscr;
    WriteLN('Sinus-Funktion: Iteration');
    a:=3;
    i:=1;
    vor:=-1;
    v:=0;
    Write('x in Bogenmass eingeben: ');readLN(x);
    v:=x-(hoch(x,a) / fak(a));
    writeLN('1. ',v:1:20);
    repeat
    inc(i);
    a:=(2*i)+1;
    vor:=vor*(-1);
    v:=v+(vor*(hoch(x,a) / fak(a)));
    writeLN(i,'. ',v:1:20);
    Delay(100);
    until i = 16;
    ReadLN;
    end.
  • Cosinus-Iteration:
    {Pascal-Programm
    von Dipl.-Ing. Thomas Speiser
    Software-Programmer}

    {Cosinus-Iteration}


    program Cosinus;
    {$N+}
    {$E-}
    uses Crt, Dos;

    var i,a: longint;
    vor: integer;
    x: real;
    v: extended;

    {In Pascal gibts keine Fakultät}
    function Fak(s: longint): real;
    var w: real;
    begin
    w:=1;
    for a:=1 to s do w:=w*a;
    fak:=w;
    end;

    {In Pascal gibts keine Exponentiale}
    function Hoch(s:real; s2: longint): real;
    var w: real;
    begin
    w:=1;
    for a:=1 to s2 do w:=w*s;
    hoch:=w;
    end;

    begin
    Clrscr;
    WriteLN('Cosinus-Funktion: Iteration');
    a:=2;
    i:=1;
    vor:=-1;
    v:=0;
    Write('x in Bogenmass eingeben: ');readLN(x);
    v:=1-(hoch(x,a) / fak(a));
    writeLN('1. ',v:1:20);
    repeat
    inc(i);
    a:=2*i;
    vor:=vor*(-1);
    v:=v+(vor*(hoch(x,a) / fak(a)));
    writeLN(i,'. ',v:1:20);
    Delay(100);
    until i = 16;
    ReadLN;
    end.
  • Euler-Iteration:

    {Pascal-Programm
    von Dipl.-Ing. Thomas Speiser
    Software-Programmer}

    {Euler-Iteration}


    program Euler;
    {$N+}
    {$E-}
    uses Crt, Dos;

    var i,a: longint;
    x: real;
    v: extended;


    {In Pascal gibts keine Fakultät}

    function Fak(s: longint): real;
    var w: real;
    begin
    w:=1;
    for a:=1 to s do w:=w*a;
    fak:=w;
    end;

    {In Pascal gibts keine Exponentiale}
    function Hoch(s:real; s2: longint): real;
    var w: real;
    begin
    w:=1;
    for a:=1 to s2 do w:=w*s;
    hoch:=w;
    end;

    begin
    Clrscr;
    WriteLN('Euler-Funktion: Iteration');
    a:=1;
    i:=1;
    v:=0;
    Write('x in Bogenmass eingeben: ');readLN(x);


    v:=1+(hoch(x,a) / fak(a));
    writeLN('1. ',v:1:20);
    repeat
    inc(i);
    a:=i;
    v:=v+(hoch(x,a) / fak(a));
    writeLN(i,'. ',v:1:20);
    Delay(100);
    until i = 16;
    ReadLN;
    end.
< Zurück > Homepage & Programme von Dipl.-Ing. Thomas Speiser Copyright MMX