Formation algorithmique et programmation

Vecteurs non contraints & paramètres formels

!On utilise des vecteurs non contraints comme paramètresformels dans une déclaration de sous-programme (procédure ou fonction)
∀! c’est une facilité d’écriture pour désigner des valeurs (paramètres « donnés ») ou des variables (paramètres « résultats »)
!En effet …
∀! la déclaration d’une procédure ou d’une variable n’entraîne pas de réservation de mémoire pour les paramètres.
!Cela permet au programmeur de définir des paramètresvecteurs non contraints par leurs indices, autrement dit des vecteurs dont le nombre d’éléments peut être variable selon les appels.

Déclaration d’un type vecteur

!Dans la déclaration d’un type vecteur (array), onpeut
∀! contraindre ou non l’intervalle des indices (range), autrement dit la borne inférieure et la borne supérieure
!Rappel : letype des indicespeut être tout (sous-)
type discret : Integer, Character, type énuméré.
Ce type ne peut pas être Float ou un sous-type de Float
!Nous conviendrons de faire précéder tout nom detype vecteur par le préfixe TV_

Exemples de déclarations

!Types de vecteurs non contraints
type TV_Suite is array (Integer range <>) of Float ;
type TV_Indicateurs is array (Natural range <>) of Boolean ;
type String is array (Positive range <>) of Character ;
— prédéfini
∀! Le symbole <> indique que l’intervalle des indices n’est pas contraint, c’est-à-dire quelconque dans l’intervalle d’indices du sous-type Positive ou Natural
!Types de vecteurs contraints
type TV_Mesures is array (101..200) of Float ;
type TV_Ligne is array (0..79) of Character ;
type T_Jour is
(Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche) ;
type TV_Semaine is array (T_Jour) of Boolean ;
!Sous-types de vecteurs contraints dérivés detypes vecteur non contraint
–type TV_Suite is array (Integer range <>) of Float ; subtype TV_Echantillonnage is TV_Suite(1..365) ;
–type String is array (Positive range <>) of Character; subtype TV_Spécial is String(128..255) ;
subtype TV_Truc is String(0..9) ;
— Incorrect car 0 n’est pas du type Positive
–type TV_Semaine is array (T_Jour) of Boolean;
subtype TV_WeekEnd is TV_Semaine(Samedi..Dimanche) ;

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *