قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

almoflehy
:: مهندس جيد ::
تاريخ التسجيل: Apr 2007
الدولة: YEMEN
المشاركات: 252
نشاط [ almoflehy ]
قوة السمعة:0
قديم 19-08-2011, 12:11 AM المشاركة 1   
افتراضي مساعدة: فحص تساوي المصفوفات في برنامج MikroC Twitter FaceBook Google+



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

اخواني الكرام هل هناك طريقة لفحص تساوي مصفوفتين في برنامج MikroC دون فحص كل عنصر على حده اي فحص كامل المصفوفة، فمثلا عندي المصفوفتان
كود:
matrix1[]={1,3,4,6}
    matrix2[]={1,3,7,6}
واريد فحص التساوي بينهما هكذا
كود:
if(matrix1[]==matrix2[])
ولكن لم ينفذ الامر واعطى البرنامج خطأ

ولا اريد عمل فحص التساوي لكل عنصر على حده مثل هذا
كود:
if(matrix1[0]==matrix2[0] && matrix1[1]==matrix2[1] && matrix1[2]==matrix2[2] && matrix1[3]==matrix2[3])
ارجو ممن كانت لديه اي فكرة للمساعدة الا يبخل علينا
وشكرا جزيلا.

اعلانات

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 19-08-2011, 05:23 AM المشاركة 2   
افتراضي


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

اخواني الكرام هل هناك طريقة لفحص تساوي مصفوفتين في برنامج MikroC دون فحص كل عنصر على حده اي فحص كامل المصفوفة، فمثلا عندي المصفوفتان
كود:
matrix1[]={1,3,4,6}
    matrix2[]={1,3,7,6}
واريد فحص التساوي بينهما هكذا
كود:
if(matrix1[]==matrix2[])
ولكن لم ينفذ الامر واعطى البرنامج خطأ

ولا اريد عمل فحص التساوي لكل عنصر على حده مثل هذا
كود:
if(matrix1[0]==matrix2[0] && matrix1[1]==matrix2[1] && matrix1[2]==matrix2[2] && matrix1[3]==matrix2[3])
ارجو ممن كانت لديه اي فكرة للمساعدة الا يبخل علينا
وشكرا جزيلا.
السلام عليكم ورحمة الله وبركاته

تمنياتي بالتوفيق لك أخي الكريم

لنفترض أن لديك مصفوفتين كل مصفوفة مكونة من مئة عنصر وتريد أن تقارن بينهما بحيث تفحص هل كل عنصر يساوي العنصر المقابل أم لا ..
ومن أسهل الطرق لذلك استخدام جملة for كما بالمثال التالي :

كود:
for(x=0;x<100;x++) { if(matrix_1[x]==matrix_2[x]){ equivalent=1;} else { equivalent=0; break;} }
في هذا المثال تخيل معي ماسيحدث أول مرة يتم فيها تنفيذ جملة for الـ x قيمتها بصفر وبالتالي سيختبر هل العنصر الذي ترتيبه صفر في المصفوفة الأولى يساوي العنصر الذي ترتيبه صفر في المصفوفة الثانية ..إذا كان نعم يجعل متغير معين يساوي واحد هذا المتغير يدل على التساوي اسمه equivalent .

وإن كانو غير متساويين تكون قيمة المتغير بصفر .
وبعد ذلك تصبح x تساوي واحد فيختبر مرة أخرى لكن العنصر الذي ترتيبه واحد في كلا المصفوفتين وبعد ذلك العنصر الثاني والثالث وهكذا إلى نهاية المصفوفة .. إذا كانت كل العناصر متساوية فبالتأكيد قيمة المتغير equivalent ستساوي واحد أما في حالة أي عنصر من عناصر المصفوفة كان لايساوي العنصر المقابل له في المصفوفة الأخرى حينها المتغير equivalent سيساوي صفر وليس هذا فقط بل لن نكمل المقارنة لباقي العناصر وسنخرج من جملة for باستخدام الأمر break كما هو واضح في الكود السابق ..
وبعد كتابة الكود السابق تستطيع أن تختبر قيمة المتغير equivalent إذا كانت بواحد أي المصفوفتان متساويتان نفذ كذا وإذا كانت بصفر نفذ كذا ...

أرجو أن تكون اتضحت الفكرة لديك ...


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

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 19-08-2011, 05:27 AM المشاركة 3   
افتراضي


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

اخواني الكرام هل هناك طريقة لفحص تساوي مصفوفتين في برنامج MikroC دون فحص كل عنصر على حده اي فحص كامل المصفوفة، فمثلا عندي المصفوفتان
كود:
matrix1[]={1,3,4,6}
    matrix2[]={1,3,7,6}
واريد فحص التساوي بينهما هكذا
كود:
if(matrix1[]==matrix2[])
ولكن لم ينفذ الامر واعطى البرنامج خطأ

