دروس كمبيوتر وصيانة دروس حاسب دروس مجلة  درس نيوك phpnuke الدروس دروس مسنجر MSN - yahoo - Gmail دروس منتديات vBulletin دروس الجوالات والهواتف دروس السي بنل cpanel دروس اكسس access دروس بيونت شوب برو - point shop pro دروس برمجة php - mysql دروس برامج منوعة software دروس ثري دي ماكس 3D max دروس جافا سكريبت JavaScript دروس دريم ويفر DreamWeaver دروس شبكات Networks دروس سويش - swish دروس فلاش - flash دروس فيجوال بيسك Visual Basic دروس فرونت بيج - frontpage دروس فوتوشوب photoshop دروس هكر hacker crack virus
توبيكات رمضان | رسايل رمضان | ثيمات رمضان | طبخات رمضانية | توبيكات رمضانية | صور عن رمضان | دعاء رمضان
احصائيات سريعة
اقسام على الموقع
دروس في أنظمة التشغيل | ماي سكيول - MySQL | لفيجوال بيسك - Visual Basic | المات لاب Matlab | اللينكس و اليونكس | الاسمبلي - ASSEMBLY | الاوتلوك - Outlook | البرمجة تحت اللنكس -Linux Programming | البرمجة تحت وندوز بواسطة دوال ال win API | البرمجة في بيئة الدوت نت .Net | التصمبم والرسوم | الدلفي - Delphi | الجافا - Java | السي - C | الصوت و الصورة | الوورد - Word | القسم العام للأوفيس | الكوبول - COBOL | control panel-ftp | اوراكل - Oracle | اكسل - Excel | تحميل الملفات | برامج متنوعة | برامج التصفح | برامج الحماية | برامج إنترنت | تعرّف على الويب | بوربوينت - Power Point | images | دروس : كمبيوتر وصيانة | دروس مجلة نيوك phpnuke | دروس مسنجر MSN - yahoo - Gmail | دروس منتديات vBulletin | دروس الجوالات والهواتف | دروس السي بنل cpanel | دروس اكسس access | دروس بيونت شوب برو - point shop pro | دروس برمجة php - mysql | دروس برامج منوعة software | دروس ثري دي ماكس 3D max | دروس تطوير المواقع والمنتديات | دروس جافا سكريبت JavaScript | دروس دريم ويفر DreamWeaver | دروس شبكات Networks | دروس سويش - swish | دروس فلاش - flash | دروس فلاش mx | دروس فى نظام الوندوز WINDOWS | دروس فىالباسكال - Pascal | دروس فيجوال بيسك Visual Basic | دروس فرونت بيج - frontpage | دروس فوتوشوب photoshop | دروس هكر hacker crack virus | سي ++ | سي شارب - #C | فيجوال سي ++ - ++ Visual C | قسم البرمجة العام | دروس فى لغة HTML
البحث في المواد

