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

البرنامج موجود وهو يعكس مصفوفه.. بس تكفون لاتردونه ابيكم تشرحونه

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

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

اخواني المبرمجين اطلب منكم طلب واتمنى ان لاتردوني

اريدكم ان تشرحونه فقط وانا جلبته من موقع اجنبي

 

#include<iostream>
using namespace std;

int*ReverseArray(int*orig,unsigned short int b)
{
	unsigned short int a=0;
	int swap;

	for(a;a<--b;a++) //increment a and decrement b until they meet eachother
	{
		swap=orig[a];	   //put what's in a into swap space
		orig[a]=orig;	//put what's in b into a
		orig=swap;	   //put what's in the swap (a) into b
	}

	return orig;	//return the new (reversed) string (a pointer to it)
}
// the following is a test program


int main()
{
	const unsigned short int SIZE=10;
	int ARRAY[SIZE]={1,2,3,4,5,6,7,8,9,10};
	int*arr=ARRAY;

	for(int i=0;i<SIZE;i++)
	{
		cout<<arr<<' ';
	}
	cout<<endl;
	arr=ReverseArray(arr,SIZE);
	for(int i=0;i<SIZE;i++)
	{
		cout<<arr<<'';
	}
	cout<<endl;



	cin.get();
	return 0;
}

تم تعديل هذه المشاركة بواسطة بدر البدر في 8 أغسطس 2008 في 15:46

#2

لديك الدالة ReverseArray والتي تأخذ الباراميتر الاول من نوع مصفوفة عددية int والثاني عدد عناصر المصفوفة .

جسم الدالة :

نعرف متغير a كعداد للمرور على جميع عناصر المصفوفة .

نعرف متغير التبديل swap للتبديل بين العناصر .

بعدها ننشأ حلقة تكرار

	for(a;a<--b;a++) //increment a and decrement b until they meet eachother
	{
		swap=orig[a];	   //put what's in a into swap space
		orig[a]=orig;	//put what's in b into a
		orig=swap;	   //put what's in the swap (a) into b
	}

تبدا الحلقة من القيمة صفر ( a) وشرطها ان الصفر اقل من b-- اي (9) , وبعدها مقدار الزيادة بواحد لـ a

داخل الحلقة :

swap= القيمة التي يحملها العنصر رقم 0 من المصفوفة( اي swap = 1)

العنصر رقم صفر من المصفوفة ( الذي يحمل القيمة 1 ) اصبح يحمل القيمة التي يحملها العنصر رقم 9 في المصفوفة ( اي 10 )

orig[a]=orig;

العنصر رقم 9 في المصفوفة والذي يحمل القيمة10 اصبح يحمل القيمة التي يحملها المتغير swap وهي 1

orig=swap;

تستمر الحلقة حتى الانتهاء من العناصر بعدها ترجع المصفوفة كقيمة معادة .

داخل الدالة Main

const unsigned short int SIZE=10

تعريف متغير ثابت SIZE يحمل القيمة 10 .

	int ARRAY[SIZE]={1,2,3,4,5,6,7,8,9,10};

تعريف مصفوفة واعطائها القيم من 1 إلى 10

	int*arr=ARRAY;

	for(int i=0;i<SIZE;i++)
	{
		cout<<arr<<' ';
	}

حلقة تكرار تقوم بطباعة عناصر المصفوفة كاملة .

	arr=ReverseArray(arr,SIZE);
	for( i=0;i<SIZE;i++)
	{
		cout<<arr<<" ";
	}
	cout<<endl;

استدعاء دالة ReverseArray واعطائها المصفوفة المراد قلب عناصرها واعطائها عدد العناصر ,واعادة القيمة للمصفوفة نفسها .

بعد ذلك طباعة العناصر من جديد بعد قلب عناصرها .

تحياتي . . .

llback.jpg

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

#3

اشكررررررررررررررررررررررررررررك

الفائدة

الله يعطيك العافية اخوي

timel

على الشرح الـشامل والجميل

وتسلم على هذا المجهوود وتلبية طلبي يالطيب

بس معليش ماودي اثقل عليك عند استفسار

السؤال اللي شتت ذهني

ليش وضع البونتر* في الدالة

طيب وش

int*ReverseArray(int*orig,unsigned short int B)

تقبل احترامي لكـــــ

#4

اخي المبدع time1

اللي بعرفه وش الفائدة من * او البونتر طيب لو ماوضعنا

شو اللي يصيرررررر

اقتباس
int*ReverseArray(int*orig,unsigned short int b )

شكلي طولتها شوي بس معليش توني مبتدئ

const ليش سوى هنا

const unsigned short int SIZE=10;

#5
بدر البدر كتب:
اخي المبدع time1

اللي بعرفه وش الفائدة من * او البونتر طيب لو ماوضعنا

شو اللي يصيرررررر

شكلي طولتها شوي بس معليش توني مبتدئ

const ليش سوى هنا

const unsigned short int SIZE=10;

من اجل تمرير المصفوفة إلى الدالة

لاحظ معي في هذا السطر انك كتبت الوسيط الاول للدالة ReverseArray هو اسم المصفوفة arr حيث يمثل اسم المصفوفة عنوان اول عنصر بالمصفوفة .

	arr=ReverseArray(arr,SIZE);

لذلك يجب ان يكون الوسيط الاول في تعريف الدالة هو مؤشر لاستقبال العنوان .

تستطيع كتابتها بأسلوب آخر

int*ReverseArray(int orig[],unsigned short int b)

اما عن * int الموجودة ببداية تعريف الدالة فهي القيمة المعادة , لانك ستعيد عنوان المصفوفة

return orig;

اما الـ const , فهذا لأن حجم المصفوفة ثابت ولايمكن تغييره , ستتعلم لاحقا كيف تتعامل مع مصفوفات ديناميكية .

تحياتي . . .

llback.jpg

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

#6

time1 اخي

اشكرك استاذي على مجهودك الكبير

وشرحك الجميل

وتقبل فائق احترامي

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

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

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

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

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