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

سؤال بالمصفوفه ذات الاتجاهين

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

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

اخواني عملت كود ويطلع لي ايرور ولما اخليها مصفوفه ذات بعد واحد يروح الايرور

ارجو تصحيح الايرور ولكم جزيل الشكر

#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;

class my2array
{
private:
int *array;
int coulm;
int row;
public:
my2array(int a)
{
 array=new int;
 for(int i=0;i<5;i++)
 array=0;
}			
my2array(const my2array& a)
{
 if(row>0&&coulm>0)
 {
 row=a.row;
 coulm=a.coulm;
 array = new int[row][coulm];
}				   


for(int i=0;i<row;i++)
{
for(int j=0;j<coulm;j++)
{
array[j]=a.array[j];
}
}
}
};
int main()
{
	my2array a(4);
	my2array p(a);
int m;
cin>>m;
  return 0;
}

:wub:

#2

هل هذا هو المطلوب من البرنامج؟

#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;

class my2array
{
private:
int *arr1;
int **arr2;
int coulm;
int row;
public:
my2array(int a)
{
arr1=new int;
for(int i=0;i<5;i++)
arr1=0;
}			
my2array(const my2array& a)
{
if(row>0&&coulm>0)
{
row=a.row;
coulm=a.coulm;
arr2 = new int * [coulm];
  for (int i=0; i < row; i++)
	  arr2 = new int;
}				  


for(int i=0;i<row;i++)
{
for(int j=0;j<coulm;j++)
{
arr2[j]=a.arr2[j];
}
}
}
};
int main()
{
	my2array a(4);
	my2array p(a);
int m;
cin>>m;
  return 0;
}

لديك مشكلتين، تصريحك باستخدام كلمة محجوزة array

أيضاً في حجز المصفوفة الثنائية، الطريقة كانت خاطئة وقمت بتعديلها لك.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

الله يوفقك ويجزاك خيييير

بس هو مافيه الا بوينتر واحد فقط

يعني فقط *arr1

وشكرا

#4

طيب هل هدفك هو فقط حجز مصفوفة ثنائية باستخدام function من داخل الـ class ؟

لأنك لا تحتاج إلى كل ما كتبته في الأعلى من أجل هذ فقط.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5

لا يا خوي

هذا سؤال جاني الترم الي راح بالامتحان اعطانا الاستاذ كلاس وفيه الاتربيوت عباره عن *arry , colome , row

وقال انشئ كوبي كونستركتر لها

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

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

هو فقط انك تنسخ محتويات الاري باوبجكت ثاني "السؤال هذا الهدف منه انشاء كوبي كونستركتر ويكون فيه لوبين " فقط يا اخي وجزاك الله خير

#6

احم احم

عطوني وجه

بليييييييييز ابي الحل الله يوفقكم تكفووووووووووووووووووووووووون

محتاجه الحل ضروري

#7

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

*cough* *cough*

تحلى بالصبر :)

انظر هذا المثال كتبته لك، إن شاء الله يكون ما تريده لأني أول مرة أكتب copy constructor

 

