السلام عليكم
الله يفرج عنكم كرب الدنيا والاخره
انا كتبت برنامج
بالينكد لست
هو عباره عن ندخل عوامل واسس
اذا اللأسس نفسها نجمع العوامل
واذا اختلفت ندرج العوامل واسسها
ونحتاج لداالة بحث كي نبحث عن الأسس المتساوية ونرسلها لدالة الادراج
ودالة جمع لنجمع العوامل ذات الأسس المتساوية
ودالة بحث عن الصفر
كي نحذف العوامل المعدومه
بكتب لكم محاولاتي اعدوني ساعدكم الله
ابي تشوفون وين الخطأ وياليت بأقرب وقت
#include<iostream.h>
#include<math.h>
struct monome
{
int power;
int coef;
monome *next;
};
struct header
{ monome *head;
monome *cursor;
int count;
};
header H;
monome *p;
int power, coef,x;
monome *address;
//دالة الانشاء
void Create()
{
monome *head=NULL;
monome *cursor=NULL;
int count=0;
}
//دالة البحث عن الأسس المتساوية
monome * search_power(int power)
{
monome*p=H.head;
while(p!=NULL)
{
if(p->power==power)
return p;}
p=p->next;
return 0;}
//دالة الجمع
void Add(monome *address,int coef)
{
address->coef=address->coef + coef;
}
//دالة الادراج
void insert_in_front(int power,int coef)
{
cin>>power;
cin>>coef;
while((power!=0)||( coef!=0))
{
monome * search_power();
if(p==NULL)
{
p=new monome;
p->power=power;
p->coef=coef;
p->next=NULL;;
H.head=p;
H.count++;
p=p->next;
}
if(address!=NULL)
Add(address, coef);
/ÏÇáÉ ÇáÈÍË Úä ÇáÕÝÑ
monome*search_zero(int coef)
{
p=H.head;
while(p!=NULL)
{
if(p->coef==0)
return p;
}
p=p->next;
return 0;}
//ÏÇáÉ ÇáÍÐÝ
void Remove(monome *address)
{
monome*s;
monome*p=H.head;
s=p;
if(p!=NULL)
{ int i=1;
while((p!=NULL)&&(p!=address))
s=p;
p=p->next;
i++;}
if(p->coef==0)
{ p=H.cursor;
H.head->next=H.cursor->next;
delete H.cursor;
H.count--;}
}
void Garbage_collector()
{
monome*search_zero( );
cin>>coef;
while(coef==0)
Remove(address);
}
دالة القراءة
//Ïvoid read(int coef,int powe
r)
{
cout<<"Enter coef" <<endl;
cin>>coef;
cout<<"Enter power" <<endl;
cin>>power;
}
//دالة الطباعة
void print_list()
{
monome *p;
p=H.head;
if
(p==NULL)
cout<<"list is empty";
else
while(p!=NULL)
{
cout<<p->power<<" "<<p->coef<<" ";
p=p->next;}
}
دالة الحساب
void calcolate(int x)
{
double sum;
p=H.head;
cin>>x;
while (p!=NULL)
{
sum=sum+((p->coef)*(pow(x,p->power)));
p=p->next;
}
cout<<endl<<"the value of monome:\n"<<sum<<endl;
}
void main()
{
Create();
insert_in_front(power,coef);
monome * search_power(int power);
void Add(monome *address,int coef);
calcolate( x);
read( coef, power);
void print_list();
void Remove(monome *address);
monome*search_zero(int coef);
Garbage_collector();
}
__________________