ما ناتج المقطع البرمجي التالي
;int z=8,y=3,x=4,r1,r2
;(r1=z++||(!(--y<=1)&&x--!=2
;r2=y&x!=z\x+3
;(printf("r1=%d \t r2=%d"r1,r2
ارجو من لديه اجابة صحيحة للمقطع ان يفيدني بها
ما ناتج المقطع البرمجي التالي
;int z=8,y=3,x=4,r1,r2
;(r1=z++||(!(--y<=1)&&x--!=2
;r2=y&x!=z\x+3
;(printf("r1=%d \t r2=%d"r1,r2
ارجو من لديه اجابة صحيحة للمقطع ان يفيدني بها
السلام عليكم
يرجى تنسيق الكود ليتثنى له الظهور بشكل جيد
وذلك كما فى الصورة الآتية داخل الوضع المتطور للمشاركة
يتم تظليل الكود ثم الضغط على أيقونة الكود المحاطة باللون الأحمر كما فى الصورة
دمتم بود
لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق
لا إله إلا أنت سبحانك إني كنت من الظالمين
;int z=8,y=3,x=4,r1,r2
;(r1=z++||(!(--y<=1)&&x--!=2
;r2=y&x!=z\x+3
;(printf("r1=%d \t r2=%d"r1,r2وعليكم السلام
لا زال الكود غير مفهوم
قم بكتابتة في ملف نصي وارفقة في مشاركتك
مدونة تهتم بكل ما يتعلق بالحاسوب عبر مقالات حصرية
السلام عليكم
في البداية تم إسناد عبارة منطقية إلى المتغير r1 و بالتالي النتيجة النهائية ستكون 0 أو 1
r1=z++||(!(--y<=1)&&x--!=2);
y تساوي 3 إذا هذه العبارة :
--y<=1
خاطئة لأن 2 ليست أقل من 1. لكن نقيض (أو عكس) العبارة السابقة :
!(--y<=1)
يُعطي عبارة منطقية صحيحة,
x تساوي 4, إذا قيمة x تختلف عن 2 و بالتالي العبارة التالية صحيحة :
x--!=2
إذا حصلنا على :
!(--y<=1)&&x--!=2 = 1&&1 = 1
العبارة :
z++
صحيحة لأن الناتج سيكون 9 و بالتالي يختلف عن الصفر. إذا قيمة r1 ستكون :
r1 = 1|| 1 = 1
بنفس الطريقة نجد أن r2 = 1
السؤال المطروح الآن هو : لماذا لم تتغير قيمة x و y عند الإنتهاء من تنفيذ العبارة المنطقية الأولى ؟, انظر الكود :
#include<stdio.h>
int main() {
int z=8,y=3,x=4,r1,r2;
printf("x = %d \t y = %d \t z = %d\n",x,y,z);
r1=z++||(!(--y<=1)&&x--!=2);
printf("r1=%d\n",r1);
printf("x = %d \t y = %d \t z = %d\n",x,y,z);
r2= y&x!=z/x+3 ;
return 0;
}تحياتي.
وعليكم السلام اخي
مشكور على المساعدة
لكن الكود الخامس لم افهمه جيدا فكيف اعطيت x قيمة 1 وy كذلك
لماذا لم تقل بأن x--=3 , y--=2
اصطلح المبرمجون على أن يكون الصفر يساوي false و ما عدا الصفر يساوي true و ذلك لأن جميع أنواع البيانات تأخذ قيم على حسب حجمها و هذه القيم ليست الصفر و الواحد فقط !.
انظر المثال :
#include<stdio.h>
int main() {
int x = -5;
while(x) {
printf("Ok ==> %d\n",x);
x++;
}
return 0;
}تحياتي.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…