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

ممكن المساعده في الماتركس

بدأه En_hr في 2 مايو 2009 · 5 رد · 525 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه انا مازلت مبتديه بالسي بلس بلس واريد من حضراتكم كود متكامل مع الشرح عن المتركس لما اريد ادخل لها عدد الصفوف والاعمده ولكم كل الشكر والتقدير واتمنى الاجابه باسرع وقت ممكن :wub: ،،

#2

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

اذا كانت المصفوفات التى تتعاملين معها ثابتة الحجم فيمكن الإعلان عنها مباشرة

مثل

int arr[3][4];

ويتم ادخال عناصرها عن طريق nested loop او لوبين متداخلين

أما لو كنتى تقصدى مصفوفه تطلبى من اليوزر ادخال عدد اعمدتها وصفوفها فأنت تحتاجين الى انشاء المصفوفه الديناميكيه عن طريق المؤشرات

وهذه هى الطريقه

#include <iostream>
using namespace std;
int main()
{
	int** p;
	int col,row,i,j;
	cout<<"Enter the number of rows : "; cin>>row;
	cout<<"Enter the number of columns : "; cin>>col;
	// building the matrix
	p=new int*[row];
	for (i=0;i<row;i++)
	{
		p=new int[col];
	}
	// building complete 
	// loop for assigning values to matrix
	for(i=0;i<row;i++)
	{
		for (j=0;j<col;j++)
		{
			cout<<"p["<<i+1<<"]["<<j+1<<"] = ";
			cin>>p[j];
		}
	}
	// loop for showing the matrix
	cout<<" you enter the matrix : \n";
	for(i=0;i<row;i++)
	{
		for (j=0;j<col;j++)
		{
			cout<<p[j]<<"  ";
		}
		cout<<endl;
	}
	return 0;
}

سلام

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#3

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

#4

السلام عليكم

شوفى هذا الكود واقرأيه جيدا

داله تنشأ المصفوفه وتملأها اصفارا

وأخرى تظهرها على الشاشه

وأخرى لتنظيف الذاكره

#include <iostream>
using namespace std;
int** make(int row,int col)
{
	int** p;
	int i,j;
	p=new int*[row];
	for (i=0;i<row;i++)
	{
		p=new int[col];
	}
	for (i=0;i<row;i++)
	{
		for (j=0;j<col;j++)
			p[j]=0;
	}
	return p;
}
void show(int** p,int row,int col)
{
	int i,j;
   for (i=0;i<row;i++)
	{
		for (j=0;j<col;j++)
		cout<<p[j]<<"  ";
		cout<<endl;
	}
   cout<<endl;
}
void destroy(int** p,int row)
{
	for(int i=0;i<row;i++)
		delete [] p;
	delete[] p;
}
int main()
{
	int** p;
	p=make(4,5);
	show(p,4,5);
	destroy(p,4);
	p=make(6,6);
	show(p,6,6);
	destroy(p,6);
	return 0;
}

يمكنك استخدام هذه الدوال فى برنامجك

سلام

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#5

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

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

وعايزه اسالك هو انا لما اعمل جمع لمصفوفتين هااعيد كتابه المصفوفه مره ثانيه ولا اعملها ازاي :blush: مع خالص شكري

#6

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

يا أختنا الكريمه

أنا وضعت لكى الدوال التى تساعدك فى بناء برنامجك

ولكن ........

عليكى بالتفكير كيف تستخدمى تلك الدوال فى انشاء ثلاث مصفوفات احداهم تستقبل مجموع الإثنين الآخرين

وعملية الجمع سهله جدا حيث ان كل عنصر يجمع مع العنصر الذى يقابله ثم تستقبله المصفوفه الثالثه ( يمكنك الغاء اللوب الذى يعطى اصفار لعناصر المصفوفه او استخدام نفس اللوب فى الإدخال)

شوفى كيف استخدمت الداله make فى الإنشاء ؟؟؟؟؟؟

آسف والله

قوانين المنتدى تمنع وضع الحلول جاهزه

بالتوفيق

تم تعديل هذه المشاركة بواسطة amin_mu123 في 3 مايو 2009 في 21:27

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

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