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

ألغاز برمجية

بدأه kenham في 19 يناير 2014 · 6 رد · 1,596 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

هذه بعض الألغاز البرمجية البسيطة بعضها من إعدادي و بعضها منقول أرجو أن تنال إعجاكم

 

المطلوب برمجة دوال تقوم بما يلي

 

1 معرفة إن كان رقمان متساويان من دون استعمال '='

 

 2 ضرب عددين من دون استعمال '*'

 

3 حساب  A^b من دون استعمال '^'

 

 

سلام,,,,,,

#2

بما أن هذا قسم الخوارزميات لن أضع الكود

اقتباس

1 معرفة إن كان رقمان متساويان من دون استعمال '='

 حاصل طرحهما صفر

اقتباس
 

 2 ضرب عددين من دون استعمال '*'

لضرب x بـ y

نقوم بوضع متغير S=0 ونقوم بزيادة s  بمقدار x عدداً y من المرات

 

اقتباس

3 حساب  A^b من دون استعمال '^'

نقوم بوضع متغير S=1 ونقوم بضرب s  بمقدار A عدداً B من المرات

ولكن من أجل b عدد صحيح فقط .

 

بالتوفيق

#3

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

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#4

أهلاً بأبي أحمد ,

حسب لغة البرمجة التي ستستخدمها سيكون هناك الكثير من الطرق

مثلاً في C (للأعداد الصحيحة )

if(a-b){//here a!=b }else{//here a==b}

أما في جافا مثلا  لا يمكننا وضع عدد صحيح كمتغير boolean لذلك يمكننا كتابة ما يلي

للأعداد الكسرية

if( a-b<0.0001 &&a-b>-0.0001 ){   }

وللأعداد الصحيحة

if( a-b<1 &&a-b>-1 ){   }

وهكذا نتجنب إشارة المساواة ==

#5
اقتباس

 

مثلاً في C (للأعداد الصحيحة )

if(a-b){//here a!=b }else{//here a==b}

 

هذا صحيح يمكننا فعل ذلك لكن من الأفضل أن نكتب:

if a>b
{
//here a!=b   
}
else
{
if a<b  
{  
  //here a==b
}
else
{
//here a==b
}
}

أما بالنسبة للضرب و الأس فطريقنك تصلح إن كنا نعمل في مجموعة الأعداد الصحيحة فقط,

 

يوجد طرائق أخري لحساب الناتج في مجموعة الأعداد الحقيقية من دون جمل تكرارية

 

سلام

تم تعديل هذه المشاركة بواسطة kenham في 20 يناير 2014 في 11:39

#6

إن كانت المشكلة في ألا نستعمل الإشارة * فانظر إلى الكود التالي الذي يقوم بالعملية a*b

c=a/(1/b);

وبالنسبة للرفع لقوة

c=exp(b*log(a));

بالمناسبة في بايثون عملية الرفع لقوة هي **  وليست ^ كما أن العملية ^ في C هي XOR وليست رفع لقوة  .. وبالتالي (حسب نص سؤالك ) من المسموح أن نكتب

c=pow(a,b);

 

والله ولي التوفيق

1
#7

ممتاز أخي أنت بارع جدا و يشرفني التواجد مع أعضاء بمثل مهارتك تقبل تحياتي

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