PDA

View Full Version : برنامه جدول مثلثاتی



mgmreza
جمعه 24 خرداد 1387, 04:33 صبح
با سلام
چگونه میتوان توسط زبان c تحت داس برنامه ای نوشت که جدول خطوط مثلثاتی از زاویه 0 تا 90 درجه را به صورت جدول مشخص نماید. لطفا راهنمایی بفرمایید و اگر برنامه ای در این مورد دارید لطفا لینک دانلود آن را معرفی نمایید.
با تشکر

A_Salimi
جمعه 24 خرداد 1387, 10:06 صبح
معمولا جدول رو شما براساس یکسری زوایای خاص مینویسید مثل 30-45-60-90 و بایستی sin- cos-tan-cot اونها رو بدست بیارید که کار سختی نیست .
فقط چیزی رو که باید در نظر داشته باشید اینه که توابع مثلثاتی زوایا رو بر حسب رادیان میگیرند که شما بایستی اونا رو اول به درجه تبدیل کنید و سپس مقادیر مثلثاتی رو محاسبه کنید.

mgmreza
چهارشنبه 29 خرداد 1387, 02:04 صبح
معمولا جدول رو شما براساس یکسری زوایای خاص مینویسید مثل 30-45-60-90 و بایستی sin- cos-tan-cot اونها رو بدست بیارید که کار سختی نیست .
فقط چیزی رو که باید در نظر داشته باشید اینه که توابع مثلثاتی زوایا رو بر حسب رادیان میگیرند که شما بایستی اونا رو اول به درجه تبدیل کنید و سپس مقادیر مثلثاتی رو محاسبه کنید.

با سلام
من هر چقدر سعی کردم نتوانستم برنامه را طوری بنویسم که جدول مثلثاتی از زاویه 0 تا 90 درجه را به صورت همزمان نمایش دهد. اگر برنامه ای در این مورد دارید لطفا لینک دانلود آن را معرفی نمایید. چون خیلی به این برنامه نیاز دارم.
با تشکر

A_Salimi
چهارشنبه 29 خرداد 1387, 10:36 صبح
همونطوری که گفتم نوشتن برنامه کار سختی نیست من برنامه رو نوشتم جوابهای خروجی درست هستند فقط در خروجی جدول منظمی ندارید که اون رو خودتون درست کنید.
ضمنا تبدیلی که گفتم رو تابع rad2deg انجام میده .و اگه احتمالا جایی در خروجی به اندازه چند صدم خروجی فرق داره به دلیل عدد پی هستش که من اون رو 3.1415 در نظر گرفتم.



#include <iostream.h>
#include <conio.h>
#include <math.h>
double rad2deg(int rad);
int main(){
cout<<"angle\t"<<" sin\t"<<" cos\t"<<" tan\t"<<" cot"<<endl;
for(int i=0;i<=90;i+=30)
cout<<i<<"\t"<<sin(rad2deg(i))<<" \t"<<cos(rad2deg(i))<<" \t"<<tan(rad2deg
(i))<<" \t"<<1/tan(rad2deg(i))<<endl;

return 0;
getch();

}
double rad2deg(int rad){
return rad*(3.1415/180);
}

موفق باشید.

mgmreza
پنج شنبه 30 خرداد 1387, 04:29 صبح
همونطوری که گفتم نوشتن برنامه کار سختی نیست من برنامه رو نوشتم جوابهای خروجی درست هستند فقط در خروجی جدول منظمی ندارید که اون رو خودتون درست کنید.
ضمنا تبدیلی که گفتم رو تابع rad2deg انجام میده .و اگه احتمالا جایی در خروجی به اندازه چند صدم خروجی فرق داره به دلیل عدد پی هستش که من اون رو 3.1415 در نظر گرفتم.






#include <iostream.h>




#include <conio.h>
#include <math.h>
double rad2deg(int rad);
int main(){
cout<<"angle\t"<<" sin\t"<<" cos\t"<<" tan\t"<<" cot"<<endl;
for(int i=0;i<=90;i+=30)
cout<<i<<"\t"<<sin(rad2deg(i))<<" \t"<<cos(rad2deg(i))<<" \t"<<tan(rad2deg
(i))<<" \t"<<1/tan(rad2deg(i))<<endl;


return 0;
getch();


}
double rad2deg(int rad){
return rad*(3.1415/180);
}

موفق باشید.


سلام
ببخشید که دوباره مزاحم شدم.
من برنامه شما را به زیان c تحت داس تغییر دادم و به کمک شما موفق شدم که sin , cos , tan را به دست آورم ، اما وقتی که میخواهم cot را به صورت زیر چاپ کنم برنامه وارد خروجی نمیشود در صورتی که بدون نوشتن cot برنامه وارد خروجی میشود و sin , cos , tan هم به درستی جواب میدهد . آیا دستور زیر اشتباه است ؟




Printf(“%f”,1/tan(r));

mgmreza
جمعه 31 خرداد 1387, 01:56 صبح
سلام
ببخشید که دوباره مزاحم شدم.
من برنامه شما را به زیان c تحت داس تغییر دادم و به کمک شما موفق شدم که sin , cos , tan را به دست آورم ، اما وقتی که میخواهم cot را به صورت زیر چاپ کنم برنامه وارد خروجی نمیشود در صورتی که بدون نوشتن cot برنامه وارد خروجی میشود و sin , cos , tan هم به درستی جواب میدهد . آیا دستور زیر اشتباه است ؟




Printf(“%f”,1/tan(r));


سلام
لطفا به سوال فوق پاسخ دهید.
با تشکر

A_Salimi
جمعه 31 خرداد 1387, 10:11 صبح
تنها چیزی که بنظر میرسد این است که احتمالا به دلیل اینکه عبارتی که نوشته اید در بعضی موارد مثل زاویه 90 درجه به یک مقدار مبهم تبدیل میشود در خروجی برنامه دچار اشکال میشود.در هر حال توصیه میکنم که یا از کامپایلرهایی مثل ویژوال سی استفاده کنید (که در این مورد برای من مقدار inf را در خروجی چاپ میکرد) و یا اینکه بسط های دیگری از تابع کتانژانت را تست کنید.

Nima_NF
جمعه 31 خرداد 1387, 15:01 عصر
منظور شما از اینکه وارد خروجی نمی شود چه هست ؟ باید مشخص کنید که چه خطایی داده می شود...

دقت کنید که مقدار tan را 90 و 0 و سایر مقادیر صفر یا نا معلوم قرار ندهید که تقسیم بر 1 آن خطا می دهد.
چیزی که در دستور فوق اشتباه می بینم P هست که باید به حرف کوچک نوشته شود. ( printf )