مشاهده نسخه کامل
: چه طوری میشه سینوس را محاسبه کرد (فوری)
چه طوری میشه سینوس را محاسبه کرد (فوری) ..... اگه ممکنه سورسشو میخواستم ....
NoneForce
21-05-2008, 11:49
سلام
از راهنماي دلفي استفاده كنيد : تابع Sin
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ممنون . ولی من این طوری نوشتم مشکلش کجاس.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function Fact(n: Word): Longint;
var
f: LongInt;
i: Integer;
begin
f := 1;
for i := 2 to 8 do f := f * i;
Result := f;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
sin,fact,x:real;
begin
x:=-1;
x:=strtofloat(edit1.Text);
while i<=15 do
i:=0;
sin:=x-x*2*i+1/2*i+fact ;
i:=2*i+1;
edit2.Text:=floattostr(sin);
end;
end.
NoneForce
21-05-2008, 12:50
سلام
1- كد را داخل تگ Code قرار دهيد.
2- چرا تمام خط ها را از سر خط شروع مي كنيد؟! تا به حال با واژه "كدخوانا" برخورد كرده ايد؟!
3- شما بايد بگيد مشكل كجاست ، نه من.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function Fact(n: Word): Longint;
var
f: LongInt;
i: Integer;
begin
f := 1;
for i := 2 to 8 do f := f * i;
Result := f;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
sin,fact,x:real;
begin
x:=-1;
x:=strtofloat(edit1.Text);
while i<=15 do
i:=0;
sin:=x-x*2*i+1/2*i+fact ;
i:=2*i+1;
edit2.Text:=floattostr(sin);
end;
end.
قسمتی که آبیه اونجارو مشکل دارم جواب درست در نمیاد.
NoneForce
21-05-2008, 14:40
سلام
برنامه را به تكه هاي كوچك تقسيم كنيد، بعد ببينيد مشكل از كجاست.
چيزي كه با يك نگاه ميشه فهميد اينه كه بعد از While آخر بايد يه Begin-End باشه ، چون در حالتي كه الان وجود داره اگر i كوچكتر از 15 باشه ، 15 بار مقدار i را برابر 0 خواهد كرد، ولي به ظاهر بايد 3 خط بعد هم اجرا شود.
سینوس هر زاویه (برحسب رادیان) به راحتی با تابع sin محاسبه می شود البته می بایست یونیت Math به پروژه اضافه شود.
و اگر می خواهید بدون استفاده از تابع سینوس دلفی سینوس یک زاویه را حساب کنید
با توجه به بسط مک لورن سینوس که به صورت زیر است:
Sinx=x-x^3/3!+x^5/5!-x^7/7!+...
تابع محاسبه سینوس به صورت زیر خواهد بود (تابع 15 جمله اول سری را را به عنوان سینوس زاویه بر می گرداند):
x برحسب رادیان می باشد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مرد مباح
25-05-2008, 14:21
دقيقا. شما باسد درجه را به راديان تبديل كنيد و بعد توي سينوس ازش استفاده نمائيد.
موفق باشي.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.