You are on page 1of 5

‫كتاب رقم (‪ )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‬‬
‫}‬

You might also like