اكثر المحتويات زيارة
الدوال في الاكسل (6,416 مشاهده)
ربط قاعدة بيانات أكسس (MS Access) مع برنامج الفيجوال بيسك بطريقة(ODBC) (4,160 مشاهده)
الدرس الثالث : بعض تطبيقات الدوال في اكسل (3,093 مشاهده)
تعريف الاستعلام وطريقة عرضه في آكسس، أنواع الاستعلامات، نافذة تحديد الاستعلام! (2,417 مشاهده)
الدرس الثاني: بعض الحيل لتسهيل برنامج اكسل (2,309 مشاهده)
شرح طريقة استعمال الأوتلوك مع بريد الهوتميل (2,211 مشاهده)
تغيير لغة واجهة التطبيق من عربي الى انجليزي وبالعكس لـ Windows-based applications (2,179 مشاهده)
أنواع العلاقات وطريقة الربط بين الجداول. (1,947 مشاهده)
مقدمة عامة حول الاكسل وحيل خاصة بالاكسل (1,759 مشاهده)
أنشئ قاعدة بياناتك التي ستستند إليها في تعلم طريقة ربط الجداول والاستعلامات. (1,732 مشاهده)
الدرس الأول : عمل شريحة في البوربوينت (1,585 مشاهده)
دروس في الأوفيس الأكسس - Access0- (1,541 مشاهده)
كيفية حل مشاكل الانترنت اكسبلور Internet Explorer (1,510 مشاهده)
دورة الأكسس: الدرس السادس : منوعات في أكسيس . (1,471 مشاهده)
اضافه صوت ونص لخلفيه في باور بوينت (1,366 مشاهده)
شرح طريقة التجميع Grouping في برنامج الاكسل (1,329 مشاهده)
دورة الأكسس: الدرس السادس : منوعات في أكسيس .0--- (1,298 مشاهده)
التعرف على مكونات الكمبيوتر (1,293 مشاهده)
برنامج Windows Movie Maker لتكوين أفلام (1,275 مشاهده)
درس تعريب المجلة (1,249 مشاهده)
كيف تجعل برنامجك أكثر تألقا وجمالا باستخدام أداة Active Skin (1,222 مشاهده)
مقدمة في ربط قواعد البيانات داخل بيئة الـ .NET باستخدام الـ VB.NET (1,219 مشاهده)
ما هو المات لاب MATLAB؟ (1,182 مشاهده)
مقدمة عن لغة البيسك (1,135 مشاهده)
الفيجوال بيسك - مقدمة (1,093 مشاهده)
جديد مواد مع عشوائي
التحويل التلقائي للحروف ل- ل- ه إلى اسم الجلالة0---- (803 مشاهده)
النسبة المئوية لا تظهر بالخط العربي & الشدة وألف المد في لفظ الجلالة0---النسبة المئوية لا تظهر بالخط العربي & الشدة وألف المد في لفظ الجلالة0--- (493 مشاهده)
ضبط خيارات اللغة فى الـ Microsoft Word0--- (557 مشاهده)
استخدام لوحة المفاتيح في الـ Word0---- (725 مشاهده)
إضافة كلمة سر إلي ملفات الورد دون استخدام برامج0--- (795 مشاهده)
دمج المراسلات0-- (441 مشاهده)
وضع صورة كخلفية للنص0-- (572 مشاهده)
السماح للمستخدمين بتعديل أجزاء من ملف وورد محمي (Word2003)0--- (389 مشاهده)
كتابة الأرقام الكسرية ورموز المعادلات0-- (646 مشاهده)
درس كامل عن الدمج السهل من لوحة المفاتيح ف0-ي برنامج الـ Word (405 مشاهده)
دورة الأكسس: الدرس السادس : منوعات في أكسيس .0--- (1,298 مشاهده)
دورة الأكسيس : الدرس الرابع : العلاقات0---- (677 مشاهده)
أساسيات في Access0--0 (472 مشاهده)
تصميم تقرير لطباعة البيانات0---- (503 مشاهده)
تصميم نموذج استعراض البيانات‏0--تصميم نموذج استعراض البيانات‏0-- (484 مشاهده)
تصميم نموذج إدخال‎ ‎البيانات0--- (576 مشاهده)
إنشاء قوائم خاصة باستخدام الماكرو(1)0-- (447 مشاهده)
خطوات إنشاء الماكرو في تذييل النموذج (2)0-- (381 مشاهده)
خطوات إنشاء الماكرو في تذييل النموذج (1)0- (333 مشاهده)
استعلامات SQL في Access - تعديل الجداول وإضافة الحقول0- (472 مشاهده)
استعلامات SQL في Access - تحديث البيانات الجدولية0-- (425 مشاهده)
الاستعلامات الإجرائية -4 (استعلام الحذف)0--- (222 مشاهده)
الاستعلامات الإجرائية -2 (استعلام الإلحاق)0--- (307 مشاهده)
تصميم تقرير لطباعة الإجمالي0--- (329 مشاهده)
استعلامات التحديد Select Query مع أمثله (1)0--- (436 مشاهده)
اعلانات في الموقع على جميع الصفحات

