Advanced Search

المحرر موضوع: مقدمة في لغة البرمجة C++  (زيارة 29931 مرات)

0 الأعضاء و 1 ضيف يشاهدون هذا الموضوع.

أبريل 23, 2005, 07:16:34 صباحاً
رد #30

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #30 في: أبريل 23, 2005, 07:16:34 صباحاً »
اخي العزيز..
الملف iostream.h هو عبارة عن مكتبة ثابتة (عكس ديناميكية) تحوي بعض الاوامر الخاصة بالادخال و الاخراج عبر الشاشة. و في امثلتنا نستخدم cin للادخال ، و cout للاخراج.

أما بالنسبة للتمارين:
1. اكتب برنامج C++ يقوم بعمل التالي:
 أ. يتلقى من المستخدم علامة طالب و يخرج نتيجته Fail او Success .
 ب. بفرض : ( A=1 ) و ( B=2 ) و ( C=3 ) . اكتب برنامجا يدخل المستخدم فيه الرقم أو الحرف و يخرج له البرنامج الحرف أو الرقم المرتبط بهذا الادخال.

2. تمرين آخر: قارن بين الجملتين if-else و switch و مزايا كل منهما على الاخرى.

و سأورد الحلول للتمرين الاول لاحقا.

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

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

أبريل 23, 2005, 07:56:22 صباحاً
رد #31

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #31 في: أبريل 23, 2005, 07:56:22 صباحاً »
جمل الحلقات في C++ .
و تعتمد في عملها على العودة الى مكان اخر في البرنامج بعد تنفيذ شرط معين أو التحقق من صحته.

و هي ثلاثة أنواع. اثنين منها مسموحة و الثالث يكون عقاب مستخدمه أن يقوم بعمل الشاي و القهوة لكل المؤسسة لمدة شهر كامل!  '<img'>

نبدأ في هذا النوع المخيف..
و هو جملة goto :
لكي تستخدم هذه الجملة يجب عليك تسمية label في احد المناطق في البرنامج قبل منطقة استخدام هذه الجملة.
و طريقة تعريف الـ label هي بكل بساطة تكتب الاسم الذي تختاره و من ثم نقطتين ( : ) .
أما لماذا لا تستخدم: فذلك لأنها تعتبر طريقة غير هيكلية للبرنامج ( Not structured ) و البرامج في هذه الايام كلها تبنى على اساس هيكلي لكي يسهل تتبعها و تقسيمها.

النوع الثاني : جملة while أو do-while :
و تستخدم لفل مجموعة من الاوامر طالما تحقق الشرط المرتبط بـ while و هي على الشكل التالي:
while(condition) statementblock
أو
do statementblock while(condition)
لاحظ التالي:
 * في الحالة الاولى لا نكتب الفاصلة المنقوطة ; بعد الجملة while أبدا و الا فقدت عملها.
 * في الحالة الثانية نكتب الفاصلة المنقوطة بعد القوس الاخير للشرط.
 * تنطبق على statementblock نفس الشروط التي ذكرناها في الجملة if
الفرق بين حالتي الجملة while هي ان الـ statementblock لا تنفذ في الحالة الاولى الا لو كان الشرط صحيح ، أما بالحالة الثانية فهي تطبق الشرط مرة واحدة في اول تنفيذ و من ثم ترجع الى الشرط فان تحقق قامت بالعمل مرة اخرى و الا خرجت من الجملة و اكملت الباقي.

* ملاحظة هامة: دائما في جمل الحلقات البرمجية و في اي لغة برمجة لا تنس ان تضع شرطا منته .. و الا دخلت في حالة infinite loop و معناها ان يضل البرنامج يقوم بالعمل الى مالانهاية.

الملف الملحق يحوي مثال عن goto و مثال عن do-while و اخر عن while
و يبقى في هذا الموضوع جملتي العزيزة for التي تحتاج الى قرنين من الزمان في وصفها الخلاب  ':p'
الحياة مزيج جميل مستعص على الادراك البشري من القوة و الحب و الكره و الضعف و لا نمسها بشيء .. بل هي من يمسنا بكل شيء و طريقنا الوحيد لتغييرها هي تغيير أنفسنا من الداخل. و هو أصعب ما يمكن لي أن أتصور حدوثه.
كل شيء في هذه الحياة قد رسم بخط أسود... و إن لم نره !

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

