الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار يتعلق ب continue

مغلق
بدأه allko في 5 نوفمبر 2005 · 6 رد · 547 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي homework مفاده هو عمل برنامج يستقبل من المستخدم رقما ما

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

فاذا ادخل المستخدم الرقم 3 فان البرنامج يطبع الشكل التالي (تقريبا هكذا...)

    **   
  ****  
******

حسنا قمت بعمل البرنامج وتاكدت منه وهو يعمل 100% ...

لكن حينما اردت ان اضيف له restriction على الارتفاع المدخل بحيث يكون بين 1 و 30

ظهرت مشكلة بسيطة...فانا اريد انه اذا ادخل المستخدم القيمة 32 مثلا تظهر له رسالة

تذكره بالمدى المسموح به(1 الى 30) ثم يقوم بادخال القيمة الصحيحة فيعمل البرنامج

#include <iostream.h>
main ()

	int n,i,y=0,x,c,e;
  
	for(e=1;e<=1;e++)
    cout<<"How high would you like the pyramid?:\n";
	cin>>n;
	x=n;
	if(n<1 || n>30)
	{
	cout<<"it must be between 1 & 30 , understood?"<<endl;
	continue;
	}
	else
	{
هذا القسم هو الجزء الحيوي في البرنامج وقد تاكدت منه وهو يعمل 100%
        for(c=1;c<=n;++c)
  {
           x=x-1;
           y=y+1;
           for(i=1;i<=x;++i)
     {cout<<" ";}
           for(i=1;i<=y;++i)
     {cout<<"**";}
           cout<<endl;
  }
	}
return 0;
}

ما قمت به هو استخدام if ثم طباعة شاشة الخطا وبعدها مباشرة كلمة continue

بحيث بعد ظهور الرسالة التذكيرية يرجع البرنامج للعمل من البداية وكان شيئا لم يكن

وحيث ان كلمة continue لا تستخدم الا ضمن الـ loops لذلك اضطررت لعمل loop وهمية

بدورة واحدة ( من 1 الى 2) باستخدام for لكن البرنامج اظهر الخطا التالي illegal continue

(لاحظ انني اذا حذفت for الاولى(الوهمية) وحذفت if (وتابعتها else) فان البرنامج يعمل دون مشاكل

السؤال هو: ما هو موقع كلمة continue من البرنامج ؟

اي : اين استطيع ان استخدمها لتفي بالغرض؟

مع ملاحظة عدم استخدام اي كلمة دونها لانني لم ادرس اي كلمة اخرى بنفس هذا الغرض...

والسلام مسك الختام

#2

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

أدى الكود بدون إستخدام continue حاول تعملة reverse وات هتفهمة

int i,j,u=0;
 	 for(i=1;i<=7;i+=2)
 	 {
    int h=4;
    //Console.WriteLine();
    // System.out.print(" ");
 	 
    for(h-=1;h>0;h--)
    {
   	 u=h;
   	 if(u>=h)
      cout<<"\t";
   	 
    }
    for(j=0;j<i;j++)
    {
   	 cout<<" *";
    }
    
    if(i%1==0)
   	 cout<<" ";
    u--;
 	 }

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#3

شكرا لردك

بس انا ما بعرف اي اشي بالسي بلس بلس غير الي مكتوب بالكود

يعني لسى ما اخدت الدواال...فلزلك انا ما بعرف السطرين هدول

//Console.WriteLine();

// System.out.print(" ");

شكرا على مرورك

#4

المشكلة في الكود انك وضعت for بدون وضع الأقواس { }

كلمة continue تستعمل للعودة الى بداية الـ loop بدون تنفيذ باقي الكود الموجود داخل جسم الـ loop او الـ loop body

إذا وضعت loop وهمية من 0 الى 1, فهذا لن يحل المشكلة كثيرا

الأفضل وضع متغير bool تجعله true عندما يقوم المستخدم بإدخال الرقم الصحيح .. و كمثال:

int x = 0;
bool done = false;
while( !done )
{
    cout << "enter a number between 5 and 15" << endl;
    cin >> x;
    if( x >= 5 && x <= 15 )
    {
        done = true;
    }
    else
    {
        cout << "invalid input, try again!" << endl;
    }

}
#5
Console.WriteLine();
// System.out.print(" ");

السطرين دول سيبك منهم السطر الاول دة للطباعة ع الconsole بالسى شارب والاخر كذلك بس بالجافا :)

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#6

شكرا على مساعدتكم يا شباب

تحياتي للجميع

#7
#include <iostream.h>

int main()
{

 int n,i,y=0,x,c,e;

 for(e=1;e<=1;e++)

 cout<<"How high would you like the pyramid : ";
 cin>>n;
 x=n;
 if(n<1 || n>30)
 {
   cout<<"it must be between 1 & 30 , understood?"<<endl;
 } else {
          for(c=1;c<=n;++c)
 {
   x=x-1;
   y=y+1;
          for(i=1;i<=x;++i)
    { cout<<" "; }
          for(i=1;i<=y;++i)
    { cout<<"**"; }
    cout<<endl;
  }
 }
 return 0;
}

Qnix ~ # g++ hm.cpp -o hm
Qnix ~ # ./hm
How high would you like the pyramid : 10
         **
        ****
       ******
      ********
     **********
    ************
   **************
  ****************
 ******************
********************

هذا الموضوع مغلق.

مواضيع مشابهة