مشاهدة تغذيات RSS

مدونة روح سامية البرمجية

كيف تسأل

تقييم هذا المقال
السلام عليكم و رحمة الله و بركاته

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

لنتخيل أن محادثة حدثت في منتدى من المنتديات بين بسوم و روح سامية الذي صادف أن كان مستعدا للمساعدة
لاحظوا أيضا فيم يفكر روح سامية حين يقرأ كلام بسوم

إقتباس الرسالة الأصلية كتبت بواسطة بسوم
السلام عليكم
كيف أحوالكم يا شباب ؟

عندي واجب سي++ و أحتاج مساعدة الله يخليكم

write a program that takes a maximum of 6 positive numbers from the user. after that, it calculates the average of the input numbers. if the user enters a zero or a negative number, the program stops taking input and calculates and prints the average of input numbers not including the negative number.

example of output
1 2 4 5 7 8
average = 4.5

another example of output
1 2 4 -1
average = 2.3333333

مشكورييييييييييييين

إقتباس الرسالة الأصلية كتبت بواسطة روح سامية
<كل كلامه عربي إلا السؤال ، ناسخ لي السؤال كله نسخ و يمكن حتى ما قراه tired>

و عليكم السلام
يالحبيب ترى ما نفهم انجليش
ترجم و إن شاء الله نقدر نساعد

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

أتمنى تردي بسرعة

إقتباس الرسالة الأصلية كتبت بواسطة روح سامية
<ما شاء الله عليه فاهم السؤال لكن كأنه يبغي الحل جاهز ، حتى ما كتب برنامج ermm>

أهلا أخي العزيز
بحسب سؤالك فهناك عدة نقاط :
  1. طلب ستة أعداد موجبة
  2. إيقاف طلب الأعداد إذا كان العدد صفرا أو سالب
  3. طباعة متوسط الأعداد المدخلة

ما هي النقطة التي لم تعرفها و ما هي النقاط التي تعرفها

إقتباس الرسالة الأصلية كتبت بواسطة بسوم
إدخال الأرقام أستخدم فيه cin صح ؟
عادي أقدر أدخل الأعداد واحد واحد , أحطهم في مصفوفة لكن كيف أوقف الإدخال إذا كان العدد سالب ؟
هذا برنامجي :
كود:
#include <iostream> using namespace std; int main () {
int num[6]; cin >> num[0]; cin >> num[1]; cin >> num[2]; cin >> num[3]; cin >> num[4]; cin >> num[5]; cout << "average = " << (num[0]+num[1]+num[2]+num[3]+num[4]+num[5])/6 << endl;
}
المشكلة أن برنامجي ما يوقف إذا كان العدد صفر أو سالب
أيش أسوي confused

إقتباس الرسالة الأصلية كتبت بواسطة روح سامية
<أخيرا عرفنا ما هي المشكلة ، ما قلت من قبل و خلصتنا tongue>

مرحبا مرة أخرى
يعني مشكلتك في التوقف عند الصفر و السالب
لا مشكلة
أولا الأفضل أن تغير صيغة البرنامج
استخدم حلقة for لطلب المدخل
مثلا :
كود:
for (int i=0;i<6;i++) {
cin >> num[i];
}
مو أحسن wink

إقتباس الرسالة الأصلية كتبت بواسطة بسوم
أختي برنامجك ما يوقف إذا كان العدد صفر أو سالب
لازم يوقف

إقتباس الرسالة الأصلية كتبت بواسطة روح سامية
<تعبنا هذا ، حبة حبة شفيه مستعجل mad>

أهلا أخي العزيز smile << لازم نبتسم بعد شنسوي
لا تستعجل أنت حط الحلقة و بعدين نجي للنقاط الثانية
كما ذكرنا هناك ثلاث نقاط و الأولى هي إدخال الأعداد
خلينا نسويها بشكل تمام و لا تخاف

