كتاب رقم ( )5من سلسلة البرمجة بلغة Cباستخدام TURBO C
آخر تحديث لهذه النسخة2/8/2007 :
رسم الدوال الرياضية
TURBO C PLUS PLUS باستخدام
برمجة :البراء عبد الرؤوف الرملي
طرابلس /ليبيا هذا الكتاب مجاني
مقدمة هذا برنامج لرسم الدوال الرياضية بلغة C باستخدام TURBO C PLUS PLUS V3
وهو الن بين يديك لتضيف إليه ما تظن أنه
يرقى به إلى المطلوب ثم تقوم بنشره لتعم الفائدة لنا جميعا ,لنه إن لم نتشارك بأفكارنا ,فلن نتقدم خطوة إلى المام ,وإنما الواجب علينا أن نفيد ونستفيد.
لي تعليق أو ملاحظة يمكنك مراسلتي على بريدي اللكتروني:
albararamli@yahoo.com
أما للحصول على بقية كتب:
(سلسلة البرمجة بلغة Cباستخدام )TURBO C أو لتحميل)TURBO C PLUS PLUS V3( : فيمكنك زيارة موقعيwww.sbrsystem.8m.com :
البراء عبد الرؤوف الرملي
طرابلس/ليبيا ()2007/8/2 تجهيز TURBO Cليتمكن من عرض البرامج التي تستخدم دوال الرسم
أول :افتح " "TURBO C PLUS PLUSثم اضغط على زر Options
ثم اختر Linkerثم اختر Librariesكما هو مبين في الشاشة:
فتظهر لك الشاشة السفلية ,اختر الخيار الثالث Graphics libary
ثم اضغط ok الوصف النص المصدري > #include<graphics.hاستدعاء للمكتبات بما فيها مكتبة الرسم graphics.h >#include<conio.h >#include<math.h يعني كل 1000نقطة يتم تمثيلها #define TX 1000 بوحدة طولية في المحور السيني. ملاحظة عند زيادة هذه القيمة فإن صورة الدالة المرسومة ستصغر قي التجاه السيني ,وعند تقليل هذه القيمة فإن صورة الدالة تكبر في التجاه السيني يعني كل 100نقطة يتم تمثيلها #define TY 100 بوحدة طولية في المحور الصادي. ملاحظة عند زيادة هذه القيمة فإن صورة الدالة المرسومة ستصغر قي التجاه الصادي ,وعند تقليل هذه القيمة فإن صورة الدالة تكبر في التجاه الصادي #define CEN_X getmaxx()/2ثوابت تمثل حدود الشاشة ومركزها في التجاهين السيني والصادي. #define CEN_Y getmaxy()/2 )(#define MAX_X getmaxx )(#define MAX_Y getmaxy #define MIN_X 0 #define MIN_Y 0 دالة لتعريف بيئة الرسم )(void ini_g { ;int gd=DETECT,gm initgraph(&gd,&gm,"C:\\TC\\BG ;)"I } ( void m_xy(int cدالة لرسم المحاور الكارتيزية ,حيث { نقطة الصل في مركز الشاشة ,و c intهو عدد صحيح )من 1إلى (15يمثل لون المحاور. ;)color=getcolor();setcolor(c line(MIN_X,CEN_Y,MAX_X,CEN ;)_Y line(CEN_X,MIN_Y,CEN_X,MAX ;)_Y ;)setcolor(color } دالة لرسم نقطة حيث ) (x,yهما )void pointc(float x,float y,int c إحداثيات موقع النقطة بينما cهو { عدد صحيح )من 1إلى (15يمثل ;x*=TX; y*=TY لون النقطة. x+=getmaxx()/2; y=- مع ملاحظة أن نقطة الصل بالنسبة ;y+getmaxy()/2 ;)putpixel(x,y,c لهذه الدالة هو مركز الشاشة ,بخلاف } دوال الرسم الموجودة في graphics.h )(void main { ;float x,y ;)(ini_g ;)m_xy(15 -1و 1يمثلان حدود الدالة في )for(x=-1;x<=1;x+=.0001 المحور السيني. يتم قسمة نسبة الزيادة Xعلى 10 إذا تم زيادة الثابت TXوالعكس صحيح. حيث yهي الدالة المراد رسمها ,حيث { يمكن كتابة الدالة المراد رسمها. ;)y=sin(x*180/3.14 تنبيه :تم ضرب قيمة الزاوية في ;)pointc(x,y ,1 180وقسمتها على 3.14للتحويل } من RADإلى .DEG ;)(getch ;)(closegraph }