• Aucun résultat trouvé

Exercice 2 : Types ´ enum´ er´ es

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 2 : Types ´ enum´ er´ es"

Copied!
2
0
0

Texte intégral

(1)

Isup 1 - Programmation TD no7 Matthieu Journault 1 d´ecembre 2020 Il est assez rare en programmation de ne devoir manipuler que des types atomiques, comme les entiers, les chaˆınes de caract`eres, les flottants, etc... Pour cette raison tous les langages de programmation fournissent `a l’utilisateur un moyen de d´efinir de nouveaux types plus complexes, comprendre : compos´es.

Exercice 1 : Types structur´ es

Q. 1 D´efinir une structure struct complex; permettant de repr´esentant un nombre complexe z au moyen de deux float, x ety tel que z =x+iy.

Q. 2D´efinir un type C, complexcomme ´etant une structurestruct complex.

Q. 3D´efinir une fonctionvoid print_complex(complex c);, affichant un nombre complexe

Q. 4D´efinir une fonctioncomplex add(complex a, complex b);, retournant a+b.

Q. 5D´efinir une fonctioncomplex opp(complex a);, retournant −a.

Q. 6D´efinir une fonctioncomplex sub(complex a, complex b);, retournant a−b.

Q. 7D´efinir une fonctioncomplex mul(complex a, complex b);, retournant le produit ab.

Q. 8 D´efinir une fonction complex scal(float alpha, complex a);, retournant le produit scalaire alpha.a.

Q. 9D´efinir une fonctioncomplex sq_norm(complex a);, retournant |a|2.

Q. 10D´efinir une fonction complex conjugate(complex a);, retournant le conjugu´e de a : a.

Q. 11D´efinir une fonction complex inv(complex a);, retournant 1

a.

Q. 12D´efinir un nouveau typecomplex2contenant deux flottantsretthetaet repr´esentant le nombre complexereitheta.

Q. 13D´efinir une fonction void print_complex2(complex2 c);, affichant un nombre complexe

Q. 14D´efinir deux fonctions de conversions complex to_complex(complex2 c);et

complex2 of_complex(complex c); permettant les traductions d’une repr´esentation en l’autre.

Exercice 2 : Types ´ enum´ er´ es

Dans cet exercice nous voulons repr´esenter un jeu de carte par un tableau contenant toutes les cartes. Les cartes ´etant d´efinies par un type structur´e (carte, couleur), chacune de ces deux entit´es ´etant

1

(2)

elle-mˆeme un type ´enum´er´e.

Q. 15D´efinir un enum color pouvant ˆetre Pique, Coeur, Carreau, ou Trefle

Q. 16D´efinir un enum value pouvant ˆetre Roi,Dame, Valet.

Q. 17D´efinir un type structur´e card´etant compos´e d’une couleur et d’une valeur.

Q. 18D´efinir des fonctions d’affichage pour les couleurs, valeurs et finalement cartes.

Q. 19D´efinir une fonctionvoid fill_all_card(card carr[12]) prenant en argument un tableau de carte et le remplissant avec chacune des 12 cartes de notre jeu de carte.

Q. 20 D´efinir une fonction void print_deck(card carr[12]); permettant l’affichage d’un jeu de carte.

Q. 21 D´efinir une fonction void shuffle(card carr[12]) impl´ementant l’algorithme de Fisher et Yates pour m´elanger un tableau :

— Pour i allant de n `a 1 ;

— Choisir j uniform´ement dans 0, . . . , i

— Inverser le contenu du tableau des cases i etj

Q. 22Afficher un jeu de carte m´elang´e.

2

Références

Documents relatifs

Attention il faudra peut-ˆetre adapter certains des principes ennonc´es ci-dessous au mod`ele exact de votre calculatrice.. 1 Activer le

CONSIGNE : à l'aide du diaporama, trouve les définitions des différents types de gouvernements grecs.. TYPE DE RÉGIME ÉTYMOLOGIE

L’exp´ erience consistant ` a prendre un appartement de est v´ erifier s’il est rentable est une ´ epreuve de Bernoulli de succ` es L’appartement est rentables et de probabilit´

X est la variable continue sur [2; 3] dont la loi a pour densit´e de probabilit´e la fonction f... D´eterminer la probabilit´e de chacun des ´ev´enements

= suivi d’une constante enti`ere), les ´el´ements suivants ´etant alors incr´ement´es `a partir de cette valeur. Par exemple si on d´eclare :.. enum jour {lundi, mardi, mercredi =

Pour obtenir la totalité des points à chaque question, les calculs devront être détaillés proprement, et tout raisonnement devra être clairement expliqué.. Précisez, dans chaque

un tableau a deux di- mensions donnant, pour chaque ´ etat q et chaque lettre a de l’alphabet, l’´ etat dans lequel on arrive si on emprunte la transition d’´ etiquette a en

Propri´ et´ e (caract´ erisation des nombres r´ eels) : Un nombre complexe est r´eel si et seulement si sa partie imaginaire est nulle, i.e... Cette correspondance biunivoque entre C