إقتباس الرسالة الأصلية كتبت بواسطة بسوم
طيب طيب هذا البرنامج بعد التعديل
كود:
#include <iostream> using namespace std; int main () {
for (int i=0;i<6;i++) {
cin >> num[i];
} cout << "average = " << (num[0]+num[1]+num[2]+num[3]+num[4]+num[5])/6 << endl;
}
كيف أوقف إذا العدد صفر أو سالب ؟

إقتباس الرسالة الأصلية كتبت بواسطة روح سامية
<حلو حلو gooood>

تمام
الآن تقدر تحط if داخل الحلقة
إذا كان العدد أقل أو يساوي صفر اطلع من الحلقة

إقتباس الرسالة الأصلية كتبت بواسطة بسوم
يعني تقصدي :
كود:
for (int i=0;i<6;i++) {
cin >> num[i]; if (num[i] <= 0) {
اطلع من الحلقة
}
}
طيب كيف أطلع من الحلقة ؟

إقتباس الرسالة الأصلية كتبت بواسطة روح سامية
<تمام تمام smile>

أمر break يطلع من الحلقة
يعني
كود:
if (num[i] <= 0) {
break;
}

إقتباس الرسالة الأصلية كتبت بواسطة بسوم
طيب سويناها
الآن البرنامج يطلع من الحلقة
كود:
for (int i=0;i<6;i++) {
cin >> num[i]; if (num[i] <= 0) {
break;
}
}
لكن مع ذلك في مشكلة ثانية
نتيجة المتوسط خطأ ؟؟؟

إقتباس الرسالة الأصلية كتبت بواسطة روح سامية
حلو
الحين سو نفس الشيء على المجموع
احفظ المجموع في متغير قبل ما تقسمه
يعني بدل ما تكتب :
كود:
cout << (num[0]+num[1]+num[2]+num[3]+num[4]+num[5])/6;
أكتب :
كود:
int sum=0; for (int j=0;j<6;j++) {
sum+=num[j];
} cout << sum/6;

إقتباس الرسالة الأصلية كتبت بواسطة بسوم
عدلنا البرنامج زي ما قلتي
لكن نتيجة المتوسط بعدها خطأ confused

إقتباس الرسالة الأصلية كتبت بواسطة روح سامية
تمام تمام
الآن بدل ما تكتب
كود:
for (int i=0;i<=6;i++)
في أول حلقة
أكتب
كود:
int i; for (i=0;i<=6;i++)
يعني أعلن i قبل for
و آخر شيء بدل ما تقسم على 6 في أمر الطباعة
اقسم على i لأن i هو عدد المدخلات من المستخدم
المفترض السؤال انحل هنا

إقتباس الرسالة الأصلية كتبت بواسطة بسوم
أخيييييييييرا
مشكورة أخت روح سامية على المساعدة
هذا البرنامج النهائي لمن أراد الاستفادة (لكني مليت من التلوين)
كود:
int main () {
int i=0; for (i=0;i<6;i++) {
cin >> num[i]; if (num[i] <= 0) {
break;
}
} int sum=0; for (int j=0;j<6;j++) {
sum+=num[i];
} cout << "average = " << sum/i << endl;
}

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

تذكروا دائما : أذكروا نقاط البرنامج ثم المشكلة ثم اكتبوا برنامجكم
أتمنى أن تكونوا قد استفدتم
تحياتي
روح سامية

أرسل "كيف تسأل" إلى Facebook أرسل "كيف تسأل" إلى del.icio.us أرسل "كيف تسأل" إلى StumbleUpon أرسل "كيف تسأل" إلى Google

تم تحديثة 26-07-2011 في 07:52 بواسطة روح سامية

الكلمات الدلالية (Tags): غير محدد تعديل الدالاّت
التصنيفات
برمجة

