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

ما الخطا فى هذا الكود

بدأه webshabab في 30 أكتوبر 2008 · 8 رد · 739 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذا كود برنامج swap

#include<iostream>

int swap(int&,int&);

main()

{

int x,y,result;

cin>>x>>y;

result=swap(x,y);

cout<<x<<y;

return 0;

}
int swap(int x,int y)

{

int temp;

temp=x;

x=y;

y=temp;

return x,y;

}
#2
  1.  
  2. #include<iostream>
  3. using namespace std;
  4. int swap(int&,int&);
  5.  
  6. int main()
  7. {
  8. int x,y,result;
  9. cin>>x>>y;
  10. result=swap(x,y);
  11. cout<<x<<y;
  12. cin.get();
  13. cin.get();
  14. return 0;
  15. }
  16. int swap(int& x,int& y)
  17.  
  18. {
  19. int temp;
  20. temp=x;
  21. x=y;
  22. y=temp;
  23. return x,y;
  24. }
  25.  
  26.  

tvquran_6.gif

#3

اهلا بك

الاخطاء :

1- انت قمت بتعريف الدالة swap بهذا الشكل

int swap(int&,int&);

بينما عندما قمت بتعريف جسم الدالة , قمت بكتابة الدالة على هذا الشكل:

int swap(int x,int y)

يفترض ان يكون تعريف الدالة عند الاعلان عنها هو نفسه تعريف الدالة عند كتابة جسم الدالة .

2- يفترض ان تستدعي الدوال cin و cout بعد تضمين الملف الرأسي :

using std::cout;
using std::cin;

3- ايضا لافائدة من استخدام الطريقة السابقة في الاعادة , لان الدوال لاتعيد الا قيمة وحيدة ( يمكن التحايل عليها بجعلها تعيد اكثر من قيمة ) , لكن افتراضيا قيمة واحدة فقط .

اي ان الجملة return والمتغير result لا فائدة منهما .

يصبح الكود بشكله النهائي .

#include<iostream>

using std::cout;
using std::cin;
void swap(int&,int&);

main()

{

int x,y;

cin>>x>>y;

swap(x,y);

cout<<x<<y;

return 0;

}
void swap(int &x,int &y)
{
int temp;
temp=x;
x=y;
y=temp;
}
llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#4

كنت داخل متحمس ومعطف أكمامي عشان أرد بس سبقني الأخ تايم الله يعطيه العافيه :)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#5

يمكن الاستغناء عن دالة swap ومتغيرها temp ، ;)

#include<iostream>
 
using namespace std;
 
int main()
{
	int x,y;
 
	cin >> x >> y;
 	y = x - y + (x=y);
 	cout << x << y;
 
	return 0;
}

تم تعديل هذه المشاركة بواسطة دحدوح في 30 أكتوبر 2008 في 08:09

#6

ألاحظ انك تحصلت على الرد المطلوب

ولكن لو كنت قمت بتنفيذ الكود التالي

#include<iostream>

using std::cout;
using std::cin;
void swap(int&,int&);

main()

{

int x,y;

cin>>x>>y;

swap(x,y);

cout<<x<<y;

return 0;

}
void swap(int &x,int &y)
{
int temp;
temp=x;
x=y;
y=temp;
}

لكنت واجهة مشكلة

و هي عند الجملة return 0

لأن الدالة تم تعريفها على انها void

و الدالة عندما تكون هكذا فهي لا ترجع قيم مطلقاً فلا نستخدم return

#7

الdata type الأفتراضي للقيمه الراجعه في الداله هو int ، لذلك في حال كتب main مباشره القيمه الراجعه بتكون من نوع int ، لذلك لا مشكله .. ولكن يفضل كتابتها صراحه int main .

بالتوفيق ،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#8
اقتباس
لكنت واجهة مشكلة

و هي عند الجملة return 0

لأن الدالة تم تعريفها على انها void

و الدالة عندما تكون هكذا فهي لا ترجع قيم مطلقاً فلا نستخدم return

واين هي الدالة التي تم تعريفها على اساس انهاvoid وجعلناها تعيد القيمة return 0 ؟

تم تعديل هذه المشاركة بواسطة time1 في 2 نوفمبر 2008 في 13:28

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#9
محمد علاو كتب:
كنت داخل متحمس ومعطف أكمامي عشان أرد بس سبقني الأخ تايم الله يعطيه العافيه :)

والله يا صاحبي انا متلك

دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب

حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .

الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية

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

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