الدرس الرابع - الدوال

ساء الخير


موضوع اليوم عن الدوال او الروتينات الفرعية وهي اجزاء من البرنامج مثل الدالة الرئيسية تقوم بعمل مهمة معينة تتكرر في برنامجك او تستخدمها في برامج اخرى او حتى اذا كانت لا تتكرر من فوائدها


·        تقسيم البرنامج الى اجزاء صغيرة تستدعى وقت اللزوم


·        عدم ازدحام الدالة الرئيسية للبرنامج بأوامر كثيرة


·        تقسيم البرنامج الى اجزاء يمكن اختبارها منفصلة لسرعة تحديد الخلل بالبرنامج


·        توفير المجهود والوقت والتفكير بعمل مكتبة خاصة بك تعيد استخدام الدوال التي استخدمتها في برنامج وذلك في برنامج آخر عند اللزوم


·        تقسيم العمل بين المبرمجين عن العمل في مشروع جماعي لانتاج برنامج كبير


·        تبادل الخبرات بين مطوري البرامج بنشر اجزاء يستخدمها الآخرون في برامجهم


لتطبيق ذلك دعنا نحضر البرنامج الذي تناولناه في الدرس الثالث لاعطائه مزيدا من القوة والتطوير باستخدام الدوال


 


#include <iostream.h>            


int main()         


 {   


  int x , y , z;       


  for(x=1;x<13;x++)


  {          


  for(y=1;y<13;y++)


  { 


     z = x * y;        


    cout<<x<<”*”<<y<<”=”<<z<<endl;     


 }


 }


 


  return 0; 


 


}


لوكنت قد تذكرت الآن فان البرنامج كان يقوم بعمل جدول الضرب من جدول واحد الى جدول 12 واحتوى كامل التعليمات داخل الدالة الرئيسية دعنا نستخدم الدوال ولنسمي هذه الدالة DoiT


 


#include <iostream.h>


void DoiT (void);


         


int main()         


{


DoiT ();


}


 


// This is the new function


void DoiT (void)


 {   


  int x , y , z;       


  for(x=1;x<13;x++)


  {          


  for(y=1;y<13;y++)


  { 


     z = x * y;        


    cout<<x<<”*”<<y<<”=”<<z<<endl;     


 }


 }


 


  return ; 


 


}


مايخص الدالة الجديدة مكتوب باللون الاحمر فقبل الدالة الرئيسة main تم الاعلان عن نموذج الدالة او ما يسمى prototype  بهذا الشكل


 


void DoiT (void);


 


وفيه نخبر الكومبايلر بشكل وما ستكون عليه الدالة كما يلي


 























الصيغة


التفسير


void


ماهي القيمة التي سوف تعيدها الدالة للدالة التي استدعيت منها وذلك بالامر return هنا استخدمنا void  بمعنى لاشئ وبالتالي علينا استبدال return 0 التي استخدمناها في الدرس الثالث الى الامر return  فقط حيث اننا اعلنا ان الدالة غير مطلوب منها اعادة شئ


DoiT


اسم تختاره لدالتك بحيث يكون معبرا قليلا عما ستفعل انا هنا لم اختر اسم معبر


(


قوس لاحتواء البارامترات التي ستمرر للدالة


void


البارامترات التي ستمرر للدالة وهنا اخترنا void بمعنى لن نمرر لها شئ


);


قوس اغلاق لمجموعة البارامترات يليها فاصلة منقوطة


 


 


والآن الى باقي سطور البرنامج لاستكمال الشرح


int main()         


{


DoiT ();


}


كما سبق ولابد ان نعلن عن الدالة الرئيسية للبرنامج وهو الزام ثم داخل بلوك الدالة الرئيسية قمنا بالنداء على الدالة للتنفيذ وذلك بكتابة اسمها ثم قوسين لايوجد بينهما شئ هل تتذكر لماذا لان البارامترات المطلوب تمريرها للدالة لم تعطى اي void  ولكن بالطبع لاتكتب void  ولكن يكون ذلك في الاعلان عن الدالة فقط وهو على الصورة التالية


 


