• Aucun résultat trouvé

Q. 1 Dénir le type vector correspondant à une structure ayant pour champs : dim : dimension du vecteur (type int),

N/A
N/A
Protected

Academic year: 2022

Partager "Q. 1 Dénir le type vector correspondant à une structure ayant pour champs : dim : dimension du vecteur (type int),"

Copied!
2
0
0

Texte intégral

(1)

Master 2 MPM Langage C

Institut Galilée Année 2012-2013

Travaux dirigés - 3 Exercice 1

Dans cet exercice, nous allons implémenter et utiliser quelques outils d'algèbre linéaire.

Q. 1 Dénir le type vector correspondant à une structure ayant pour champs : dim : dimension du vecteur (type int),

pval : pointeur sur les composantes du vecteur (type double *).

Q. 2 Nous voulons écrire une fonction AllocVector permettant d'allouer un objet de type vector à la dimen- sion N.

1. Donner deux prototypes possibles (non trivialement similaire) pour la fonction AllocVector.

2. Choisir un prototype et écrire la fonction associée.

Q. 3 1. Ecrire une fonction freeVector permettant de désallouer le champ val d'un objet de type vector.

2. Justier le choix de ses arguments!

Q. 4 1. Ecrire une fonction FREEVector permettant de désallouer le champ val d'un objet de type vector, de mettre à zéro le champ dim et à NULL le champ val.

2. Justier le choix de ses arguments!

Q. 5 Nous voulons écrire une fonction RandVector permettant d'initaliser chacune des composantes d'un vecteur par un nombre aléatoire (utiliser la fonction drand48() du langage C qui retourne un double entre 0 et 1 : double drand48 (void);). Le vecteur est supposé déjà alloué.

1. Donner deux prototypes possibles (non trivialement similaire) pour la fonction RandVector.

2. Choisir un prototype et écrire la fonction associée.

Q. 6 Soient v P R

n

, u P R

n

, α P R et β P R . Les fonctions ScalarProd, aUpbV et Norm correspondent à : ScalarProd : p u, v q

¸

n i1

u

i

v

i

,

aUpbV : αu βv,

Norm : } u }

n

¸

i1

u

2i

1{2

.

1. Pour chaque fonction, donner deux prototypes possibles (non trivialement similaire).

2. Pour chaque fonction, ScalarProd et aUpbV, choisir un prototype et écrire la fonction associée.

Q. 7 Ecrire un main simple et fonctionnel utilisant au moins les fonctions RandVector, ScalarProd et aUpbV.

1

(2)

Exercice 2

Nous avons les structures suivantes :

1

typedef struct {

2

int dim ;

3

double ∗ val ;

4

} v e c t o r ;

5

6

typedef struct {

7

int nL ; / ∗ Nombre de l i g n e s ∗ /

8

int nC ; /∗ Nombre de colonnes ∗/

9

double ∗∗ val ;

10

} matrix ;

Soit A une matrice réelle de taille N M et matrix A; l'objet qui lui est associé en langage C. On souhaite avoir

A.nL N

A.nC M

A.val[i-1][j-1] A

i,j

, @p i, j q P t 1, . . . , N u t 1, . . . , M u .

Q. 1 Nous voulons écrire une fonction AllocMatrix permettant d'allouer/initialiser un objet de type matrix à la taille N M.

1. Donner l'ensemble des prototypes de fonction permettant de réaliser cette opération.

2. Quels sont les prototypes de fonction invalides?.

3. Choisir un prototype et écrire la fonction associée.

Q. 2 Ecrire une fonction freeMatrix permettant de desallouer le champ val d'un objet de type matrix.

Justier de ses arguments!

Q. 3 Nous voulons écrire une fonction FREEMatrix permettant de desallouer le champ val d'un objet de type matrix, de mettre à zéro les champs nL et nV, et à NULL le champ val.

1. Donner l'ensemble des prototypes de fonction permettant de réaliser cette opération.

2. Quels sont les prototypes de fonction invalides?.

3. Choisir un prototype et écrire la fonction associée.

Q. 4 Nous voulons écrire une fonction RandMatrix permettant d'initaliser chacune des composantes par un nombre aléatoire (utiliser la fonction drand48() du langage C : double drand48 (void);). La matrice est supposé déjà allouée.

1. Donner l'ensemble des prototypes de fonction permettant de réaliser cette opération.

2. Quels sont les prototypes de fonction invalides?.

3. Choisir un prototype et écrire la fonction associée.

Q. 5 Soit A P M

n,p

pRq , B P M

p,m

pRq et D P M

n,p

pRq .

1. Ecrire l'ensemble des prototypes des fonctions valides permettant de calculer : MatrixProd : Q AB ,

MatrixSum : α A β D

2. Ecrire l'ensemble des prototypes invalides.

3. Pour chaque fonction, choisir un prototype valide et écrire la fonction associée.

Q. 6 Ecrire un ch'ti main utilisant les fonctions MatrixProd et MatrixSum.

2

Références

Documents relatifs

On se propose de fusionner ces deux chiers en un chier unique appelé Promo_MI, qui contiendra tous les noms qui se trouvent dans les des deux chiers SectionA et SectionB et qui

In this chapter we will give the maximum principle for systems governed by the forward- backward stochastic di¤erential equations with Jumps (FBSDEJ for short) in which the

In this chapter we study the existence and uniqueness of the solutions to mean-…eld re‡ected backward doubly stochastic di¤erential equation when the driver f is lipschitz. We

Il est admis de consulter des notes personnelles qui tiennent sur une page recto-verso (et les notes de cours ou de TD si n´ ecessaire). Les questions 1–5 ont une seule bonne r´

We give some estimates of type sup ×inf on Riemannian manifold of dimension 3 for the prescribed curvature type equation.. As a consequence, we derive an uniqueness

3 Nous voulons écrire une fonction FREEVector permettant de desallouer le champ val d'un objet de type vector, de mettre à zéro le champ dim et à NULL le champ val.. Donner

3 Nous voulons écrire une fonction FREEVector permettant de desallouer le champ val d’un objet de type vector, de mettre à zéro le champ dim et à NULL le champ val.. Donner

Ecrire une fonction FREEVector permettant de désallouer le champ val d'une variable de type vector, de mettre à zéro le champ dim et à NULL le champ val2. Justier le choix de