B.Shishedjiev - Informatique II1 Travaux dirigés 5 Les structures.

Slides:



Advertisements
Présentations similaires
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Advertisements

Programmation Orienté Objet en C++
Structures de données et complexité
CH-II. LA GESTION DES DONNEES TECHNIQUES
la programmation en langage C
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Chapitre 3 (fin). Les arbres AVL
FLSI602 Génie Informatique et Réseaux
B.Shishedjiev - Informatique II
A B D A B D LSC avec « sentinelle »
Algorithmes et programmes
Générer des solides.
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Algorithmique et programmation Informatique Cours 9 12/11/2001.
Les fichiers et les chaînes de caractères
Etude de cas : buffer clavier
Abder Alikacem Semaine 13 La récursivité
Examen intra #1 Types abstraits, liste, pile, file et file prioritaire. Les graphes Récursivité.
IFT-2000: Structures de données Les graphes Dominic Genest, 2009.
Modèles d’implantation
Les enregistrements (struct) suite. Struct Rappel Enregistrement : Suite de données pouvant être de types différents, accessibles via une seule variable.
Points importants de la semaine La représentation cachée. Les enregistrements.
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Un langage de programmation hybride
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
8PRO100 Éléments de programmation Les types composés.
Texture 2D en PGC++.
PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL
Comparaison des anciens et nouveaux programmes de 3ème de 2nde
Héritage et composition
Exemple de gestion d'un buffer clavier en liste circulaire
Structures des données
B.Shishedjiev - Informatique II
1 Exemples Construction et implantation de types de données abstraits.
(Vient du grec et signifie « Peut prendre plusieurs formes »)
AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class Entier { int i; int lit_i(void); void Ecrit_i(int); }; int Entier::lit_i(void)
Le carré de l’hypoténuse.
Ch. PAUL - Piles et Files à l'aide de listes chainées
B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler.
LES PILES ET FILES.
B.Shishedjiev - Informatique II1 Travaux dirigés 4 Les tableaux.
Sous-programmes.
B.Shishedjiev - TD11 Travaux dirigés 1 Expressions et affectation Entrée-sortie.
II. Chaînage, SDD séquentielles
Algorithmes sur les sons
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Arbres binaires et tables de hachage
ETNA – 1ème année Guillaume Belmas –
Volume des prismes rectangulaires et triangulaires
Les types composés Les enregistrements.
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
Conception de Programmes - IUT de Paris - 1ère année Cours 2 – Références et passage de paramètres Les Références –Introduction aux références.
B.Shishedjiev - Modèle relationnel
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Initiation à l’Algorithmique
LIFI-Java 2004 Séance du Mercredi 29 sept. Cours 4.
Introduction à la programmation objet avec java
Wacław Franciszek Sierpiński
TICE et enseignement des maths au collège
Imagerie Numérique Synthèse d’images Objets 3D Licence Pro Sébastien THON IUT de l’Université de Provence, site d’Arles Département Informatique.
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Structures de données IFT-2000 Abder Alikacem Laboratoire #1 Département d’informatique et de génie logiciel Édition Septembre 2009.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Cours de Langage C Les structures
Places Send File Receive Messages.
II. Chaînage, SDD séquentielles
Les structures de base Listes chainées. Listes Les listes(similaire aux tableaux) sont des structures informatiques qui permettent de garder en mémoire.
Int 10. Int 6.
renvoie la moyenne d’un tableau d’entiers
Transcription de la présentation:

B.Shishedjiev - Informatique II1 Travaux dirigés 5 Les structures

B.Shishedjiev - Informatique II2 Un peu de géométrie Faire un programme qui lit un ensemble de points dans la plaine X,Y et construit tous les triangles possibles aux lesquels les points peuvent être de sommets typedef struct { double x; double y; } Point; typedef struct { Point sommets[3]; } Triangle;

B.Shishedjiev - Informatique II3 Les traingles 1 3 2

B.Shishedjiev - Informatique II4 Les fonctions Point makePoint(double,double); int lirePoint(Point*); Triangle makeTriangle(Point,Point,Point); int lirePoints(Point[], int); double determinant(Triangle); void affTriangle(Triangle); void affTriangles(Triangle[], int);

B.Shishedjiev - Informatique II5 Faire les Triangles Algorithme i<=n-2 j=i+1 i=1 j<=n-1 k=j+1 j=j+1 i=i+1 k=k+1 Former triangle nt nt=nt+1 k<=n fin oui non existe triangle i,j,k non oui void main(void) { int np, nt; int i,j,k; Point points[MAXPOINTS]; Triangle triangles[MAXTRIANGLES]; np = lirePoints(points,MAXPOINTS); nt=0; for (i=0; i<np-2;i++) for(j=i+1; j <np-1;j++) for (k=j+1; k<np; k++) if (determinant(makeTriangle(poin ts[i],points[j], points[k]))!=0.0) triangles[nt++] = makeTriangle(points[i],points[ j],points[k]); printf("\n"); affTriangles(triangles,nt); }

B.Shishedjiev - Informatique II6 Certains fonctions int lirePoint(Point *p){ int res; double x,y; res = scanf("%lf%lf",&x,&y); if (res == 2) *p = makePoint(x,y); return res; } Point makePoint(double x, double y){ Point p; p.x = x; p.y = y; return p; } Triangle makeTriangle(Point p1, Point p2, Point p3){ Triangle t; t.sommets[0] = p1; t.sommets[1] = p2; t.sommets[2] = p3; return t ; }

B.Shishedjiev - Informatique II7 Certains fonctions int lirePoints(Point p[], int maxn){ int n=0, res; printf("Tapez lea coordonnes des points en finissant avec EOF\n"); do{ printf("Point no %2d: ",n+1); res = lirePoint(&p[n]); if(res==2) n++; }while (n < maxn && res != EOF); return n; }

B.Shishedjiev - Informatique II8 Trier les triangles selon leurs surfaces typedef struct { Point sommets[3]; double surf; } Triangle; void triTriangles(Triangle t[],int n ) { Triangle temp; int i,j, m; for (j = n; j>1; j--){ m=0; for (i=1; i<j; i++) if (t[m].surf < t[i].surf) m=i; if (m !=j-1) { temp = t[m]; t[m] = t[j-1]; t[j-1] = temp; }

B.Shishedjiev - Informatique II9 Les nombres complexes typedef struct { double re, im; } Complex; Complex makeComplex(double, double); double realPart(Complex); double imagPart(Complex); Complex moinsComplex(Complex); Complex addComplex(Complex, Complex); Complex subComplex(Complex, Complex); Complex mulComplex(Complex, Complex); Complex divComplex(Complex, Complex); double modComplex(Complex); Complex conjComplex(Complex); void affComplex(Complex); int lireComplex(Complex *);

B.Shishedjiev - Informatique II10 Les nombres complexes Complex makeComplex(double re, double im) { Complex r; r.re =re; r.im = im; return r; } double realPart(Complex c) { return c.re; } Complex moinsComplex(Complex c) { return makeComplex(-c.re,-c.im); } Complex addComplex(Complex a, Complex b) { return makeComplex(a.re+b.re,a.im+b.im); } Complex subComplex(Complex a, Complex b) { return addComplex(a, moinsComplex(b)); }

B.Shishedjiev - Informatique II11 Les nombres complexes Complex divComplex(Complex a, Complex b) { double mod = modComplex(b); return makeComplex((a.re*b.re+a.im*b.im)/mod,(a.im*b.re- a.re*b.im)/mod); } double modComplex(Complex a){ return a.re*a.re +a.im*a.im; } void affComplex(Complex c){ printf("(%7.3lf+%7.3lfi)", c.re,c.im); } int lireComplex(Complex *c){ int res; res = scanf("%lf+%lfi",&c->re,&c->im); return res == 2; }