TP2

Exo 1: Un peu de géométrie

Afin d'assimiler les différentes notions vues en cours, nous allons travailler sur quelques petits problèmes de géométrie.

Les types

Vecteurs

Propriétés du quadrilatère - Fonctions sur les enregistrements

Types algébriques - Organiser les figures

Exo 2: Fractions

Nous allons manipuler des fractions à l'aide du type frac suivant :
      type frac = { num : int; denom : int }
    
Ce type définit une fraction comme un enregistrement avec deux champs : num est le numérateur de la fraction et denom le dénominateur.

Entiers simples

Entiers et variables

On souhaite maintenant manipuler des fractions pouvant contenir des variables. Pour cela, on commence par définir le type somme expr suivant :

	type expr =
	| Int of int
	| Var of string
      
Puis, on définit le type des fractions avec variables de la manière suivante :
	type fracexpr = { enum : expr; edenom : expr }
      

Exo 3: La courbe du dragon

Le but de cet exercice est de dessiner la courbe du dragon. Cette courbe se définit récursivement de la manière suivante :

Étant donnés deux points P et Q,

Travail demandé.

À l'aide de la bibliothèque Graphics (fonctions moveto et lineto), programmer une fonction dragon : int -> float -> float -> float -> float -> unit, telle que dragon n x y z t dessine la courbe du dragon d'ordre n entre les points de coordonnées (x,y) et (z,t). Pour tester votre programme, ouvrez par exemple une fenêtre 400x400 et appelez draw 20 20. 20. 220. 220.