منتديات برامج نت
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي

منتديات برامج نت

برامج كمبيوتر و انترنت لغات برمجه و تطوير مواقع قسم خاص بالتصميم و الجرافيك
 
الرئيسيةPortalاليوميةس .و .جالأعضاءالمجموعاتالتسجيلدخول
اهلاوسهلا بكم في منتديات برامج نت ارجو من جميع الزوار التسجيل مع تحيات $الادارة$

شاطر | 
 

 الماكرو

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
DESGINER

المدير العام...}


avatar


مُساهمةموضوع: الماكرو   الإثنين مارس 16, 2009 11:15 am

هو مجموعة من التعليمات تؤدى غرض معين ويشبه إلى حد كبير الدالة function ويتم إنشاء الماكرو مرة واحدة وبعد ذلك يمكن استدعائه كلما احتجت إيه ( أى يتم تعريف الثوابت او عمليات محدده فى بداية البرنامج وتكون لها صفه العمومية للاستخدام داخل الدالة الرئيسية والدوال الفرعية )
إذن : الماكرو من ضمن بناء برنامج لغة الـــ C

كيفية إنشاء الماكرو :-
- يتم ذلك باستعمال الكلمة #define
- وهذه الكلمة تسمى directive او preprocessor ومعناها التوجيه

* الصورة العامة# define macro line
مثلا #define a 5
وهى عبارة عن تعريف طرف بطرف ومعناها عرف المتغير a بالقيمة 5
تمرين يوضح كيفية الإعلان عن الماكرو وكيفية استعماله

كود:
# include<stdio.h>
# define sum(a,b) a+b
# define mul(x,y) x*y كود:
main ( )
{
int v1=5 , v2 = 10;
printf(“\n\n sum(v1,v2) = % d”,sum(v1,v2);
printf(“\n\n mul(v1,v2) = % d”,mul(v1,v2);
} ملاحظات على البرنامج :-
- فى السطر رقم 2 استخدمنا كلمة define لتعريف ماكرو بالاسم sum ووظيفته استبدال المتغيرينa,b بالصور a+b
- كذلك فى السطر رقم 3 يستبدل المتغيرين x,y بنتيجه الضرب x*y
- ومعناها كلما قبل المترجم اللغة الطرف الأول للماكرو يستبدله بالطرف الثانى
ملاحظ هامة : المتغيرين a,b يمكن استبدالهما بأى متغيرين أو قيمتين داخل البرنامج. واسم الماكرو هو الذى يحدد العملية التى يقوم بها الماكرو ( هل هى عملية جمع أم ضرب أم ….. بناء على المعادلة الموجودة فى الطرف الأيمن من الماكرو )
* الفرق بين الماكرو وبين الدالة :- اى برنامج يمر بثلاث مراحل :-
المرحلة الأولى : كتابة وهذا يسمى source code ويخصص لملف المصدر الامتداد .C
المرحلة الثانية : ترجمة البرنامج للغة يفهمها الحاسب وتسمى هذه المرحلة compilation ويخصص للملف الامتداد .obj
المرحلة الثالثة : ربط الملف الـ object بمكتبات اللغة ليصبح قابل للتنفيذ وتسمى هذه العملية linking ويخصص لهذا الملف الإمتداد .exe
ومن خلال هذه المراحل تستطيع ان تستخرج الفرق بين الماكرو وبين الدالة كما يلى :-
1- فى مرحلة الكتابة ايس هناك فرق بين الماكرو وبين الدالة.
2- فى مرحلة الترجمة compilation يتم تحويل تعليمات الدالة الى لغة الآلة object وتنتظر وحدة الربط linking ولا تنفذ الدالة إلا فى مرحلة الربط
3- اما فى حالة الماكرو يتم استبدال الماكرو بنتيجة تنفيذ الماكرو
( فى التمرين السابق يتم استبدال الماكرو الموجود فى السطر رقم 7 بنتيجة التنفيذ مباشرة . اى يتم وضع القيمة 15 وهى نتيجة تنفيذ الماكرو مكان sum(v1,v2) وبالتالى عندما تاتى مرحلة التنفيذ يجد البرنامج نتيجة تنفيذ الماكرو جاهز وهى 15 )
\ مزايا الماكرو :-
1- بسيط فى الإنشاء
2- بسيط فى الاستعمال ويعطى فى النهاية ملف تنفيذى أصغر
3- إذا كانت العملية المطلوبة بسيطة ويمكن كتابتها فى سطر واحد نستعمل الماكرو.

تمرين :

كود:
# include<stdio.h>
# define pi 3.14159
main ( )
{
float area(float);
float radius;
printf(“enter radius sphers : “);
scanf(“%f”, &radius):
printf(“area of sphere is 2f”,area(radius));
}
/* returns ares of sphere */
float area(rad)
float rad;
{
return(4*pi*rad*rad);
}
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
EH@B

عضو جديد...}


avatar


مُساهمةموضوع: رد: الماكرو   الجمعة مايو 22, 2009 12:38 pm

الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://a7la-3alam.gid3an.com/forum.htm
EH@B

عضو جديد...}


avatar


مُساهمةموضوع: رد: الماكرو   الجمعة مايو 22, 2009 12:47 pm

الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://a7la-3alam.gid3an.com/forum.htm
الزعيم

عضو جديد...}





مُساهمةموضوع: رد: الماكرو   الجمعة مايو 22, 2009 3:42 pm

مشكوووووووووور على الدرس
تحيااااتى
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
DESGINER

المدير العام...}


avatar


مُساهمةموضوع: رد: الماكرو   الجمعة مايو 22, 2009 3:48 pm

شكرا لمروركم جميعا

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
 
الماكرو
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات برامج نت :: :::: المنتديات التقنيـــــه :::: :: لغات البرمجه :: لغه السى و السى++و السى#-
انتقل الى: