summaryrefslogtreecommitdiff
path: root/sem_2/HLIN202/devoir
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/devoir
Initial commit
Diffstat (limited to 'sem_2/HLIN202/devoir')
-rw-r--r--sem_2/HLIN202/devoir/exo1.cpp24
-rw-r--r--sem_2/HLIN202/devoir/exo2.cpp58
2 files changed, 82 insertions, 0 deletions
diff --git a/sem_2/HLIN202/devoir/exo1.cpp b/sem_2/HLIN202/devoir/exo1.cpp
new file mode 100644
index 0000000..b1986e7
--- /dev/null
+++ b/sem_2/HLIN202/devoir/exo1.cpp
@@ -0,0 +1,24 @@
+#include<iostream>
+
+//PROTOTYPES
+float produit ( float*, int);
+
+//FONCTIONS
+float produit ( float tab[], int taille) {
+ return taille == 1 ? tab[0] : tab[taille-1] * produit ( tab, taille-1);
+}
+
+//MAIN
+int main () {
+ int taille;
+ std::cout<< " Entrez la taille de tableau : " << std::endl;
+ std::cin>> taille;
+ float tab[taille];
+ for ( int i =0 ; i < taille; i ++) {
+ std::cout<< " Entrez le contenu de la case " << i+1 << " du tableau : ";
+ std::cin>>tab[i];
+ std::cout<<std::endl;
+ }
+std::cout << " Le produit des membres du tableau est : " << produit(tab, taille)<<std::endl;
+return 0;
+}
diff --git a/sem_2/HLIN202/devoir/exo2.cpp b/sem_2/HLIN202/devoir/exo2.cpp
new file mode 100644
index 0000000..6fda8c0
--- /dev/null
+++ b/sem_2/HLIN202/devoir/exo2.cpp
@@ -0,0 +1,58 @@
+#include<iostream>
+
+//PROTOTYPES
+int ** inverseL ( int **,int,int);
+void affichemat ( int **,int,int);
+
+
+//FONCTIONS
+int ** inverseL ( int ** matrice, int lignes, int colonnes) { // inverse le contenu de chaque ligne de matrice
+ int ** inverse = new int*[lignes]; // creation d'une nouvelle matrice, sur le tas
+ for ( int i = 0; i < lignes; i ++){
+ inverse[i]=new int[colonnes]; // suite de la creation de la matrice
+ for(int j = 0; j < colonnes; j ++) {
+ inverse[i][j]= matrice[i][colonnes-1-j]; // on rempli la nouvelle matrice, en mettant dans chaque case la valeur situee a l'opposee de la ligne
+ }
+ }
+ return inverse;
+}
+
+void affichemat ( int ** matrice, int lignes, int colonnes){ // affiche matrice
+ for ( int i = 0; i < lignes; i ++) {
+ std::cout << "| ";
+ for ( int j = 0; j < colonnes; j ++) {
+ std::cout<< matrice[i][j]<<" ";
+ }
+ std::cout<<"|"<<std::endl;
+ }
+}
+
+//MAIN
+int main () {
+ int m, n;
+ int ** B;
+ std::cout << " Saissisez le nombre de lignes de la matrice : ";
+ std::cin>> m;
+ std::cout<<std::endl<<" Saissisez le nombre de colonnes de la matrice : ";
+ std::cin>>n;
+ std::cout<<std::endl;
+ int **matrice= new int*[m];
+ for ( int i = 0; i <m; i ++ ){
+ matrice[i]=new int[m];
+ for (int j = 0; j <n;j++) {
+ matrice[i][j]= i + j; // initialisation de la matrice...
+ }
+ }
+ B= inverseL(matrice, m, n);
+ std::cout<< " Matrice initiale : "<< std::endl;
+ affichemat(matrice,m,n);
+ std::cout<<std::endl<< " Matrice apres inversion des lignes : " << std::endl;
+ affichemat(B,m,n);
+ for ( int i = 0; i < m; i ++) { // liberation de l'espace memoire ( sur le tas ) que le programme a utilisé
+ delete[] matrice[i];
+ delete[] B[i];
+ }
+ delete[] matrice;
+ delete[] B;
+ return 0;
+ }