Dérivé d'1 polynome simple

Description

ce programme permet de calculer la dérivée d'un polynome ..
qui ne doit contenir qu'une seule variable
ici j'ai utilisé une list chainée qui contient 05
champs;
  • valeur.
  • variable.
  • opération arithméthique (+/-).
  • symbole de puissance! "^".
  • valeur de puissance.

Source / Exemple :


//---------------------------------------------------------------------------

#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
typedef struct cel
{
float val;
char var;
char op;
int puiss;
struct cel *suiv;
}list;
int i=10,j=10,power=0,iii=0;
int first_timeX=1,ii=1,tete=1,first_time,not_one=0;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
list *l,*p;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
//**************
p=new list;
p->val=0;
p->puiss=0;
p->var='#';
p->op='#';
p->suiv=NULL;
l=p;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::oneClick(TObject *Sender)
{
if(power==1)
    {
p->puiss=1;
Edit1->Text=Edit1->Text+IntToStr(p->puiss);
power=0;
    }
else
    {
Edit1->Text=Edit1->Text+IntToStr(1);
  if(tete==1)
      {
p->val=1;
tete=0;
i=10;
j=10;
first_timeX=0;
      }
  else
      {
if(first_timeX==0)
  p->val=1+(p->val*i);//  i=i*10;
      }

    }
puis->Enabled=false;
Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button17Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
p->op='+';
Edit1->Text=Edit1->Text+(p->op);

//*********************
p->suiv=new list;
p=p->suiv;
p->val=0;
p->var='#';
p->op='#';
p->puiss=0;
p->suiv=NULL;
//*********************

puis->Enabled=false;
Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;

Button21->Enabled=true;
//Button22->Enabled=true;

zero->Enabled=true;
one->Enabled=true;
two->Enabled=true;
three->Enabled=true;
four->Enabled=true;
five->Enabled=true;
six->Enabled=true;
seven->Enabled=true;
eight->Enabled=true;
nine->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
p->op='-';
Edit1->Text=Edit1->Text+(p->op);
l=p;
//*********************
p->suiv=new list;
p=p->suiv;
p->val=0;
p->var='#';
p->op='#';
p->puiss=0;
p->suiv=NULL;
//*********************

puis->Enabled=false;
Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;

zero->Enabled=true;
one->Enabled=true;
two->Enabled=true;
three->Enabled=true;
four->Enabled=true;
five->Enabled=true;
six->Enabled=true;
seven->Enabled=true;
eight->Enabled=true;
nine->Enabled=true;

Button21->Enabled=true;
//Button22->Enabled=true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
Edit1->Text=Edit1->Text+('*');
puis->Enabled=false;

Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;

zero->Enabled=true;
one->Enabled=true;
two->Enabled=true;
three->Enabled=true;
four->Enabled=true;
five->Enabled=true;
six->Enabled=true;
seven->Enabled=true;
eight->Enabled=true;
nine->Enabled=true;

Button21->Enabled=true;
//Button22->Enabled=true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::zeroClick(TObject *Sender)
{
Edit1->Text=Edit1->Text+IntToStr(0);
if(tete!=1)
  p->val=(p->val*i);

Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::twoClick(TObject *Sender)
{
if(power==1)
{
p->puiss=2;
Edit1->Text=Edit1->Text+IntToStr(p->puiss);
power=0;
}
else
{
Edit1->Text=Edit1->Text+IntToStr(2);
not_one=1;//true;
if(tete==1)
{
p->val=2;
tete=0;
i=10;
j=10;
first_timeX=0;
}
else
{
if(first_timeX==0)
  p->val=2+(p->val*i);
}

}
//p->suiv=new list;
puis->Enabled=false;

Button21->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::threeClick(TObject *Sender)
{
if(power==1)
{
p->puiss=3;
Edit1->Text=Edit1->Text+IntToStr(p->puiss);
power=0;
}
else
{
Edit1->Text=Edit1->Text+IntToStr(3);
not_one=1;//true;
if(tete==1)
{
p->val=3;
tete=0;
i=10;
j=10;
first_timeX=0;
}
else
{
if(first_timeX==0)
  p->val=3+(p->val*i);
}

}

Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::fourClick(TObject *Sender)
{
if(power==1)
{
p->puiss=4;
Edit1->Text=Edit1->Text+IntToStr(p->puiss);
power=0;
}
else
{
Edit1->Text=Edit1->Text+IntToStr(4);
not_one=1;//true;
if(tete==1)
{
p->val=4;
tete=0;
i=10;
j=10;
first_timeX=0;
}
else
{
if(first_timeX==0)
  p->val=4+(p->val*i);
}

}
puis->Enabled=false;

Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::fiveClick(TObject *Sender)
{
if(power==1)
{
p->puiss=5;
Edit1->Text=Edit1->Text+IntToStr(p->puiss);
power=0;
}
else
{
Edit1->Text=Edit1->Text+IntToStr(5);
not_one=1;//true;
if(tete==1)
{
p->val=5;
tete=0;
i=10;
j=10;
first_timeX=0;
}
else
{
if(first_timeX==0)
  p->val=5+(p->val*i);
}

}
puis->Enabled=false;
Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::sixClick(TObject *Sender)
{
if(power==1)
{
p->puiss=6;
Edit1->Text=Edit1->Text+IntToStr(p->puiss);
power=0;
}
else
{
Edit1->Text=Edit1->Text+IntToStr(6);
not_one=1;//true;
if(tete==1)
{
p->val=6;
tete=0;
i=10;
j=10;
first_timeX=0;
}
else
{
if(first_timeX==0)
  p->val=6+(p->val*i);
}

}
Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::sevenClick(TObject *Sender)
{
if(power==1)
{
p->puiss=7;
Edit1->Text=Edit1->Text+IntToStr(p->puiss);
power=0;
}
else
{
Edit1->Text=Edit1->Text+IntToStr(7);
not_one=1;//true;
if(tete==1)
{
p->val=7;
tete=0;
i=10;
j=10;
first_timeX=0;
}
else
{
if(first_timeX==0)
  p->val=7+(p->val*i);
}

}

//p->suiv=new list;
puis->Enabled=false;
Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::eightClick(TObject *Sender)
{
if(power==1)
{
p->puiss=8;
Edit1->Text=Edit1->Text+IntToStr(p->puiss);
power=0;
}
else
{
Edit1->Text=Edit1->Text+IntToStr(8);
not_one=1;//true;
if(tete==1)
{
p->val=8;
tete=0;
i=10;
j=10;
first_timeX=0;
}
else
{
if(first_timeX==0)
  p->val=8+(p->val*i);
}

}
puis->Enabled=false;

Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::nineClick(TObject *Sender)
{
if(power==1)
{
p->puiss=9;
Edit1->Text=Edit1->Text+IntToStr(p->puiss);
power=0;
}
else
{
Edit1->Text=Edit1->Text+IntToStr(9);
not_one=1;//true;
if(tete==1)
{
p->val=9;
tete=0;
i=10;
j=10;
first_timeX=0;
}
else
{
if(first_timeX==0)
  p->val=9+(p->val*i);
}

}
puis->Enabled=false;

Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::puisClick(TObject *Sender)
{
power=1;

Edit1->Text=Edit1->Text+('^');
puis->Enabled=false;

zero->Enabled=true;
one->Enabled=true;
two->Enabled=true;
three->Enabled=true;
four->Enabled=true;
five->Enabled=true;
six->Enabled=true;
seven->Enabled=true;
eight->Enabled=true;
nine->Enabled=true;

Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;

Button21->Enabled=false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button21Click(TObject *Sender)
{

first_time=0;
p->var='X';
if(not_one==0) p->val=1;
p->puiss=1;
Edit1->Text=Edit1->Text+(p->var);

puis->Enabled=true;
Button21->Enabled=false;
//Button22->Enabled=false;

Button2->Enabled=true;
Button3->Enabled=true;

zero->Enabled=false;
one->Enabled=false;
two->Enabled=false;
three->Enabled=false;
four->Enabled=false;
five->Enabled=false;
six->Enabled=false;
seven->Enabled=false;
eight->Enabled=false;
nine->Enabled=false;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn5Click(TObject *Sender)
{

Panel1->Visible=false;
Image1->Visible=true;
//******************
 p=l;
while(p!=NULL)
{
if((p->val!=0)||(p->val!=1))
Edit4->Text=Edit4->Text+(p->val);
//p->var
if(p->var!='#')
Edit4->Text=Edit4->Text+(p->var);
//p->puiss
if((p->puiss!=0)&&(p->puiss!=1))
{
Edit4->Text=Edit4->Text+('^');
Edit4->Text=Edit4->Text+(p->puiss);
}
//p->op
if(p->op!='#')
Edit4->Text=Edit4->Text+(p->op);
//p->suiv
p=p->suiv;
}
//*******************
p=l;
while(p!=NULL)
 {
   if(p->var=='X')
           {
p->val=(p->puiss)*(p->val);
p->puiss=p->puiss-1;
if(p->puiss==0) p->var='#';
           }
   else
           {
p->val=0;
p->var='#';
p->op='#';
p->puiss=0;
           }
   p=p->suiv;
 }
//******-----------Affichage******-----------//
p=l;
while(p!=NULL)
 {
//if((p->val!=0)||(p->val!=1))
 Edit5->Text=Edit5->Text+(p->val);
if(p->var!='#')
 Edit5->Text=Edit5->Text+(p->var);
//p->puiss
if((p->puiss!=0)&&(p->puiss!=1))
    {
Edit5->Text=Edit5->Text+('^');
Edit5->Text=Edit5->Text+(p->puiss);
    }
//p->op
if(p->op!='#')
   {
if((p->suiv->val!=0)||(p->val!=0))
//if(p->suiv->val!=0)
Edit5->Text=Edit5->Text+(p->op);
   }
p=p->suiv;
 }

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button12Click(TObject *Sender)
{
/*F=Fl;
while(F!=NULL)
{
if(F->puiss!=0)
   {
F->val=(F->puiss)*(F->val);
F->puiss=F->puiss-1;
if(F->puiss==0) F->var='#';
   F=F->suiv;
   }//end : if puiss..
else
{
F->val=0;
F->var='#';
F->op='#';
F->puiss=0;
   F=F->suiv;
}
}

  • /
//--------------------- } //--------------------------------------------------------------------------- void __fastcall TForm1::Image4Click(TObject *Sender) { Form1->Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image8Click(TObject *Sender) { Close(); } //---------------------------------------------------------------------------

Conclusion :


svp, n'oubliez pas d'envoyer vos commantaires..
ah oui avant de faire;
il exist peut etre 02 petits défaux
-le polynome doit etre écrit suivant l'ordre décroissant de la puissance.
-eeet, vous ne pouvez pas écrire 02 parties du polynome de meme puissance.
"Arigato"

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_temary)