ولا اريد عمل فحص التساوي لكل عنصر على حده مثل هذا
كود:
if(matrix1[0]==matrix2[0] && matrix1[1]==matrix2[1] && matrix1[2]==matrix2[2] && matrix1[3]==matrix2[3])
ارجو ممن كانت لديه اي فكرة للمساعدة الا يبخل علينا
وشكرا جزيلا.
السلام عليكم ورحمة الله وبركاته

تمنياتي بالتوفيق لك أخي الكريم

لنفترض أن لديك مصفوفتين كل مصفوفة مكونة من مئة عنصر وتريد أن تقارن بينهما بحيث تفحص هل كل عنصر يساوي العنصر المقابل أم لا ..
ومن أسهل الطرق لذلك استخدام جملة for كما بالمثال التالي :

كود:
for(x=0;x<100;x++)
{
 if(matrix_1[x]==matrix_2[x]){ equivalent=1;}
 else { equivalent=0; break;}


}
في هذا المثال تخيل معي ماسيحدث أول مرة يتم فيها تنفيذ جملة for الـ x قيمتها بصفر وبالتالي سيختبر هل العنصر الذي ترتيبه صفر في المصفوفة الأولى يساوي العنصر الذي ترتيبه صفر في المصفوفة الثانية ..إذا كان نعم يجعل متغير معين يساوي واحد هذا المتغير يدل على التساوي اسمه equivalent .

وإن كانو غير متساويين تكون قيمة المتغير بصفر .
وبعد ذلك تصبح x تساوي واحد فيختبر مرة أخرى لكن العنصر الذي ترتيبه واحد في كلا المصفوفتين وبعد ذلك العنصر الثاني والثالث وهكذا إلى نهاية المصفوفة .. إذا كانت كل العناصر متساوية فبالتأكيد قيمة المتغير equivalent ستساوي واحد أما في حالة أي عنصر من عناصر المصفوفة كان لايساوي العنصر المقابل له في المصفوفة الأخرى حينها المتغير equivalent سيساوي صفر وليس هذا فقط بل لن نكمل المقارنة لباقي العناصر وسنخرج من جملة for باستخدام الأمر break كما هو واضح في الكود السابق ..
وبعد كتابة الكود السابق تستطيع أن تختبر قيمة المتغير equivalent إذا كانت بواحد أي المصفوفتان متساويتان نفذ كذا وإذا كانت بصفر نفذ كذا ...

أرجو أن تكون اتضحت الفكرة لديك ...


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


almoflehy
:: مهندس جيد ::
تاريخ التسجيل: Apr 2007
الدولة: YEMEN
المشاركات: 252
نشاط [ almoflehy ]
قوة السمعة:0
قديم 20-08-2011, 01:27 AM المشاركة 4   
افتراضي


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

تمنياتي بالتوفيق لك أخي الكريم

لنفترض أن لديك مصفوفتين كل مصفوفة مكونة من مئة عنصر وتريد أن تقارن بينهما بحيث تفحص هل كل عنصر يساوي العنصر المقابل أم لا ..
ومن أسهل الطرق لذلك استخدام جملة for كما بالمثال التالي :

كود:
for(x=0;x<100;x++)
{
 if(matrix_1[x]==matrix_2[x]){ equivalent=1;}
 else { equivalent=0; break;}


}
في هذا المثال تخيل معي ماسيحدث أول مرة يتم فيها تنفيذ جملة for الـ x قيمتها بصفر وبالتالي سيختبر هل العنصر الذي ترتيبه صفر في المصفوفة الأولى يساوي العنصر الذي ترتيبه صفر في المصفوفة الثانية ..إذا كان نعم يجعل متغير معين يساوي واحد هذا المتغير يدل على التساوي اسمه equivalent .

وإن كانو غير متساويين تكون قيمة المتغير بصفر .
وبعد ذلك تصبح x تساوي واحد فيختبر مرة أخرى لكن العنصر الذي ترتيبه واحد في كلا المصفوفتين وبعد ذلك العنصر الثاني والثالث وهكذا إلى نهاية المصفوفة .. إذا كانت كل العناصر متساوية فبالتأكيد قيمة المتغير equivalent ستساوي واحد أما في حالة أي عنصر من عناصر المصفوفة كان لايساوي العنصر المقابل له في المصفوفة الأخرى حينها المتغير equivalent سيساوي صفر وليس هذا فقط بل لن نكمل المقارنة لباقي العناصر وسنخرج من جملة for باستخدام الأمر break كما هو واضح في الكود السابق ..
وبعد كتابة الكود السابق تستطيع أن تختبر قيمة المتغير equivalent إذا كانت بواحد أي المصفوفتان متساويتان نفذ كذا وإذا كانت بصفر نفذ كذا ...

أرجو أن تكون اتضحت الفكرة لديك ...


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

شكرا لك استاذ احمد سمير على هذه الطريقة السهلة والفعالة وما شاء الله شرح واضح ومفصل ولقد اتضحت الصورة لدي

بارك الله فيك وزادك من علمه ووفقك لما يحبه ويرضاه

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 08:52 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025