الفرق بين المراجعتين لصفحة: «Algorithms/opposite signs»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التحقق من كون رقمين صحيحين يحملان إشارتين متعاكستين}}</noinclude> تتحقّق هذه الخوار...' |
لا ملخص تعديل |
||
سطر 2: | سطر 2: | ||
تتحقّق هذه الخوارزمية ممّا إذا كان رقمان صحيحان يمتلكان إشارتين مختلفتين دون استخدام أيٍّ من العوامل الرياضية. | تتحقّق هذه الخوارزمية ممّا إذا كان رقمان صحيحان يمتلكان إشارتين مختلفتين دون استخدام أيٍّ من العوامل الرياضية. | ||
لنفترض أنّ x و y هما عددان صحيحان. يأخذ البت الخاص بالإشارة القيمة <code>1</code> إذا كان العدد سالبًا، والقيمة <code>0</code> إذا كان العدد موجبًا. يمكن استخدام <code>XOR</code> للتحقق من اختلاف الإشارة بين العددين، فإن كانت الإشارتان مختلفتين فإنّ نتيجة المقارنة ستكون تعيين القيمة <code>1</code> للبت الخاص بالإشارة، بمعنى أنّ مقارنة <code>x</code> و <code>y</code> باستخدام <code>XOR</code> سيعطي عددًا سالبًا إذا حمل العددان إشارتين سالبتين. | لنفترض أنّ x و y هما عددان صحيحان. يأخذ البت الخاص بالإشارة القيمة <code>1</code> إذا كان العدد سالبًا، والقيمة <code>0</code> إذا كان العدد موجبًا. يمكن استخدام العامل <code>XOR</code> (<code>^</code>) للتحقق من اختلاف الإشارة بين العددين، فإن كانت الإشارتان مختلفتين فإنّ نتيجة المقارنة ستكون تعيين القيمة <code>1</code> للبت الخاص بالإشارة، بمعنى أنّ مقارنة <code>x</code> و <code>y</code> باستخدام العامل <code>XOR</code> سيعطي عددًا سالبًا إذا حمل العددان إشارتين سالبتين. | ||
== تنفيذ الخوارزمية == | == تنفيذ الخوارزمية == |
مراجعة 18:26، 28 نوفمبر 2019
تتحقّق هذه الخوارزمية ممّا إذا كان رقمان صحيحان يمتلكان إشارتين مختلفتين دون استخدام أيٍّ من العوامل الرياضية.
لنفترض أنّ x و y هما عددان صحيحان. يأخذ البت الخاص بالإشارة القيمة 1
إذا كان العدد سالبًا، والقيمة 0
إذا كان العدد موجبًا. يمكن استخدام العامل XOR
(^
) للتحقق من اختلاف الإشارة بين العددين، فإن كانت الإشارتان مختلفتين فإنّ نتيجة المقارنة ستكون تعيين القيمة 1
للبت الخاص بالإشارة، بمعنى أنّ مقارنة x
و y
باستخدام العامل XOR
سيعطي عددًا سالبًا إذا حمل العددان إشارتين سالبتين.
تنفيذ الخوارزمية
تعرض الأمثلة التالية طريقة تنفيذ الخوارزمية في عدد من لغات البرمجة:
- C++:
#include<stdbool.h>
#include<stdio.h>
bool oppositeSigns(int x, int y)
{
return ((x ^ y) < 0);
}
// اختبار الدالة السابقة
int main()
{
int x = 100, y = -100;
if (oppositeSigns(x, y) == true)
printf ("Signs are opposite");
else
printf ("Signs are not opposite");
return 0;
}
- بايثون:
def oppositeSigns(x, y):
return ((x ^ y) < 0);
x = 100
y = 1
if (oppositeSigns(x, y) == True):
print "Signs are opposite"
else:
print "Signs are not opposite"
- جافا:
class GFG {
static boolean oppositeSigns(int x, int y)
{
return ((x ^ y) < 0);
}
// اختبار الدالة السابقة
public static void main(String[] args)
{
int x = 100, y = -100;
if (oppositeSigns(x, y) == true)
System.out.println("Signs are opposite");
else
System.out.println("Signs are not opposite");
}
}
تعطي الشيفرات السابقة المخرجات التالية:
Signs are opposite
مصادر
- صفحة Detect if two integers have opposite signs في توثيق الخوارزميات في موقع GeeksforGeeks.