أبريل 23, 2005, 08:23:48 صباحاً
رد #32

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #32 في: أبريل 23, 2005, 08:23:48 صباحاً »
جملة for :
هذه الجملة تأخذ بين قوسيها ثلاثة عناصر يمكن الاستغناء عن الاول فقط:
العنصر الاول و هو تعريف متغير لاختباره في شرط الجملة. يمكن الاستغناء عن الشرط بأن يكون المتغير قد عرف في البرنامج من قبل.
العنصر الثاني: و هو شرط الجملة.
العنصر الثالث: كيفية تغير المتغير المطلوب.

تستخدم هذه الجملة لعمل تكرار لعدد معروف احيانا.

for ( vType vName; condition ; vNameChainging ) statementblock

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

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

أبريل 24, 2005, 06:36:15 صباحاً
رد #33

ابو يوسف

  • عضو خبير

  • *****

  • 10867
    مشاركة

  • مشرف اداري

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #33 في: أبريل 24, 2005, 06:36:15 صباحاً »
السلام عليكم

حل القسم الاول من التمرين الاول

أبريل 24, 2005, 06:37:58 صباحاً
رد #34

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #34 في: أبريل 24, 2005, 06:37:58 صباحاً »
هل تريدون تمرينا على الحلقات؟ ام لم تنتهوا من تمرين الـ if و الـ while بعد؟!
عندما تنتهوا من ذلك التمرين اخبروني لأرفق الاجابات النموذجية.. ':cool:'



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

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

أبريل 24, 2005, 06:41:32 صباحاً
رد #35

ابو يوسف

  • عضو خبير

  • *****

  • 10867
    مشاركة

  • مشرف اداري

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #35 في: أبريل 24, 2005, 06:41:32 صباحاً »
السلام عليكم

اخي العزيز Vipera Palestina

اتمنى اعطاءنا فرصة اطول للحل وذلك لانشغالي احيانا

ما رأيك بحلي للقسم الاول من التمرين الاول؟  '<img'>

جزاك الله عنا خير الجزاء

'<img'>

أبريل 24, 2005, 06:42:32 صباحاً
رد #36

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #36 في: أبريل 24, 2005, 06:42:32 صباحاً »
صحيح 100% ابو يوسف ':009:'

انت أول من اجاب على التمرين.

و لكن لدي تعليق: لم يكن هناك داعي للأقواس { } بعد جملة if و ذلك لأن الـ Body يحوي فقط جملة واحدة.
الحياة مزيج جميل مستعص على الادراك البشري من القوة و الحب و الكره و الضعف و لا نمسها بشيء .. بل هي من يمسنا بكل شيء و طريقنا الوحيد لتغييرها هي تغيير أنفسنا من الداخل. و هو أصعب ما يمكن لي أن أتصور حدوثه.
كل شيء في هذه الحياة قد رسم بخط أسود... و إن لم نره !

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

أبريل 24, 2005, 06:47:30 صباحاً
رد #37

ابو يوسف

  • عضو خبير

  • *****

  • 10867
    مشاركة

  • مشرف اداري

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #37 في: أبريل 24, 2005, 06:47:30 صباحاً »
السلام عليكم

جزاك الله خيرا على التصويب

وسيتم تدارك الامر مستقبلا

اصبر علي قبل ان اضع حلول الاسئلة المتبقية

'<img'>

أبريل 24, 2005, 06:52:29 صباحاً
رد #38

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #38 في: أبريل 24, 2005, 06:52:29 صباحاً »
اخواني.. هذه مجموعة من النصائح لكل من برمج برنامجا أو يبرمج برنامج أو يحب أن يبرمج برنامج في أي يوم من الايام:

* اجعل كودك ( اوامر برنامجك ) أصغر ما يمكن
* اذا كان حجم الكود كبيرا و لكن يعمل بشكل اسرع .. فهذا أفضل من كود صغير و بطيء ( طبعا ستسألوني كيف صغير و بطيء و كبير و سريع ) يعتمد هذا على المكتبات التي تستخدمها في البرمجة و على نوع الأوامر المستخدمة.
* نظم عملك في البرنامج بأقصى حد ممكن.
* لا تبخل بالتعليقات مهما كانت ( كل ما كثرت كل ما كان افضل لمن يتتبع البرنامج من بعدك و قد يكون انت)
* حاول - قدر الامكان - ان تجعل الكود مرتب بحيث يسهل الاضافة و التعديل عليه ( حتى لو كان في نسخته النهائية.

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

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

أبريل 24, 2005, 06:53:22 صباحاً
رد #39

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #39 في: أبريل 24, 2005, 06:53:22 صباحاً »
خذ راحتك ابو يوسف.. '<img'>  تقبل تحياتي..
الحياة مزيج جميل مستعص على الادراك البشري من القوة و الحب و الكره و الضعف و لا نمسها بشيء .. بل هي من يمسنا بكل شيء و طريقنا الوحيد لتغييرها هي تغيير أنفسنا من الداخل. و هو أصعب ما يمكن لي أن أتصور حدوثه.
كل شيء في هذه الحياة قد رسم بخط أسود... و إن لم نره !

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

أبريل 24, 2005, 09:31:08 صباحاً
رد #40

ابو يوسف

  • عضو خبير

  • *****

  • 10867
    مشاركة

  • مشرف اداري

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #40 في: أبريل 24, 2005, 09:31:08 صباحاً »
السلام عليكم

وهذا هو حل الجزء الثاني من التمرين الاول

 ':cool:'

أبريل 24, 2005, 10:24:59 مساءاً
رد #41

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #41 في: أبريل 24, 2005, 10:24:59 مساءاً »
ممتاز ابو يوسف.. حل نموذجي.. 100%
الحياة مزيج جميل مستعص على الادراك البشري من القوة و الحب و الكره و الضعف و لا نمسها بشيء .. بل هي من يمسنا بكل شيء و طريقنا الوحيد لتغييرها هي تغيير أنفسنا من الداخل. و هو أصعب ما يمكن لي أن أتصور حدوثه.
كل شيء في هذه الحياة قد رسم بخط أسود... و إن لم نره !

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

أبريل 27, 2005, 01:23:53 مساءاً
رد #42

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #42 في: أبريل 27, 2005, 01:23:53 مساءاً »
درس اليوم خاص بأمرين يستخدمان بكثرة في جمل الحلقات و اتخاذ القرار ، الجملتان هما break و الجملة continue :

قد كنا استخدمنا الجملة break من قبل في الأمثلة الخاصة بـ switch . و قد كنا نستخدمها للخروج النهائي من الحلقات أو الجمل الخاصة باتخاذ القرار

أما الفرق بينها و ببين الجملة continue فهو يكمن في ان الثانية تستخدم في الحلقات التكرارية للخروج من المرحلة الحالية و العودة الى الشرط الاصلي.

في المثال الملحق نلاحظ أنه في الجملة break يخرج البرنامج فوريا من الحلقة for عند الوصول الى الرقم 5 . أما في الجملة continue فهو يقفز عن المرحلة برمتها و يكمل التنفيذ فيما بعد.
الحياة مزيج جميل مستعص على الادراك البشري من القوة و الحب و الكره و الضعف و لا نمسها بشيء .. بل هي من يمسنا بكل شيء و طريقنا الوحيد لتغييرها هي تغيير أنفسنا من الداخل. و هو أصعب ما يمكن لي أن أتصور حدوثه.
كل شيء في هذه الحياة قد رسم بخط أسود... و إن لم نره !

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

أبريل 29, 2005, 10:09:35 صباحاً
رد #43

ابو يوسف

  • عضو خبير

  • *****

  • 10867
    مشاركة

  • مشرف اداري

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #43 في: أبريل 29, 2005, 10:09:35 صباحاً »
السلام عليكم

اخي الكريم Vipera Palestina

انا الان اصارع البرنامج الذي يوضح عمل for

ما رأيك لو قمت بشرح ذلك البرنامج بشيء من التفصيل

وجزاك الله كل خير

'<img'>

أبريل 29, 2005, 10:33:08 صباحاً
رد #44

ابو يوسف

  • عضو خبير

  • *****

  • 10867
    مشاركة

  • مشرف اداري

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #44 في: أبريل 29, 2005, 10:33:08 صباحاً »
السلام عليكم

اظن ان الشرط يجب ان يكون:

x<4

أليس كذلك؟