IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Free Pascal Discussion :

[FreePascal] Définir un type GDENTIER


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 32
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 467
    Par défaut
    Je ne vois pas trop où est le problème :

    Continue comme ça, on verra à la fin si c'est bien Sinon pose des questions plus précises

  3. #3
    Membre éprouvé
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Par défaut
    Bonjour,

    il risque déjà d'y avoir un problème de compilation dans le code que tu as écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    les types d'un enregistrement s'écrivent précédés de deux points, pas d'un égal.
    Est-ce que GDENTIER est sensé être composé d'une liste d'entiers(ce que tu sembles implémenter), ou seulement de deux entiers? c'est pas clair.

    a++

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 32
    Par défaut
    Bonjour,

    merci pour votre aide.

    En fait le type GDENTIER est composé de plusieurs listes d'entiers.

  5. #5
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Citation Envoyé par Stormy_Ordos
    les types d'un enregistrement s'écrivent précédés de deux points, pas d'un égal.
    Pas du tout !

    La déclaration semble valide, mais il nous faudrait également la déclaration du type "liste".

    Nous ne savons pas trop où vous voulez aller, il est donc assez difficile de vous aider...

    Essayez de plus de bien indenter votre code, de manière à ce qu'il soit lisible par tous le plus facilement et le plus rapidement possible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    type
      GDEntier = record
        debut: string;
        laliste: Liste;
        fin: string;
      end;
    @++

  6. #6
    Membre éprouvé
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Par défaut
    Citation Envoyé par Hdd34
    Citation Envoyé par Stormy_Ordos
    les types d'un enregistrement s'écrivent précédés de deux points, pas d'un égal.
    Pas du tout !
    Ah??
    Les types(ex: integer, string) d'un enregistrement(record) ne s'écrivent pas toujours précédés de deux points?

    Alors ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Type
       typ1 = record
                    posX = integer;
       end;
    serait plus correct?

  7. #7
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 467
    Par défaut
    Problème de vocabulaire :

    "Les types d'un enregistrement", ca n'existe pas Il faut parler de type des champs d'un enregistrement, mais pour spécifier que c'est un "record" ou un "object" il faut un "=", pour les champs il faut un ":"

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 53
    Par défaut 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    type GDENTIER = record
        laliste : LISTE
    end;
    En théorie une définition comme ça devrait suffire:
    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

  9. #9
    Membre éprouvé
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Par défaut
    Citation Envoyé par wormful_sickfoot
    Problème de vocabulaire :

    "Les types d'un enregistrement", ca n'existe pas Il faut parler de type des champs d'un enregistrement
    Tout a fait , et si on suit sur la lancée, il faut préciser que
    pour les champs il faut un ":"
    se dit plutôt "mais juste avant la déclaration du type d'un champ et juste après la désignation du nom du champ en question, il faut utiliser le signe ':'"...

    mais c'est un peu s'éloigner du sujet, non?

  10. #10
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Citation Envoyé par Stormy_Ordos
    Ah??
    Les types(ex: integer, string) d'un enregistrement(record) ne s'écrivent pas toujours précédés de deux points?
    On s'était mal compris

    On parle de champs pour un enregistrement. Les types sont situés après un mot réservé type.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. programmation corba: le type "sequence"
    Par Kali dans le forum CORBA
    Réponses: 4
    Dernier message: 28/08/2005, 17h09
  2. Réponses: 4
    Dernier message: 05/06/2002, 15h35
  3. Réponses: 2
    Dernier message: 05/06/2002, 13h29
  4. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 13h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo