blob: 3284acd7d4d5950db16f80b8838e11bb31682f7a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
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 << " ";
}
|