From 9fe033ea88c2f705ec18c232873d056e0c229d72 Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:05:53 +0200 Subject: Initial commit --- sem_2/HLIN202/TP/TP11-12/exo 8.txt | 110 +++++++++++++++++++++++++++++++++++++ sem_2/HLIN202/TP/TP11-12/exo10 | Bin 0 -> 13656 bytes sem_2/HLIN202/TP/TP11-12/exo10.cpp | 66 ++++++++++++++++++++++ sem_2/HLIN202/TP/TP11-12/exo11 | Bin 0 -> 13683 bytes sem_2/HLIN202/TP/TP11-12/exo11.cpp | 74 +++++++++++++++++++++++++ sem_2/HLIN202/TP/TP11-12/exo5 | Bin 0 -> 13589 bytes sem_2/HLIN202/TP/TP11-12/exo5.cpp | 49 +++++++++++++++++ sem_2/HLIN202/TP/TP11-12/exo6 | Bin 0 -> 14155 bytes sem_2/HLIN202/TP/TP11-12/exo6.cpp | 98 +++++++++++++++++++++++++++++++++ 9 files changed, 397 insertions(+) create mode 100644 sem_2/HLIN202/TP/TP11-12/exo 8.txt create mode 100644 sem_2/HLIN202/TP/TP11-12/exo10 create mode 100644 sem_2/HLIN202/TP/TP11-12/exo10.cpp create mode 100644 sem_2/HLIN202/TP/TP11-12/exo11 create mode 100644 sem_2/HLIN202/TP/TP11-12/exo11.cpp create mode 100644 sem_2/HLIN202/TP/TP11-12/exo5 create mode 100644 sem_2/HLIN202/TP/TP11-12/exo5.cpp create mode 100644 sem_2/HLIN202/TP/TP11-12/exo6 create mode 100644 sem_2/HLIN202/TP/TP11-12/exo6.cpp (limited to 'sem_2/HLIN202/TP/TP11-12') 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 <> poly->coefs[i]; + std::cout<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<contenu<< " "; +while ( cell->suivant != NULL ) { +cell= cell->suivant; +std::cout<contenu << " "; +} +cell= cell->suivant; +std::cout<contenu << " "; +} + + + diff --git a/sem_2/HLIN202/TP/TP11-12/exo10 b/sem_2/HLIN202/TP/TP11-12/exo10 new file mode 100644 index 0000000..b22cbfc Binary files /dev/null and b/sem_2/HLIN202/TP/TP11-12/exo10 differ diff --git a/sem_2/HLIN202/TP/TP11-12/exo10.cpp b/sem_2/HLIN202/TP/TP11-12/exo10.cpp new file mode 100644 index 0000000..f53abed --- /dev/null +++ b/sem_2/HLIN202/TP/TP11-12/exo10.cpp @@ -0,0 +1,66 @@ +#include +#include +struct vecteur { + int dimension; + char nom; + double *coords; +}; + +vecteur* init ( int taille, char nom) { + vecteur * ret = new vecteur; + ret->dimension= taille; + ret->coords = new double[taille]; + ret->nom=nom; + for ( int i =0; i < taille; i ++) { + ret->coords[i]=0; + } + return ret; +} + +vecteur * oppose ( vecteur * vect) { + vecteur * ret = init(vect->dimension, vect->nom); + for ( int i =0; i < vect->dimension; i ++) { + ret->coords[i]= -vect->coords[i]; + } + return ret; +} + +vecteur * somme ( vecteur * vect1, vecteur * vect2) { + if ( vect1->dimension == vect2->dimension) { + char nom = 's'; + vecteur * ret=init ( vect1->dimension, nom); + for ( int i =0; i < ret->dimension; i ++) { + ret->coords[i]= vect1->coords[i]+ vect2->coords[i]; +} +return ret; +} +return 0; +} + +double scalaire ( vecteur * u, vecteur * v ) { + if ( u->dimension != v->dimension) { + std::cout<< " erreur " << std::endl; + return 0; } + double ret=0; + for ( int i = 0; i < u->dimension; i ++) { + ret += u->coords[i]*v->coords[i]; + } + return ret; +} + +double norme ( vecteur * u ) { + return sqrt(scalaire ( u,u)); +} + +int main () { + vecteur * u = init(2, *"u"); + vecteur * v = init(2, *"v"); + v->coords[0]= 0; + v->coords[1]= 1; + u->coords[0]= 45; + u->coords[1]= 1; + std::cout<< scalaire(u,v)< + +struct cellule { + int contenu; + cellule *suivant; +}; +struct file { + cellule *premier; + cellule *dernier; +}; + +file* init () { + file * ret = new file; + ret->premier=NULL; + ret->dernier=NULL; + return ret; +} +int cardinal ( file *w) { + int ret = 1; + if (w->premier == NULL ) return 0; + cellule * tmp = w->premier; + while ( tmp->suivant != NULL) { + tmp = tmp->suivant; + ret ++; + } + return ret; +} +bool estvide(file *w){ + return cardinal(w)==0; +} + +void ajouter(file *w, int valeur){ + cellule * tmp = new cellule; + tmp->contenu = valeur; + tmp->suivant = w->premier; + w->premier = tmp; +} + +int retire( file *w) { + int value; + cellule * ptr = w->premier; + while ( ptr->suivant->suivant != NULL) { + ptr = ptr->suivant; + } + value = ptr->suivant->contenu; + delete ptr->suivant; + ptr->suivant = NULL; + w->dernier = ptr; + return value; +} + +void retirefile ( file * w) { + while ( w->premier != NULL) { + retire(w); + } + delete w; +} + +void affichefile ( file * w ) { + cellule * ptr = w->premier; + std::cout << "\" "; + while ( ptr != NULL) { + std::cout<< ptr->contenu << " "; + ptr= ptr->suivant; + } + std::cout << " \""<< std::endl; +} + +int main () { + file * ptrfile = init(); + + std::cout << " Taille de la file : " << cardinal(ptrfile)<< std::endl; + return 0; +} diff --git a/sem_2/HLIN202/TP/TP11-12/exo5 b/sem_2/HLIN202/TP/TP11-12/exo5 new file mode 100644 index 0000000..6287485 Binary files /dev/null and b/sem_2/HLIN202/TP/TP11-12/exo5 differ diff --git a/sem_2/HLIN202/TP/TP11-12/exo5.cpp b/sem_2/HLIN202/TP/TP11-12/exo5.cpp new file mode 100644 index 0000000..24b70b7 --- /dev/null +++ b/sem_2/HLIN202/TP/TP11-12/exo5.cpp @@ -0,0 +1,49 @@ +#include + +struct CD { + int pistes; + int duree[100]; +}; + +CD cree (){ + CD disque; + return disque; +} + +void init ( CD *disque) { + std::cout<<"Entrez le nombre de pistes"<>disque->pistes; + for (int i = 0; i < disque->pistes; i++) { + std::cout<<"Entrez la duree (en secondes) de la piste numero : "<< i+1<< std::endl; + std::cin>> disque->duree[i]; + } +} +void afficheCD ( CD * disque){ + std::cout<< " Le CD est compose de " << disque->pistes << " pistes."<pistes; i ++) { + std::cout<< " "<< i + 1 << " "<duree[i]<duree ? 1 : 0; + } + return ret; +} + +int main () { + CD disque; + init(&disque); + std::cout<<"Duree totale : "<< dureetotale(disque)< +#include + + +struct s_point { + char nom; + int x,y; +}; + +struct lignepolygonale { + int nombre; + s_point *points; +}; + +double distance (s_point, s_point); +void affiche (s_point); + +double longueur ( lignepolygonale lp) { + double ret=0; + for ( int i = 0; i < lp.nombre-1; i ++) { + ret += distance (lp.points[i], lp.points[i+1]); + } + return ret; +} +lignepolygonale saisieLP () { + lignepolygonale ret; + std::cout<<"Nombre de points de la LP :"; + std::cin>>ret.nombre; + std::cout<> ret.points[i].nom; + std::cout << " Entrez les coords du point " << ret.points[i].nom << std::endl<<"x : "; + std::cin >> ret.points[i].x; + std::cout<<" y : "; + std::cin>>ret.points[i].y; + std::cout<>point.nom; + std::cout<>point.x; + std::cout << std::endl << "Saisir la coordonnee en y "; + std::cin >> point.y; + std::cout << std::endl; + if ( (int) point.nom > 90 || (int)point.nom < 65){ + std::cout<<" Saisie incorrecte"<nom = (char)0; + point->x=0; + point->y=0; +} +s_point sym ( s_point point) { + s_point ret; + ret.x= - point.x; + ret.y= -point.y; + ret.nom = (char)(65+(90-(int)point.nom)); + return ret; +} +int main () { + lignepolygonale zbeb; + zbeb=saisieLP(); + return 0; +} -- cgit v1.2.3