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

تبديل قيمة متغيران بدون استخدام ثالث؟

مغلق
بدأه قبل الاول في 17 نوفمبر 2006 · 29 رد · 8,299 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي متغيران ، كيف يتم تبديل قيم المتغيران بدون استخدام متغير ثالث ؟

مثال :

input
x=5  and y=3
out
x=3   and y=5

شكرا

#2

مستحيل !!

لابد من وجود متغير ثالث

#3

عزيزي القضيه سهلة جدا تعتمد على العمليات الحسابيه

و هي كالتالي

x=x+y;
y=x-y;
x=x-y;
#4

طريقة أخرى ..

x := x xor y;
y := x xor y;
x := x xor y;

وأيضاً طريقة ..

x=x*y;
y=x/y;
x=x/y;

توجد طرق تمكنك من التبديل بين متحولين دون استخدام ثالث باستخدام تعليمات assembler

انظر الرابط

http://www.itech4arab.com/forum/showthread.php?t=3966

تم تعديل هذه المشاركة بواسطة بسام بساطة في 17 نوفمبر 2006 في 14:46

#5
اقتباس
مستحيل !!

لابد من وجود متغير ثالث

:lol:

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#6

شكرا ياشباب

#7

بس ممكن اصعبها اكثر من ذلك

ان يكون المتغيران ليس ارقام ولكن اشياء اخري

#8
قبل الاول كتب:
بس ممكن اصعبها اكثر من ذلك

ان يكون المتغيران ليس ارقام ولكن اشياء اخري

لا أظن تستطيع حلها عندما تكون غير ارقام

لأنها تعتمد على أنك تخزن عددين في في عدد واحد مع وجود علاقة بينهم ;)

#9

من الممكن حل السؤال اذا عرف...

اما سؤال مبهم و(متغير) فمن المستحيل حله...;)

#10

يمكن ايضا استعمال تعليمة Xchg في لغة التجميع

Xchg Eax,Ebx

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

تم تعديل هذه المشاركة بواسطة dj-siba في 21 نوفمبر 2006 في 13:59

قطرة الماء تـثـقب الحجر.. لا بالعنف. لكن بتكرار المحاولة

at4re.gif

منتديات الفريق العربي للهندسة العكسية 不喜欢的勿入! www.at4re.com

#11
اقتباس
من الممكن حل السؤال اذا عرف...

اما سؤال مبهم و(متغير) فمن المستحيل حله...

يعني اه ؟

#12

يعني يا اخي الكريم حاول ان توضح السؤال...ماهو نوع البيانات التي تتعامل معها؟؟

ولماذا لا تريد استخدان متغير ثالث؟

:)

#13

وضح

#14

السلام عليكم

اقتباس
ماهو نوع البيانات التي تتعامل معها؟؟

ممكن تعتبره من النوع كائن (object) والسبب لاني اريد حل عام وليس خاص بنوع بيانات معين

اقتباس
ولماذا لا تريد استخدان متغير ثالث؟

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

شكرا

#15

هل مستحل اما ماذا ؟

#16

تريد رأيي ؟ :)

انا مقتنع بأنه مستحيل في غير الأرقام ،

لذلك لايمكننا تعميمها لأي اوبجكت

#17

شكرا على المعلومة و نتمنى المزيد

#18

الســــــــــــــــــلام عليكـــــــــــــــــم

اقتباس
تريد رأيي ؟

انا مقتنع بأنه مستحيل في غير الأرقام ،

لا ليست مستحيلة في الفجوال باسيك وكل اللغات التي بها (traitement de chaine)

a = "hicham"
b = "manssouri"
a = a & "" & b
b = Left(a, (Len(a) - Len(b)))
a = Right(a, (Len(a) - Len(b)))
'النتيجة'
a = "manssouri"
b = "hicham"

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#19

موضوع حلو وجميل

وأفكار جميلة

ولكن لماذا هذا العذاب !!؟

متغير ثالث لتوفير أكبر قدر من الذالكرة !!

طيب إعمل دالة تبدل بين متغيرين لأي نوع مثل دالة Quick Basic قديما

Swap

وريح بالك

#20
اقتباس
مثل دالة Quick Basic قديما

Swap

هلا اوضحة لنا كيف نستعملها ولك جزيل الشكر

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#21

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

إذا كان المتغيران X , Y من نوع نصي (String) فمن الممكن عمل التالي : (الكود مكتوب بلغة JavaScript) .

		X="ABC"
		Y="DEF"
		X=X+"_"+Y
		Y=X.substring(0,X.indexOf("_"))
		X=X.substring(X.indexOf("_")+1)
#22

Python :

>>> a=3; b=4
>>> a, b= b, a
>>> a
4
>>> b
3

تم تعديل هذه المشاركة بواسطة StrikerX في 21 يوليو 2007 في 02:43

#23

أظن أن عملية xor قادرة على تبديل أي نوع من البيانات إذا كانت تجرى على الوحدة الأساسية bit

والله أعلم

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#24

طب ايه الحل لو كانت المتغيرات نصية ؟

X = "احمد"
y = "محمد"

تفتكروا كده ممكن تتحل ؟

#25
hicham716 كتب:
هلا اوضحة لنا كيف نستعملها ولك جزيل الشكر

 

'هذا إجراء للتبديل بين قيمتين
Public Sub Swap(Var1 As Variant, Var2 As Variant)
  Dim Var3 As Variant

  Var3 = Var1
  Var1 = Var2
  Var2 = Var3
End Sub

'وهذا إجراء لتجربة إجراء التبديل
Sub Test()
  Dim A, B

  A = 3
  B = 6
  Swap A, B   '-- Call Swap(A, B)
  MsgBox A & vbNewLine & B

  A = "Access"
  B = "Visual Basic"
  Swap A, B
  MsgBox A & vbNewLine & B

  A = DateSerial(2001, 1, 1)
  B = DateSerial(2007, 7, 7)
  Swap A, B
  MsgBox A & vbNewLine & B
End Sub

هذا الموضوع مغلق.

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

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

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

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

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