Exercice Algorithme : Les Types Structurés

Exercice 1

Ecrire les en-têtes des fonctions/actions suivantes :
  1. saisie d’un point
  2. affichage d’un point
  3. calcul de la distance entre deux points
  4. projection d’un point sur l’axe des abscisses
Ecrire ensuite les algorithmes de ces fonctions.
Faire une action principale qui demande la saisie de deux points, calcule la distance entre ces deux points et affiche les résultats.


Exercice 2

Ecrire un algorithme qui permet de rentrer les données d’un tableau de type TtabVar et dont on connaît la taille.
Ecrire ensuite un algorithme qui permet de rentrer les données d’un tableau de type TtabVar et ou l’on ne connaît pas la taille.



Action SaisieTpoint (S : P : Tpoint) {Tpoint a été défini à l’exercice 30}
Début
Lire (P.abs)
Lire (P.ord)
Action AfficherTpoint (E : P : Tpoint)
Début
Ecrire (« ( », P.abs, « ; », P.ord, « ) »)
Fin
Fonction distance (P : Tpoint ; Q : Tpoint) : réel
Var : dist : réel
Début
Dist<=sqrt[(P.abs-Q.abs)² + (P.ord-Q.ord)²]
Retourner (dist)
Fin
Action ProjectionX (ES : P : Tpoint)
Début
P.ord<=0
Fin
Action Principale
Var : P, Q : Tpoint
Dist : réel
Début
SaisieTpoint(P)
SaisieTpoint(Q)
Dist<=distance(P, Q)
Ecrire (« la distance entre »,AfficherTpoint(P), « et », AfficherTpoint(Q), « est », dist)
Fin


Explications 2:

Nous ne rentrerons pas ici le tableau comme nous l’avons fait précédemment :
Nous utiliserons les entités. Ainsi la déclaration se fera de la manière suivante :
Const MAX=100
Type : TtabVar=entité (Tab : tab[MAX] d’entier Taille : entier)
Ainsi, dans une fonction, on aura :
TtabVar : toto
Toto.tab[15]<=1 {pour entrer une valeur de tableau}
Toto.taille++ {On augmente la taille du tableau au fur et a mesure Avantage de cette nouvelle manière d’entrer un tableau : on peu avoir un tableau de taille variable.


Action saisieTtabVar (S : tabvar : TtabVar, E : n : entier)
Var : i : entier
Début
Pour i de 0 à n-1 faire
Lire (tabvar.tab[i])
Tabvar.taille<=n
Fin
Action saisieTtabVar (S tabvar : TtabVar)
Var : réponse : chaîne de caractère
Début
Tabvar.taille<=0
Répéter
Ecrire (« voulez-vous entrer un entier ? »)
Lire (réponse)
Si réponse? « non » alors
Lire (tabvar.tab[tabvar.taille])
Tabvar.taille++
Jusqu’à (réponse= « non » ou tabvar.taille=MAX)
Fin

Leave a Reply

    ads