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

for loop متى ادخل على اللوب(فور) الداخليه بعدين ارجع(فور) للخارجيه

بدأه fawaz2004 في 25 ديسمبر 2011 · 4 رد · 727 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لغه السي..

لما يكون عندي for loop داخليه وخارجيه ومطلوب السؤال اطلع output كيف اعرف انو لازم ادخل على اللوب الداخليه بعدين اخرج على اللوب الداخليه (كيف طريقه الحل)

او لما يكون عندي بريك او كونتنيو اذا كان عندي شرط

وجزيتم خيرا :dry:..

#2
fawaz2004 كتب:

لغه السي..

لما يكون عندي for loop داخليه وخارجيه ومطلوب السؤال اطلع output كيف اعرف انو لازم ادخل على اللوب الداخليه بعدين اخرج على اللوب الداخليه (كيف طريقه الحل)

او لما يكون عندي بريك او كونتنيو اذا كان عندي شرط

وجزيتم خيرا :dry:..

حطلنا السؤال اخي, لاني بصراحة مش فاهم عليك !

#3
fawaz2004 كتب:

لغه السي..

لما يكون عندي for loop داخليه وخارجيه ومطلوب السؤال اطلع output كيف اعرف انو لازم ادخل على اللوب الداخليه بعدين اخرج على اللوب الخارجيه (كيف طريقه الحل)

او لما يكون عندي بريك او كونتنيو اذا كان عندي شرط

وجزيتم خيرا :dry:..

مثلا..

#include <stdio.h>

int main() {

int a[6],b[3],k,j=0;

printf("Enter 6 integer values >");

for(k=0;k<=5;k=k+2) {

scanf("%d%d",&a[k],&b[j]);

j++;

}

for(k=0;k<=2;k++) {

for (j=0;j<=4;j=j+2) {

if(b[k]>=a[j]) {

a[j+1]=b[k];

b[k]=a[j];

break;

}

}}

j=0;

for(k=1;k<=6;k=k+2) {

printf("%d\t%d\n",a[k],b[j]);

j++;

}

return 0;}

input typed by the user:

43 16 35 39 14 47

47 14

39 35

16 43

<B>البرنامج مع حله

ماني فاهمه كثير ..

وشكرا...<BR style="PAGE-BREAK-BEFORE: always; mso-special-character: line-break" clear=all></B>

#4

أخى الكريم انظر نتيجة الكود

    int a[6]={0},b[3] = {0},k,j=0;

post-247365-060566000 1324916362_thumb.p

واﻵن بعد تنفيذ الكود:

printf("Enter 6 integer values : ");
    for(k=0; k<=5; k=k+2)
    {
        scanf("%d%d",&a[k],&b[j]);
        j++;
    }

ستكون البيانات كما يالى فى المتغيرات

post-247365-047216600 1324916510_thumb.p

وبعد تنفيذ الكود التالى وعند تحقق الشروط فانة سيحاول نقل البيانات كالتالى والعكس

 for(k=0; k<=2; k++)
    {
        for (j=0; j<=4; j=j+2)
        {
            if(b[k]>=a[j])
            {
                a[j+1]=b[k];
                b[k]=a[j];
                break;
            }
        }
    }

post-247365-094638400 1324917445_thumb.p

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

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

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

تحياتى العطرة والله الموفق.

المرفقات
first.pngScreenshot-2.pngScreenshot-4.png

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#5

شكرا لك ..

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…