DoiT();


 


تلى ذلك قوس نهاية البلوك للدالة الرئيسة ثم جسم او هيكل الدالة نفسها ويبدء بنفس الاعلان عن اسم الدالة او البروتوتايب ولكن بدون فاصلة منقوطة في النهاية وكما تلاحظ وسبق ان قلنا ان الفاصلة المنقوطة لاتأتي بعد main() وبنفس الطريقة لاتأتي في مقدمة بلوك الدالة



 


void DoiT (void)


 {   


ضع اوامر الدالة هنا


 


}



ثم قوس بداية بلوك الدالة ثم مابداخلها من اوامر وقوس النهاية ودعنا ننتهز فرصة الدوال لاعطاءمزيد من التحسينات على البرنامج حيث ان البرنامج ينتج فقط جدول الضرب من جدول 1 الى جدول 12 فلماذا لانجعلها دالة عامة تنتج مايحلو لنا من جداول ضرب من المؤكد انك تتفق معي في ذلك وبذلك نستفيد من قوة الدوال وتصبح دالة عامة غير موجهه لمهمة ثابته فنحن نريد ان نحدد نحن بداية الجداول ونهايتها فتارة تطبع من جدول 7 الى جدول 20 وتارة تطبع من جدول 17 الى 40 وهكذا اليس هذا افضل سوف نمرر للدالة قيمة البداية وقيمة النهاية مع اجراء التعديلات اللازمة لذلك.


 


#include <iostream.h>


void DoiT (int Start , int End);


         


int main()         


{


int Start , End;


cout<<"Please input start value ?: ";


  cin>>Start;


cout<<"Please input end   value ?: ";


  cin>>End;


DoiT (Start , End);


}


 


// This is the new function


void DoiT (int Start , int End)


 {   


  int x , y , z;       


  for(x=Start;x<End+1;x++)


  {          


  for(y=Start;y<End+1;y++)


  { 


     z = x * y;        


    cout<<x<<”*”<<y<<”=”<<z<<endl;     


 }


 }


 


  return ; 


 


}


 


لتسهيل الامر عليك وضعت لك لون اصفر على التعديلات التي اجريتها للوصول الى الهدف المنشود لقد وضعنا في اقواس البروتوتايب اعلان عن تمرير متغيرين صحيحين الى الدالة


 


void DoiT (int Start , int End);


ثم داخل الدالة الرئيسية اعلنا عن استخدام متغيرين جديدين من نوع الاعداد الصحيحة هما


int Start , End;


 


تلى ذلك امر بطبع رسالة تطلب منك ادخال قيمة بداية الجدول وبعده امر بعملية الادخال نفسها ليعرف البرنامج القيمة المبدئية لبداية الجدول


 


cout<<"Please input start value ?: ";


  cin>>Start;


 


مثلهما تماما للمتغير الثاني ليعرف البرنامج قيمة النهاية والتي كانت ثابتة سابقا على القيمة 12 ونحن نريد برنامج اكثر مرونة ومطوع لكل الحالات


 


cout<<"Please input end   value ?: ";


  cin>>End;


بعد ان ادخلت قيمة البداية والنهاية فكما ذكرنا تم تعديل الدالة لتمرير متغيرين لها يتغيران مع كل ادخال والآن لننادي الدالة ممرين لها القيمتين الذين ادخلهما مستخدم البرنامج


 


DoiT (Start , End);


 


ثم اجرينا تعديل على اسم الدالة نفسها ليوافق البروتوتايب او اعلان الدالة الجديد في مقدمة البرنامج طبعا بدون فاصلة منقوطة


// This is the new function


