Voilà j'ai fait un peu d'ada cette année mais je n'ai obtenu de quoi le pratiquer chez moi qu'il y a 2 semaines .Tout ça pour dire soyez indulgent je galère .
Un de mes exercices a dans la partie déclarative un type Date dont les trois sous type sont des Integer .
On me demande de réaliser un programme déclarant une variable de type Date , qui "lit" cette variable en saisissant les trois valeurs des sous types .
Le problème c'est que je déclare les variables mais qu'en faisant Get (J); Get(M);Get(A);le compilateur me renvoie qu'elles ne sont pas définies ou alors que Get n'est pas valable . Je vous met l'exercice en entier pour être plus précis :
<<On suppose dans cet exercice les déclarations de types et sous types suivantes >>
subtype T_Mois is Natural range 1..12;
subtype T_Jour is Natural range 1..31;
subtypeT_Annee is Natural range 1..9999;
type T_Date is record
Jour :T_Jour ;
Mois : T_Mois;
Annee :T_Annee ;
end record { alors là à ce stade je mets tout ça dans les déclarations et je pense que ça devrait me suffire , ensuite on me demande :
Ecrire un petit programme qui déclare une variable de type T_Date , et qui "lit" cette variable en saisissant par dialogue avec l'utilisateur les trois champs.
Voilà c'est tout bête mais je ne trouve rien dans mes cours pour saisir correctement les valeurs de ces sous types , je ne vois pas l'intérêt de déclarer des variables integer qui ensuite seraient attribuées aux sous types puisqu'o les a déjà déclaré , mais peut-être que mes déclarations ne sont pas valables .
désolé j'ai rajouté ça après
J: T_Jour ;
M: T_Mois ;
A: T_Annee ;
dans les déclarations et ça a marché ( je croyais pourtant avoir déjà essayé ) , mais ça me gêne d'avoir écrit 2 fois la même chose pourtant le compilateur ne dit rien pas même un petit truc orange . Mais à quoi ça me sert allors d'avoir déclarer un type T_Date au dessus de 3 sous types , il me sert à rien , j'aurai pu écrire 3 types au lieu de 3 sous types et 1 type .
Tu dois déclarer si j'ai bien compris une variable de type T_Date et non les variables avec tes sous types :
donc :
D:T_Date;
au lieu de :
J:T_Jour;
M:T_mois;
A:T_Annee;
ensuite pour lire le jour tu fais Get(D.jour);
pour le mois c'est get(d.mois); et ainsi de suite pour tous les enregistrements;
__________________________
Guish
merci guish mais j'ai résolu le problème de puis longtemps,
je déclare d'abord unn type T_Date, puis des sous type T_Jour, T_Mois,T_Année, mais l'erreur venait des instructions , il suffisait de faire T_Date.J pour le jours T_Date.M pour le mois etc, m'enfin je cherchais aussi à utiliser l'instruction case mais je n'y suis pas arrivé.