التعليقات

  1. الصورة الرمزية الخاصة بـ axzablog
    شكرا شكرا شكرا على الإبداع goooodوالتسلسل في الخطواتcool
    فعلا طريقة التعلم من عن طريق الوقوع في الخطأ أكثر من مرة وإيجاد الحلول في رأيي هي أفضل طريقة للتعلم في البرمجة
    لأنه مستحيل تنساها بسرعة وأيضا مستحيل يبدأ الشخص بتعلم أي لغة برمجة بدون مايقع في أخطاء وإلا لما وجدت نافذة التنبيه بالأخطاء
    أسفل كل IDE << ياهوه وش الإختصارات ذيeek
    IDE=Integrated Development Envirnoment

    أخيراً كل الشكر والتقدير على ما تقدمه من جهود وأتمنى لك التوفيق دائماً في الدنيا والآخرة
  2. avatar7145_4
    العفو أهلا أخي العزيز و يسعدني وجودك هنا
    أتمنى أن تستفيدوا و إن شاء الله أعود إليكم إذا واتتني فرصة gooood

    تخياتي
    روح سامية
  3. الصورة الرمزية الخاصة بـ ahmadz
    هههه صايره معك من قبل ^^

    كلامك صحيح وان شاء الله سوف يتم التنفيذ واستمتعت في قراءه الموضوع

    بتوفيق والسلام
  4. avatar7145_4
    إقتباس الرسالة الأصلية كتبت بواسطة ahmadz
    هههه صايره معك من قبل ^^

    كلامك صحيح وان شاء الله سوف يتم التنفيذ واستمتعت في قراءه الموضوع

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

    لم أعرف ما الذي تقصد أنه حصل معي
    هل هو السؤال و طريقته أم في نهاية المحادثة "صدقني أنا ماني بنت"

    على أية حال الثنتين حصلوا معي مرات أليمة و عديدة biggrin

    تشكر على الرد و يسرني أن الموضوع أعجبك

    تحياتي
    روح سامية
  5. الصورة الرمزية الخاصة بـ ahmadz
    هلا اخوي

    ما اقصده ان القصه او الحادثه او الدرس ^^ الي كتبته فوق صايره معك من قبل واضح من صياغه الموضوع

    بنت ؟! كيف استنتجت اني اكلمك كابنت ؟!

    كل كلامي معك بصيغه مذكر // انا كتبت:معك >>> (معكي )... ^^

    اهم شيئ لا تقول من كلمه (صايره ) biggrin

    صايره =present perfect
    صاير =present
    فهمت شيئ ^^

    واخيرا احييك على روحك الرياضيه العاليه gooood

    بتوفيق والسلام
  6. avatar7145_4
    السؤال لم يحصل معي مباشرة لكن هو من بنات أفكاري
    ما حصل معي أني واجهت الكثير من الأسئلة بهذا الشكل
    يعني واحد يسأل سؤال بدون ما يكتب برنامج
    و إذا سألناه أين برنامجك حتى لو ما يشتغل بالشكل المطلوب يقول ما اشتغل بدون ما يحطه

    تحياتي أخي العزيز
    روح سامية
    تم تحديثة 31-05-2011 في 04:55 بواسطة روح سامية
  7. الصورة الرمزية الخاصة بـ ahmadz
    اها

    ولكن اغلب الناس ما تضع البرنامج حتى ما تنسرق الفكره او اسلوب البرنامج >>> الي يشوفه كانه يخترع نووي ^^

    ولكن لو ارسل رساله خاصه مع البرنامج لك او لغيرك ليساعده كان ارتاح من البدايه وريحكم ^^

    على العموم شكرا لك على ردك بتوفيق والسلام
  8. الصورة الرمزية الخاصة بـ Frost Dragon
    شكرا على المقالة الرائعة التي ستفيد المبرمجين المبتدئين
    بانتظار جديدكgooood
  9. avatar7145_4
    العفو أهلا أخي العزيز فهد الجليد
    أتساءل إن كنت من هؤلاء المبرمجين المبتدئين rolleyes

    تحياتي
    روح سامية

مكسات على ايفون  مكسات على اندرويد  Rss  Facebook  Twitter