[Powered by Google Translate] وظائف هي أقسام من التعليمات البرمجية المستخدمة داخل برنامج أكبر لتنفيذ مهمة معينة. وتعرف أيضا على أنها إجراءات، الوظائف الفرعية، والبرامج الفرعية، لأنها هي في الواقع مجرد برامج مصغرة داخل البرامج. على الرغم من انك قد لا تلحظ ذلك، كنت بالتأكيد قد استخدمت بالفعل وظائف إذا كنت قد المبرمجة في C. عند كتابة الاشياء إلى الشاشة باستخدام printf، في الواقع كنت تستخدم دالة يسمى printf. وبالمثل، وGetInt GetString هي الوظائف التي توفر لك CS50. كما المبرمجين، ونحن نستخدم وظائف لعدد من الأسباب. وجود وظائف لأداء المهام المشتركة مثل الكتابة إلى الشاشة ومطالبة المستخدم لإدخال يوفر علينا الوقت أثناء البرمجة. فإنه ليس من الضروري كتابة التعليمات البرمجية للقيام بهذه الأشياء نفسها منذ الانتهاء من ذلك بالفعل بالنسبة لنا. انها ليست ضرورية حتى بالنسبة لنا أن نفهم بالضبط كيف تعمل هذه الوظائف داخليا. بدلا من ذلك، علينا فقط أن تعرف كيفية استخدام أو ندعو لهم في برامجنا. كما انها مفيدة لكتابة وظائف في جو من البرامج حتى لو كنت لا تخطط على وجود الآخرين استخدامها، فقط لتقسيم أكبر المهمة في متناول اليد. بهذه الطريقة، يمكنك إعطاء التعليمات البرمجية لبناء مثل الكثير كنت تعطي هيكلية لمقال، ومع المشاريع الكبيرة حقا لكم تمكين عدة أشخاص للعمل على أجزاء مختلفة في نفس الوقت لأنه من الواضح حيث عمل شخص واحد وينتهي وآخر يبدأ هذا. وظائف عادة ما تعمل في 1 أو أكثر المدخلات، والمعروفة باسم الوسائط أو معلمات، تحويل هذه المدخلات إلى قيمة الانتاج التي يتم إرجاعها بعد ذلك. ومع ذلك، فإنه من الممكن أيضا أن يكون لها وظائف التي لا تستخدم أية وسائط الإدخال ولا ترجع الإخراج. حسنا، ما يكفي من الاشياء مع رقيق. دعونا نلقي نظرة على بعض وظائف حقيقية في C. هنا لدينا دالة يسمى مربع التي، صدقوا أو لا تصدقوا، يحسب مربع من المدخلات. دعونا تشريح بناء الجملة منه. الكلمة الأولى التي تراها في وظيفة، وكثافة العمليات، يحدد نوع الإرجاع للدالة، وهذا هو، ونوع C من انتاج الدالة. وهذه الوظيفة إخراج القيمة مع نوع int. الكلمة التالية تراه هو اسم الدالة، مربع في هذه الحالة. تسمية وظائف مناسبة له أهمية خاصة لأنه ربما الأكثر وضوحا وثائق من وظيفة ما يفعل. قد يكون باردا لتسمية هذا الصويغ ظيفة أو booyah، ولكن ذلك لا يقول لنا شيئا عن ما وظيفة لا. بعد اسم الدالة تأتي مدخلات وظيفة، والحجج. تم سردها داخل مجموعة من الأقواس مع نوع على حد سواء واستخدام اسم لهم داخل الجسم وظيفة. مربع يأخذ فقط 1 الحجة، وكثافة العمليات إلى مربع، التي كنت قررت إعطاء اسم X. هذا ينتهي الإعلان ظيفة أو النموذج. الأقواس المتعرجة المحيطة بقية ظيفة دلالة على بداية ونهاية الجسم وظيفة، تعريف الدالة نفسها. مربع هي وظيفة بسيطة جدا. انها فقط حصلت على 1 خط، منذ كل ما علينا فعله هو مضاعفة X في حد ذاته. عودة كلمة تحدد قيمة الانتاج ويتسبب في نهاية الدالة. استخدام الدالة مربع، ونحن بحاجة لتزويد المدخلات المناسبة وثم التقاط الإخراج. هنا، ترى زوجين من الطرق للقيام بذلك. يمكننا تمرير في كثافة العمليات الخام، مثل 6، أو أننا يمكن أن تمر في متغير مثل. ملاحظة أنه في كل مرة ندعو مربع، نحن التقاط الإخراج في متغير ومن ثم طباعته. ومع ذلك، لم يكن لدينا لتخزين قيمة الإرجاع في متغير ومن ثم طباعتها. يمكننا فقط أرسل مباشرة إلى printf كما نفعل نحن عندما مربع 10، لكن هذا لا يعني أننا لم يكن لديك الوصول إلى القيمة المرجعة من مربع 10 في مكان آخر في التعليمات البرمجية. دعونا ننظر في مثال آخر بسيط. هذه المرة، سنقوم باختصار 2 يطفو ذلك معا يمكننا أن نرى ما يشبه وظيفة عندما حصلت 2 المدخلات بدلا من 1 فقط. كما ترون، انها لا تختلف كثيرا. كل ما نفعله هو إضافة في الوسيطة 2، عدد عشري اسمه ب، إلى قائمة الوسائط باستخدام فاصلة لفصلها عن الوسيطة الأولى، طوف. لذلك، لدينا مربع وظائف المبلغ من السهل جدا أن نفهم لأنهم ما يعادل الوظائف التي كنت قد رأيت من قبل في درس الرياضيات. الآن، دعونا ننظر في وظيفة وهذا هو مختلفة قليلا. بدلا من إرجاع القيمة، فإنه تعديل اقامة دولتهم عليها. هذا هو المعروف باسم وجود آثار جانبية. في هذا البرنامج، وظيفة printf_fudd_style لديه نوع الإرجاع أننا لم يشاهد من قبل الفراغ. يتم استخدام الفراغ أن أقول إن وظيفة لا يقوم بإرجاع أي شيء. لا توجد متغيرات نوع باطلة، إذا كان الأمر كذلك محاولة للعودة شيء من وظيفة مثل printf_fudd_style، سوف يصيح في المجمع لك. داخل printf_fudd_style، ونحن نرى أنه في حين أن وظيفة لا يزال ينفذ مهمة، وهي تحويل جميع روبية لWS، وجهة الدالة على تعديل سلسلة ثم طباعته على الشاشة، تغيير حالة البرنامج بدلا من العودة لذلك. استخدام هذه الدالة تشبه إلى حد كبير باستخدام مربع لدينا وظائف خلاصة القول، إلا أننا لا نحتفظ النتيجة في متغير أو نقله إلى وظيفة أخرى خارج لأنه ليس هناك أي نتيجة يمكن الحديث عنها. لذلك، عندما كنا ترجمة وتشغيل برنامجنا فاد إلمر، ترى أن "أنت نذل أرنب!" يحصل تحول الحق في "أنت wabbit wascally!" وأخيرا، هناك وظيفة 1 أكثر يستحق مناقشة منذ كنت قد تم استخدامه في كل برنامج C من أي وقت مضى كنت قد كتبت، الرئيسية. الرئيسي هو وظيفة مثل الكثير من أي دولة أخرى. انها حصلت على نوع المقابل، اسم، قائمة من الحجج، وجسم. نوع عودة الرئيسي هو دائما الباحث، ويستخدم هذا الباحث للتواصل وضع البرنامج عند انتهائه. لم تشغيله بنجاح، أو أنها لم تنتهي في وقت مبكر بسبب خطأ؟ العودة إلى الصفر يشير إلى المدى ناجحة، ويرجع أي قيمة غير الصفر يدل على وجود خطأ. اعتمادا على نوع من البرنامج كنت تكتب، يمكن العودة رموز مختلفة لأخطاء مختلفة تكون مفيدة للأشخاص الذين يستخدمون البرنامج في وقت لاحق. أنابيب الحجج قليلا أكثر تعقيدا. يمكن للقائمة أن تكون إما حجة فارغة، التي تبين لنا من خلال كتابة الفراغ في ما بين الأقواس، أو يمكن أن يكون 2 قائمة الحجج: لكثافة العمليات ومجموعة من شار * S. عندما تستخدم هذه البرنامج يعتزم استخدام مرت الحجج على سطر الأوامر عندما يتم استدعاء البرنامج. ويطلق عادة على كثافة العمليات argc الحجة، وانها تساوي طول الصفيف * شار، والمعروفة باسم argv. Argv يحتوي على وسيطات سطر الأوامر تمريرها إلى البرنامج. في آخر قصير، سوف نتحدث عن كيفية استخدام هذه المتغيرات في مزيد من التفاصيل. في الوقت الحالي، يمكنك لا تتردد في اعلان الرئيسي في اي من الاتجاهين. اخترت أن أكتب عادة أقصر من ذلك الطريق، وبدون وسائط، عندما يكون ذلك ممكنا. الآن بعد أن تعرف كيفية كتابة وظائف، كنت جيدا على طريقك لتطوير أكبر والبرامج أكثر تعقيدا. اسمي نيت Hardison. هذا هو CS50.