void DoiT (int Start , int End)


 {   


ثم تلى ذلك وضع القيمة Start  الممررة للدالة كبداية عداد للحلقتين بدلا من القيمة 1 وكذلك المتغير End  الممرر الى الدالة كنهاية لعداد الحلقتين بدلا من القيمة 13 في مثال الدرس الماضي


 


ويجب دائما ان تفكر في احتمالات خطأ مدخل البيانات فمثلا ماذا لو أخطأ وادخل قيمة البداية اكبر من قيمة النهاية بالطبع سيحدث خطأ بالبرنامج وسيحدث نفس الخطأ اذا ادخلهم كقيمتين متساويتين وعليه يجب وضع شرط لذلك كما سيلي توضيحه كتحسين للبرنامج


 


#include <iostream.h>


void DoiT (int Start , int End);


         


int main()         


{


int Start , End;


A1:


cout<<"Please input start value ?: ";


  cin>>Start;


cout<<"Please input end   value ?: ";


  cin>>End;


 


if (Start >= End) goto A1;


 


DoiT (Start , End);


}



لقد وضعت الاضافة الجديدة بخلفية حمراء للتوضيح وهي عبارة عن عنوان اختياري قبل عملية الادخال ثم بعد الادخال شرط انه اذا كانت قيمة البداية اكبر من اوتساوي قيمة النهاية فعليك بالذهاب الى العنوان المحدد A1 اي اعادة الادخال ولامانع من اضافة رسالة تحذير لتوضيح فيما اخطأ مدخل البيانات


 


الى مثالنا الاخير وهو دالة تعيد قيمة ويممر اليها بيانات


 


#include <iostream.h>


float Mul (float A , float B);


 


int main()         


{


float A , B , R;


cout<<"Please input A ?: ";


  cin>>A;


cout<<"Please input end  B ?: ";


  cin>>B;


 


 


R = Mul (A , B);


 


cout<<R;


 


}


 


float Mul (float A , float B)


{


return A*B;


}


الدالة الجديدة اسميناها Mul وتعيد هذه الدالة قيمة عشرية وهي حاصل ضرب قيمتين عشريتين تم تمريرها اليها وكما ترى المثال بسيط ومعظم اجزائه سبق شرحها


 


 

درس الدرس الرابع - الدوال

أضف هذه المادة في موقعك:
مواد مشابهة:
المتحولات variables الجزء 1 المتحولات variables الجزء 1
المتحولات variables الجزء 1
(مرات المشاهدة: 62 مرات)
لمحة تاريخية لمحة تاريخية
لمحة تاريخية
(مرات المشاهدة: 115 مرات)
مدخلك الى تعلم البرمجة العادية 1 مدخلك الى تعلم البرمجة العادية 1
مدخلك الى تعلم البرمجة العادية 1
(مرات المشاهدة: 269 مرات)
مدخلك الى تعلم البرمجة العادية 2 مدخلك الى تعلم البرمجة العادية 2
مدخلك الى تعلم البرمجة العادية 2
(مرات المشاهدة: 186 مرات)
 Beginners All-purposes Symbolic Instruction Code Beginners All-purposes Symbolic Instruction Code
Beginners All-purposes Symbolic Instruction Code
(مرات المشاهدة: 166 مرات)
الدرس الثالث - الحلقات والتكرارات الدرس الثالث - الحلقات والتكرارات
الدرس الثالث - الحلقات والتكرارات
(مرات المشاهدة: 125 مرات)
تعريف المتغيرات تعريف المتغيرات
تعريف المتغيرات
(مرات المشاهدة: 119 مرات)
أول برنامج لك بلغة ++1C أول برنامج لك بلغة ++1C
أول برنامج لك بلغة ++C1
(مرات المشاهدة: 197 مرات)
المتحولات variables الجزء 2 المتحولات variables الجزء 2
المتحولات variables الجزء 2
(مرات المشاهدة: 76 مرات)
المصفوفات الترابطية Associative Arrays المصفوفات الترابطية Associative Arrays
المصفوفات الترابطية Associative Arrays
(مرات المشاهدة: 159 مرات)
fot
جميع الحقوق محفوظة :Copyright © All rights reserved