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

Contribuez Discussion :

[ALGO] Notation en algorithmique


Sujet :

Contribuez

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut [ALGO] Notation en algorithmique
    Nous avons un soucis dans les notations concernant l'algorithmique.

    Ce que je propose, c'est que l'on discute des notations que nous allons tous utiliser dans les FAQ, les articles et les sources.

    Ce qu'il faut absolument, c'est uniformiser les structures de contrôles, les affectations, les tests, les appels de fonctions, les élements de tableaux, les utilisations des pointeurs, ...

    Merci à tous

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Pour la déclaration des fonctions, j'ai déjà vu en gros 2 manières :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fonction mafonction(element:Entier, truc:Reel):Entier
    Ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fonction mafonction(Entier element, Reel truc) -> Entier
    (ou des mélanges des deux).

    Eventuellement, avec les fonctions ne renvoyant aucun paramètre (et donc avec effet de bord). Plutôt l'utilisation du terme "Procédure" que fonction.


    Pour l'affectation :
    Soit :
    x <- 1
    Soit
    x:= 1 (utilisé dans plusieurs langage)
    Peut être x=1, mais c'est moyen.


    Pour la notation de pointeur, je ne sais pas si on utilise des réferences ou des pointeurs.



    Il manque également la manière de noter les commentaires.

  3. #3
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Eventuellement, avec les fonctions ne renvoyant aucun paramètre (et donc avec effet de bord).
    Je suis pas certain que les procédures soient toutes des procédures qui modifient leur paramètres. Sauf si tu considères les sorties comme un effet de bord, je ne suis pas d'accord.

    Pour les fonctions je fais ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fonction NomDeLaFonction ( X : type ; Y : type ; ... ) renvoie type.
    Pour les procédures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure NomDeLaProcedure( X : mode type ; Y : mode type)
    On est donc très proche de ce qui est fait en ADA.

    Pour l'affectation :
    Soit :
    x <- 1
    Soit
    x:= 1 (utilisé dans plusieurs langage)
    Peut être x=1, mais c'est moyen.
    Pour l'affectation surtout pas x=1. Comment fait tu la différence entre l'affectation et le test d'égalité (comme en C ?). C'est une mauvaise chose qui va entraîner des soucis.

    Généralement je fais ceci :

    Pour la notation de pointeur, je ne sais pas si on utilise des réferences ou des pointeurs.
    Une référence n'a de sens que dans un langage. En algo, seul le pointeur compte.

    A la fac, j'ai l'habitude de voir deux choses :

    ou alors ceci :

    La première est la notation ADA, la deuxième est la notation C. La première interdit l'utilisation de champs nommé all (mais est-ce un problème ?), elle est généralement plus lourde mais est à mon sens assez efficace dans le sens où on ne se trompe assez rarement.

    La deuxième est plus courte ( C oblige ). Je ne sais pas laquelle est la meilleure.

    Il manque également la manière de noter les commentaires.
    Pour les commentaires, j'aurai tendance à suivre les recommandations des créateurs de compilateurs : faire des commentaires à la C++ ou ADA. C'est à dire qui commence par un token et qui se termine avec la fin de ligne. Ca résoud quelques problèmes ou ambiguités.

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    L'intérêt d'une représentation informelle, c'est qu'elle est informelle. Si on veut une représentation fixée, autant utiliser un langage.

    Ceci dit, j'écrivais pour commenter:
    Citation Envoyé par PRomu@ld
    A la fac, j'ai l'habitude de voir deux choses :

    ...la notation ADA
    En Ada c'est X.valeur, le all est permit mais n'est obligatoire que quand on en fait pas référence à un champs (autrement dit, x.all c'est l'équivalent de *x en C, x.field l'équivalent de x->field).

  5. #5
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Je suis tout à fait d'accord, il faut s'écrater des langages, c'est pourquoi j'ai crée ce topic.

    Et toi, Jean Marc, quelles sont tes habitudes en matière de notation ?

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par PRomu@ld
    Et toi, Jean Marc, quelles sont tes habitudes en matière de notation?
    Pas tellement d'habitudes. J'utilise quelque chose de proche du langage qui sera utilisé par après, souvent même le langage utilisé en utilisant des commentaires pour ce qui n'est pas permis dans le langage. Pour une présentation, je vais me permettre des choses comme indices, exposants, lettres grecques... un peu dans l'esprit des différents niveaux de représentation d'Algol.

Discussions similaires

  1. Faut il développer, harmoniser les notations en algo
    Par Zavonen dans le forum Contribuez
    Réponses: 14
    Dernier message: 03/02/2007, 17h21

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