summaryrefslogtreecommitdiff
path: root/sem_2/HLIN202/TP/TP11-12/exo 8.txt
diff options
context:
space:
mode:
authorGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
committerGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
commit9fe033ea88c2f705ec18c232873d056e0c229d72 (patch)
tree0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_2/HLIN202/TP/TP11-12/exo 8.txt
Initial commit
Diffstat (limited to 'sem_2/HLIN202/TP/TP11-12/exo 8.txt')
-rw-r--r--sem_2/HLIN202/TP/TP11-12/exo 8.txt110
1 files changed, 110 insertions, 0 deletions
diff --git a/sem_2/HLIN202/TP/TP11-12/exo 8.txt b/sem_2/HLIN202/TP/TP11-12/exo 8.txt
new file mode 100644
index 0000000..3284acd
--- /dev/null
+++ b/sem_2/HLIN202/TP/TP11-12/exo 8.txt
@@ -0,0 +1,110 @@
+struct polynome {
+int degree;
+double *coefs;
+};
+
+1) polynome cree (){
+ polynome ret;
+ std::cout<<" Entrez le degree du polynome " << std::endl;
+ std::cin>> ret.degree;
+ ret.coefs = new double[ret.degree];
+ return ret;
+}
+2) void init ( polynome * poly ) {
+ for ( int i= 0; i < poly->degree; i ++ ) {
+ std::cout<<" Entrez le coefficient pour x^" << i <<std::endl;
+ std::cin >> poly->coefs[i];
+ std::cout<<std::endl;
+ }
+}
+
+3) void affiche ( polynome poly ) {
+ for ( int i =0; i <poly.degree; i ++ ) {
+ std::cout<<poly.coef[i] << "* X^"<<i<<" "<<i == poly.degree-1 ? " " : " + ";
+ }
+ std::cout<<std::endl;
+}
+
+4 ) polynome derive ( polynome poly ) {
+ polynome derivee;
+ derivee.degree = poly.degree - 1;
+ derivee.coefs = new double[direvee.degree];
+ for (int i = 0; i < derivee.degree; i ++ ) {
+ derivee.coefs[i]= poly.coefs[i+1]* (i + 1);
+ }
+ return derivee;
+}
+
+5 ) polynome primitive ( polynome poly ) {
+ polynome primitive;
+ primitive.degree = poly.degree + 1;
+ primitive.coefs = new double[primitive.degree];
+ primitive.coefs[0]= 0;
+ for (int i = 1; i < primitive.degree; i ++ ) {
+ primitive.coefs[i]= poly.coefs[i-1]* (1/(double)(i + 1));
+ }
+ return primitive;
+}
+
+6) double evalue ( polynome poly, double x) {
+ double ret;
+ for ( int i = 0; i < poly.degree; i ++ ) {
+ ret += ret.coefs[i] * pow ( x, i);
+}
+return ret;
+}
+
+EXERCICE 9 :
+
+1 ) pile init () {
+ pile pilvid;
+ pilvid.cardinal=0;
+ pilvid.suivant=NULL;
+}
+2 ) int cardinalpile ( pile pil ) {
+ return pil.cardinal;
+}
+3 ) bool estvide ( pile pil ) {
+ return pil.cardinal == 0;
+}
+4 ) void empiler ( pile *pil, int n) {
+ pil->cardinal ++;
+ cellule * ptr = new cellule;
+ ptr->contenu = n;
+ ptr->suivant = pil->premier;
+ pil->premier = ptr;
+}
+
+5 ) int depiler (pile * pil) {
+ pil->cardinal --;
+int ret = pil->premier->contenu;
+cellule * ptr = pil->premier->suivant;
+delete pil->premier;
+pil->premier = ptr;
+return ret;
+}
+
+6 )
+void libere ( pile * pil) {
+cellule*cell= pil->premier;
+while ( cell->suivant != NULL) {
+ delete cell;
+ cell = cell->suivant;
+}
+delete[] cell;
+delete[] pil;
+}
+
+7 ) void affichepile ( pile pil ) {
+cellule *cell = pil.premier;
+std::cout<<cell->contenu<< " ";
+while ( cell->suivant != NULL ) {
+cell= cell->suivant;
+std::cout<<cell->contenu << " ";
+}
+cell= cell->suivant;
+std::cout<<cell->contenu << " ";
+}
+
+
+