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

سؤال عن ال pointers

مغلق
بدأه الحذر في 3 أبريل 2006 · 6 رد · 625 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي سؤال عن الpinters

انا ابغى اخزن عدد n من الذاكرة في ال heap

و ابغى استرجعها

هو السؤال انك تدخل معاملات x و الاس

مثال:

المستخدم يدخل 2x^5+4x^2+1=0

و البرنامج يخرج (2,5),(4,2),(1,0)

باستخدام البوينتر

انا حليتها بس المشكلة يخرج لي اخر شيء ادخل

و هذا هو الكود

#include <iostream>
#include <cmath>
#include <string>
#include <vector>

using namespace std;

class poly
{
public:

	poly();

	void read_c();

	void read_p();

	void print();

public:

	int n;

//	poly* next;

	poly* term;

	int p;
};

poly::poly()
{
n=0;
//next=NULL;
term=NULL;
p=0;
}

void poly::read_c()
{
	cout << "Enter the coffection";

	cin >> n;

	term->n;


}
void poly::read_p()
{
	cout <<" Enter its power";

	cin >> p;

	term->p;

}


void poly::print()
{
	cout << n;

	cout <<"...."
  <<p;

}


int main()
{
	poly y;



	poly* next=new poly;

	next->read_c();

	next->read_p();
	poly*term;
  poly	*temp;



	for(int i=0;i<4;i++)
	{


	temp=new poly;
  term=temp;


  term->read_c();

   	 term->read_p();
//term->temp;
	}

	for(int j=0;j<5;j++)
	{

	term->print();



	}




	return 0;

}

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

و اسف على الإطالة و السلام عليكم و رحمة الله و بركاته

I_can_always_make_you_smile_by_Praerion.jpg

#2

هل عدد العناصر التي تريد حجزها ثابت في البرنامج؟

أم أنك تريد أخذ العدد من المستخدم في بدية البرنامج

ام تريد أن تأخذ من المستخدم الى أن يدخل قيمة معينة تخبرك بالتوقف

على مثالك , يمشي الاختيار الاول

عدلت الكود بهذا الشكل

#include <iostream>
using namespace std;

class poly {
public:
  poly::poly() : n(0), p(0) {};
  void read_c();
  void read_p();
  void print();
public:
  int n;
  int p;
};
void poly::read_c() {
  cout << "Enter the coffection: "; cin >> n;

}
void poly::read_p() {
  cout << "Enter its power : "; cin >> p;
}
void poly::print() {
  cout << "( " << n << " , " << p << " )";
}
const int MAX = 4;
int main() {
  poly* y = new poly[MAX];
  for(int i = 0; i < MAX; i++) {
    y.read_c();
    y.read_p();
  }
  for(int j = 0; j < MAX; j++)
    y[j].print();
  cout << endl;
  system("PAUSE");
  delete [] y;
  return 0;
}

لجعل المستخدم يدخل عدد العناصر المطلوبة , اجعل MAX متغير , وتأخذ قيمته من المستخدم في بداية البرنامج , ثم قم بعمل مصفوفة من الكائنات بها

أما لعمل الفكرة الثالثة , تعود لاستخدام الـ linked list , عن طريق مؤشر في العنصر يشير الى العنصر التالي

#3

السلام عليكم مشكرو اخوي Asm4all

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

انا فكرت اني احلها زيك بالarray

فكرة المشروع ترفض هذا الاتجاه

الفكرة في المشروع ان المؤشر الاول يؤشر للثاني

و المؤشر الثاني يؤشر للثالث و هكذا

انا راح احاول اعدل في الحل ان شاء الله

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

I_can_always_make_you_smile_by_Praerion.jpg

#4

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

السلام عليكم

صرحة أنا مقريتش الموضوع من الاول بس لاحظ أن الاخ الحذر كاتب

اقتباس
فكرة المشروع ترفض هذا الاتجاه

الفكرة في المشروع ان المؤشر الاول يؤشر للثاني

و المؤشر الثاني يؤشر للثالث و هكذا

ممم اعتقد ان انتا ممكن تستخدم الlinked list فى هذا الموضوع بناء على ما ذكرتة أنت حيث كل خلية بها الdata مؤشر يشير الى الخلية التالية

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#5

و عليكم السلام

انا هذا الي محيرني كيف اخلي كل عنصر يأشر للي بعده

انا فكرت اخلي ال كونستركتر تحتفض بالنوينر

يعدني اخليه يخزن قيمة المعامل و القوى و المؤشر

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

I_can_always_make_you_smile_by_Praerion.jpg

#6

اخي راجع مثال Circular Linked List و انظر كيف يُشير الHead إلي الTail .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#7
Asm4all كتب:
هل عدد العناصر التي تريد حجزها ثابت  في البرنامج؟

أم أنك تريد أخذ العدد من المستخدم في بدية البرنامج

ام تريد أن تأخذ من المستخدم الى أن يدخل قيمة معينة تخبرك بالتوقف

أما لعمل الفكرة الثالثة , تعود لاستخدام الـ linked list , عن طريق مؤشر في العنصر يشير الى العنصر التالي

هكذا

#include <iostream>
using namespace std;

class poly {
public:
  poly::poly() : n(0), p(0), next(0) {};
  ~poly() {if(next) delete next;}
  void  read_c();
  void  read_p();
  poly* get_next();
  poly* print();
public:
  int n;
  int p;
  poly* next;
};
void poly::read_c() {
  cout << "Enter the coffection: "; cin >> n;
}
void poly::read_p() {
  cout << "Enter its power : "; cin >> p;
}
poly* poly::print() {
  if(n || p)
    cout << "( " << n << " , " << p << " )";
  return next;
}
poly* poly::get_next() {
  if(!n && !p) return 0;
  return (next = new poly());
}

int main() {
  poly* head = new poly, *y;
  y = head;
  while(y) {
    y->read_c();
    y->read_p();
    y = y->get_next();
  }
  y = head;
  while(y)
    y = y->print();
  cout << endl;
  system("PAUSE");
  delete head;
  return 0;
}

هذا الموضوع مغلق.

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