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

Return

بدأه الذ11بح في 4 مارس 2008 · 8 رد · 1,042 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

سؤالي كالتالي

هل من الممكن عمل

rturn

لاكثر من متغير بنفس الفونكشن وكيف؟

يعني اللي اعرفه انه خطاء انك تعمل ريترن لاكثر من متغير بهالشكل

return a,b,c;

وايضا

return a;

return e;

return g;

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

تحيااااااااااااااااتي 11

يارب التأهل ياكريم

#2

السلام عليكم هذا مثال بسيط لداله تختبر عدد وتعيد القيمه نص على حسب العدد

string dd()
{
int a;
cout<<"enter any:";
cin>>a;
if(a<0)
return "HHHHHHH";
else if(a>0)
return "GGGGGGGG";
else if(a==0)
return "Zero";
}
tvquran_6.gif

#3

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

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

return a;

return g;

return d;

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

تحياااااااااااتي 11

يارب التأهل ياكريم

#4

فى حلين للموضوع دا,

الأول أن تستخدم ال in/out variables و هى متغيرات تعطيهل للفنكشن و أنت تناديها بس على شرط أن تكون عبارة عن reference أو بوينترز, يعنى الفنكشن تعريفها يبقى حاجة زى كدة>

void myfunc(double in1, double& inout1, int* inout2);

الحل الثانى, و هو الذى أفضله, هو جمع المتغيرات دى فى struct أو class و تخليه هو ال return type بتاع الفنكشن, يعنى ممكن زى كدة

struct comb{
   int out1;
	int out2;
double out3;
};
comb myfunc(double in);

تم تعديل هذه المشاركة بواسطة Blueteeth في 5 مارس 2008 في 01:16

#5

شكرا اخوي

blutooth

على الاجابة وجزاك الله الف خير انا راح اجربها واشوف كيف تطلع النتيجة

يارب التأهل ياكريم

#6

حلول أخ Blueteeth هي الواردة، لكن انتبه انك عندما ترسل برامتر للدالة على هيئة مؤشر فإنك اذا غيرت قيمة هذا المتغير داخل الدالة فستتغير قيمته الأصلية

#7

اخوي

blueteeth

شكرا لك على الاجابات لكن ياليت توضح لي الحل الثاني يعني لو تكرمت

تحياااااااااااتي 11

يارب التأهل ياكريم

#8

السلام عليكم,

هذا برنامج يوضح الحل الثانى, البرنامج يحول إحداثيات نقطة من الإحداثيات القطبية إلى الإحداثيات الكارتيزية.

#include <iostream>
#include <cmath>
using namespace std;

const double PI = 3.14159265;
struct pt_cart2D{
	double x_co;
	double y_co;
	pt_cart2D(): x_co(0), y_co(0) {}
};

struct pt_pol2D{
	double r;
	double theta;  // in degrees
	pt_pol2D(): r(0), theta(0) {}
};

pt_cart2D pol_to_cart(pt_pol2D pol_p){
	pt_cart2D rt;
	rt.x_co = pol_p.r * cos(pol_p.theta *PI/180);
	rt.y_co = pol_p.r * sin(pol_p.theta *PI/180);

	return rt;
}

int main(){
	pt_cart2D out;
	pt_pol2D in;
	in.r = 1;
	in.theta = 45;

	out = pol_to_cart(in);
	cout << "X coordinate = " << out.x_co << endl << "Y coordinate = " << out.y_co << endl;

	return 0;
}

حيث تلاحظ إنى عملت struct علشان أجمع فيه إحداثيات النقطة و بالتالى قدرت أرجع قيمتين مختلقتين من الدالة (إحداثى السين و إحداثى الصاد).

#9

شكرا جزيلا اخي

Blueteeth

تمنياتي لك بالتوفيق وتفريج الكرب والهموم ان شاء الله

تحياااااااااااتي 11

يارب التأهل ياكريم

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