[color= #007f00;]#include <iostream>

[color= #0000ff;]using [color= #0000ff;]namespace std;

 

[color= #0000ff;]class my2array [color= #000000;]{

[color= #0000ff;]private[color= #000000;]:

	[color= #0000ff;]int [color= #000000;]** arr;

	[color= #0000ff;]int column;

	[color= #0000ff;]int row;

[color= #0000ff;]public[color= #000000;]:

	my2array[color= #000000;]([color= #0000ff;]int rows, [color= #0000ff;]int cols[color= #000000;]) [color= #000000;]{

		column [color= #000000;]= cols;

		row [color= #000000;]= rows;

		arr [color= #000000;]= [color= #0000ff;]new [color= #0000ff;]int [color= #000000;]* [color= #000000;][cols[color= #000000;]];

		[color= #0000ff;]int i,j;

		[color= #0000ff;]for[color= #000000;](i [color= #000000;]= [color= #ff0000;]0; i [color= #000000;]< rows; i[color= #000000;]++[color= #000000;])

			arr[color= #000000;][i[color= #000000;]] [color= #000000;]= [color= #0000ff;]new int;

		[color= #0000ff;]for[color= #000000;](i [color= #000000;]= [color= #ff0000;]0; i [color= #000000;]< rows; i[color= #000000;]++[color= #000000;])

			[color= #0000ff;]for [color= #000000;](j [color= #000000;]= [color= #ff0000;]0; j [color= #000000;]< cols; j[color= #000000;]++[color= #000000;])

				arr[color= #000000;][i[color= #000000;]][color= #000000;][j[color= #000000;]] [color= #000000;]= [color= #000000;](i[color= #ff0000;]+1[color= #000000;])[color= #000000;]*[color= #000000;](j[color= #ff0000;]+1[color= #000000;]);

		cout [color= #000000;]<< [color= #A31515;]"constructor for (" [color= #000000;]<< rows [color= #000000;]<< [color= #A31515;]"," [color= #000000;]<< cols [color= #000000;]<< [color= #A31515;]") array" [color= #000000;]<< endl [color= #000000;]<< endl;

	[color= #000000;]}

	my2array[color= #000000;](my2array[color= #000000;]& a[color= #000000;]) [color= #000000;]{

		cout [color= #000000;]<< [color= #A31515;]"copy constructor called" [color= #000000;]<< endl;

		column [color= #000000;]= a.[color= #808000;]column;

		row [color= #000000;]= a.[color= #808000;]row;

		[color= #0000ff;]int i, j;

		arr [color= #000000;]= [color= #0000ff;]new [color= #0000ff;]int [color= #000000;]* [color= #000000;][column[color= #000000;]];

		[color= #0000ff;]for [color= #000000;](i [color= #000000;]= [color= #ff0000;]0; i [color= #000000;]< row; i[color= #000000;]++[color= #000000;])

			arr[color= #000000;][i[color= #000000;]] [color= #000000;]= [color= #0000ff;]new int;

		[color= #0000ff;]for [color= #000000;](i [color= #000000;]= [color= #ff0000;]0; i [color= #000000;]< row; i[color= #000000;]++[color= #000000;])

			[color= #0000ff;]for [color= #000000;](j [color= #000000;]= [color= #ff0000;]0; j [color= #000000;]< column; j[color= #000000;]++[color= #000000;])

				arr[color= #000000;][i[color= #000000;]][color= #000000;][j[color= #000000;]] [color= #000000;]= a.[color= #808000;]arr[color= #000000;][i[color= #000000;]][color= #000000;][j[color= #000000;]];

		cout [color= #000000;]<< [color= #A31515;]"copy constructed for (" [color= #000000;]<< row [color= #000000;]<< [color= #A31515;]"," [color= #000000;]<< column [color= #000000;]<< [color= #A31515;]") array" [color= #000000;]<< endl [color= #000000;]<< endl;

	[color= #000000;]}

	[color= #0000ff;]friend ostream[color= #000000;]& operator[color= #000000;]<< [color= #000000;](ostream[color= #000000;]& stream, my2array o[color= #000000;]) [color= #000000;]{

		[color= #0000ff;]for [color= #000000;]([color= #0000ff;]int i [color= #000000;]= [color= #ff0000;]0; i [color= #000000;]< o.[color= #808000;]row; i[color= #000000;]++[color= #000000;]) [color= #000000;]{

			[color= #0000ff;]for [color= #000000;]([color= #0000ff;]int j [color= #000000;]= [color= #ff0000;]0; j [color= #000000;]< o.[color= #808000;]column; j[color= #000000;]++[color= #000000;])

				stream [color= #000000;]<< o.[color= #808000;]arr[color= #000000;][i[color= #000000;]][color= #000000;][j[color= #000000;]];

			stream [color= #000000;]<< [color= #A31515;]"n";

		[color= #000000;]}

		stream [color= #000000;]<< endl [color= #000000;]<< endl;

		[color= #0000ff;]return stream;

	[color= #000000;]}

	~my2array[color= #000000;]([color= #000000;]) [color= #000000;]{

		cout [color= #000000;]<< [color= #A31515;]"destructor for (" [color= #000000;]<< row [color= #000000;]<< [color= #A31515;]"," [color= #000000;]<< column [color= #000000;]<< [color= #A31515;]") array" [color= #000000;]<< endl;

		[color= #0000ff;]delete arr;

	[color= #000000;]}

[color= #000000;]};

 

[color= #0000ff;]int main[color= #000000;]([color= #000000;])

[color= #000000;]{

    my2array a[color= #000000;]([color= #ff0000;]2,[color= #ff0000;]3[color= #000000;]);

    my2array p[color= #000000;]=a;

	cout [color= #000000;]<< p;

	cout [color= #000000;]<< [color= #A31515;]"press any key to exit";

	cin.[color= #808000;]get[color= #000000;]([color= #000000;]);

	[color= #0000ff;]return [color= #ff0000;]0;

[color= #000000;]}

تم تعديل هذه المشاركة بواسطة Xacker في 27 مارس 2009 في 16:56

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8

جزاك الله الف خييييييييييييييييير

مشكور ياخوي

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

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

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

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

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