diff options
| author | Gaspard Coulet <gaspard.coulet@mines-ales.org> | 2021-04-28 23:05:53 +0200 |
|---|---|---|
| committer | Gaspard Coulet <gaspard.coulet@mines-ales.org> | 2021-04-28 23:05:53 +0200 |
| commit | 9fe033ea88c2f705ec18c232873d056e0c229d72 (patch) | |
| tree | 0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_2/HLIN202/TP/TP9-10 | |
Initial commit
Diffstat (limited to 'sem_2/HLIN202/TP/TP9-10')
| -rw-r--r-- | sem_2/HLIN202/TP/TP9-10/exo | bin | 0 -> 13743 bytes | |||
| -rw-r--r-- | sem_2/HLIN202/TP/TP9-10/exo14/exo14 | bin | 0 -> 13443 bytes | |||
| -rw-r--r-- | sem_2/HLIN202/TP/TP9-10/exo14/exo14.cpp | 40 | ||||
| -rw-r--r-- | sem_2/HLIN202/TP/TP9-10/exo6.cpp | 140 | ||||
| -rw-r--r-- | sem_2/HLIN202/TP/TP9-10/exopart2 | bin | 0 -> 13582 bytes | |||
| -rw-r--r-- | sem_2/HLIN202/TP/TP9-10/exopart2.cpp | 51 |
6 files changed, 231 insertions, 0 deletions
diff --git a/sem_2/HLIN202/TP/TP9-10/exo b/sem_2/HLIN202/TP/TP9-10/exo Binary files differnew file mode 100644 index 0000000..651c6fe --- /dev/null +++ b/sem_2/HLIN202/TP/TP9-10/exo diff --git a/sem_2/HLIN202/TP/TP9-10/exo14/exo14 b/sem_2/HLIN202/TP/TP9-10/exo14/exo14 Binary files differnew file mode 100644 index 0000000..79a0305 --- /dev/null +++ b/sem_2/HLIN202/TP/TP9-10/exo14/exo14 diff --git a/sem_2/HLIN202/TP/TP9-10/exo14/exo14.cpp b/sem_2/HLIN202/TP/TP9-10/exo14/exo14.cpp new file mode 100644 index 0000000..da0c7c5 --- /dev/null +++ b/sem_2/HLIN202/TP/TP9-10/exo14/exo14.cpp @@ -0,0 +1,40 @@ +#include<iostream>
+
+int * extraitpairs ( int * tab, int taille, int * taillenew) {
+ *taillenew=0;
+ for (int i = 0; i < taille; i ++){
+ *taillenew += tab[i]%2==0? 1 : 0;
+ }
+ int * tabnew = new int[*taillenew];
+ int j=0;
+ for ( int i =0; i < *taillenew; i ++ ){
+ while ( tab[j] % 2!=0){
+ j ++;
+ }
+ tabnew[i]= tab[j];
+ j++;
+ }
+ return tabnew;
+}
+
+void affichetab ( int *P, int taille) {
+std::cout<<"[";
+for ( int i =0; i <taille ; i++){
+ std::cout<<P[i];
+ if (i != (taille-1)) std::cout<<",";
+}
+std::cout<<"]"<<std::endl;
+}
+
+int main (){
+ int tmp;
+ int *T = new int[4];
+ for (int i=0; i<4; i ++){
+ T[i]= i == 0 ? 1: T[i-1]+1;
+ }
+ int *tabrslt;
+ tabrslt=extraitpairs(T,4,&tmp);
+ affichetab(T,4);
+ affichetab(tabrslt,tmp);
+ return 0;
+}
diff --git a/sem_2/HLIN202/TP/TP9-10/exo6.cpp b/sem_2/HLIN202/TP/TP9-10/exo6.cpp new file mode 100644 index 0000000..a2c0e6d --- /dev/null +++ b/sem_2/HLIN202/TP/TP9-10/exo6.cpp @@ -0,0 +1,140 @@ +#include<iostream> + +int max ( int a, int b) { + return a>b? a : b; +} +void affichetab ( int *P, int taille) { +std::cout<<"["; +for ( int i =0; i <taille ; i++){ + std::cout<<P[i]; + if (i != (taille-1)) std::cout<<","; +} +std::cout<<"]"<<std::endl; +} + +int* reverse ( int *T, int taille) { +int *P = new int[taille]; +for ( int i = 0; i < taille; i ++ ) { + P[i]= T[taille-i]; +} +return P; +} + +int* ajoutT ( int *T, int taille, int x) { +int *P=new int[taille+1]; +bool done=false; +for (int i =0; i < taille+1; i ++ ) { + if ( !done ) { + if ( i == taille) { + P[taille]= x; + done = true; + } + else if ( x<=T[i]) { + P[i]= x; + done = true; + } + + else { + P[i]=T[i]; + } + } + else { + P[i] = T[i-1]; + } + } + return P; +} + +int * fusionT(int * T1, int * T2, int taille1, int taille2) { + int *P= new int[taille1+taille2]; + int j = 0; + + for ( int i = 0; i < taille1; i ++) { + P[i]=T1[i]; + } + for (int i = taille1; i <taille1+taille2; i++ ) { + P= ajoutT(P, i, T2[j]); + j ++; + } + return P; +} + +void duplicata ( int ** P, int taille) { + int *Tmp = new int[taille]; + int *T = *P; + for ( int i = 0; i < taille; i ++) { + Tmp[i] = T[i]; + } + delete[] *P; + *P= new int[taille*2]; + T=*P; + + for ( int i = 0; i < taille; i ++) { + T[i] = Tmp[i]; + } + + delete[] Tmp; + for (int i = 0; i < taille; i ++) { + T[2*taille-i-1]= T[i]; + } +} +int * concat ( int *T1, int *T2, int taille1, int taille2) { + int * P = new int[taille1+taille2]; + for ( int i = 0; i < taille1+taille2; i ++) { + if (i < taille1) { + P[i]=T1[i]; + } + else { + P[i]= T2[i-taille1]; + } + } + return P; +} + +int maximum ( int *T, int taille) { + if (taille == 1) { + return T[0]; + } + int *t1 = new int[taille/2]; + int *t2 = new int[taille-(taille/2)]; + for (int i=0; i < taille; i ++) { + if ( i < taille/2) { + t1[i]= T[i]; + } + else { + t2[i-(taille/2)]= T[i]; + } + } + + return max(maximum(t1, taille/2), maximum(t2,(taille-(taille/2)))); +} +int maximum2 ( int *T, int taille) { + if (taille ==1) { + return T[0]; + } + else { + return max(T[taille-1], maximum2(T, taille-1)); + } +} +int main () { +// int taille; +// float somme=0; +int *tab = new int[4]; +tab[0]= 2; +tab[1]=3; +tab[2]=4; +tab[3]=1; +/*std::cin>>taille; +float *P=new float[taille]; +for(int i=0;i<taille;i++){ + P[i]=(1/(1+(float)i)); + P[i]*=P[i]; + somme+=P[i]; +} +affichetab(P, taille); +std::cout<<std::endl<<somme<<std::endl; +*/ + +std::cout<<maximum2(tab,4); +return 0; +} diff --git a/sem_2/HLIN202/TP/TP9-10/exopart2 b/sem_2/HLIN202/TP/TP9-10/exopart2 Binary files differnew file mode 100644 index 0000000..d37abb8 --- /dev/null +++ b/sem_2/HLIN202/TP/TP9-10/exopart2 diff --git a/sem_2/HLIN202/TP/TP9-10/exopart2.cpp b/sem_2/HLIN202/TP/TP9-10/exopart2.cpp new file mode 100644 index 0000000..cec0725 --- /dev/null +++ b/sem_2/HLIN202/TP/TP9-10/exopart2.cpp @@ -0,0 +1,51 @@ +#include <iostream>
+
+float** MatMul ( float ** m1, float ** m2, int m, int n, int p) {
+ float ** ret= new float*[n];
+ for ( int i = 0; i<n;i++){
+ ret[i]=new float[n];
+ }
+ for (int i = 0; i<n;i++){
+ for ( int j=0; j < n; j ++){
+ for ( int k=0; k<m; k ++) {
+ for ( int l=0; l<n;l++){
+ ret[i][j]+= m1[k][l]*m2[l][k];
+ }
+ }
+ }
+ }
+ return ret;
+}
+
+float ** CreerMat ( int m, int n){
+ float **T= new float*[m];
+ for (int i = 0; i < m; i ++) {
+ T[i]= new float[n];
+ }
+ for (int i = 0; i < m; i ++) {
+ for (int j= 0; j <n; j ++) {
+ T[i][j] = 1/(float)(i+j+1);
+ }
+ }
+ return T;
+}
+void afficheMat ( float **Mat, int lignes, int colonnes){
+ for ( int i = 0; i<lignes; i ++) {
+ for (int j = 0; j < colonnes;j++){
+ std::cout<<Mat[i][j]<<" ";
+ }
+ std::cout<<std::endl;
+ }
+ std::cout<<std::endl;
+}
+
+int main () {
+ int m,n;
+ std::cin>>m>>n;
+
+ float **T;
+
+ T=MatMul(CreerMat(m,n),CreerMat(m,n), m,n,n);
+ afficheMat(T, m,n);
+ return 0;
+}
|
