[FreePascal] Définir un type GDENTIER
Bonjour à tous
Je poste un message parce que j'ai beau faire des essais sur mon pc (je n'ai pas internet sur mon pc) je n'arrive pas à trouver ma réponse, alors je voudrais une aide personnalisée.
En fait cette question fait partie d'un Dm que je dois rendre, et comme je n'arrive pas à la faire je suis bloqué pour le reste.
Quelques uns de vos consils seront les bienvenus.
Voici mon pb :
comme vous le savez surement, en pascal le type cardinal s'arrête à 2^32-1
Et le but de se tp est de faire des opérateurs sur des nombres plus grands, justement définit par un type GD entier.
et c'est là que je suis bloqué.
Il faut donc définir un type GDENTIER qui donnera par exemple :
function string2GDENTIER (s: string) : GDENTIER ;
->> string2GDENTIER("3141592")= (1592,314)
Voilà alors moi ce que j'ai fait (j'ai de grosse lacunes en pascal du fait que je sois arrivé en cours d'année) :
Code:
1 2 3 4 5 6
|
type GDENTIER = record
debut = string;
laliste = liste; //le type liste est definit dans une unité que l'on a déjà
fin = string;
end; |
Voilà je ne sais pas trop si cela ressemble à quelquechose, j'ai mis debut et fin à string parceque le type GDENTIER est en fait une suite de liste entre ( ) .
Mais je ne suis pas sur de raisonner comme il le faut.
$
Merci de votre aide
Re: Définir un type GDENTIER
Citation:
Envoyé par Denti-fritz
Voilà je ne sais pas trop si cela ressemble à quelquechose, j'ai mis debut et fin à string parceque le type GDENTIER est en fait une suite de liste entre ( ) .
Mais je ne suis pas sur de raisonner comme il le faut.
$
Merci de votre aide
Tiens, il semble que l'on ait le même DM :mrgreen:
En fait, tu n'as pas besoin de délimiter la liste avec debut et fin (les parenthèses sont juste utilisées pour représenter les listes)
Donc ça donne:
Code:
1 2 3
| type GDENTIER = record
laliste : LISTE
end; |
En théorie une définition comme ça devrait suffire:
Code:
type GDENTIER = LISTE;
Mais comme il faut redéfinir les opérateurs + et *, et que FreePascal ne le permet pas, il faut utiliser un record.
Et Vive ADA :P