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

Cobol Discussion :

multiple de 10 (modulo 10)


Sujet :

Cobol

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Points : 76
    Points
    76
    Par défaut multiple de 10 (modulo 10)
    hello a tous,

    je cherche en cobol a arrondir un chiffre au multiple de 10 suivant ?

    ex : 53 le multiple de 10 suivant est 60 !

    a moins qu il existe un moyen de calculer le modulo d un chiffre en cobol ?

    par avance merci.

  2. #2
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Points : 76
    Points
    76
    Par défaut
    heu .... j ai reflechi un peu plus et j ai trouvé comment faire le modulo en cobol ...

    du coup j ai pu coder un truc pour arrondir mon chiffre au multiple 10 suivant.

    je laisse ouvert cette discussion si jamais qlq un aurait touvé mieux que moi (et y a de forte chance )

    a+

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Pour moi le modulo c'est le reste de la division entière ...

    Quel est le rapport avec votre besoin ?

  4. #4
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par Luc Orient Voir le message
    Pour moi le modulo c'est le reste de la division entière ...

    Quel est le rapport avec votre besoin ?
    Bonjour.

    Peut être que notre ami nenekes utilise le reste pour le tester à 0 pour ne pas prendre le multiple de 10 suivant si le nombre est déjà multiple de 10. Mais comme il ne nous dit pas comment il a fait on ne pourra pas le savoir.

    n = q * 10 + r
    si r = 0 alors n' = n
    sinon n' = (q + 1) * 10.

    n' est le multiple de 10 suivant

  5. #5
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 061
    Points
    32 061
    Par défaut
    algorithmiquement, je suppose qu'on divise par 10, on a le résultat et le reste. Si le reste est non nul, on ajoute un au résultat. Puis on multiplie le résultat par 10.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  6. #6
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Points : 76
    Points
    76
    Par défaut
    merci pour vos reponses!

    effectivement hédhili a vu juste concernant mon besoin, et sa solution est bien plus pertinente que la mienne

    j'avais fait ceci;

    DIVIDE n BY 10 GIVING q REMAINDER r
    n' = n + (10 - r)
    n' etant le multiple suivant.

    encore merci pour vos solutions

    a+

  7. #7
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Citation Envoyé par nenekes Voir le message
    merci pour vos reponses!

    effectivement hédhili a vu juste concernant mon besoin, et sa solution est bien plus pertinente que la mienne

    j'avais fait ceci;

    DIVIDE n BY 10 GIVING q REMAINDER r
    n' = n + (10 - r)
    n' etant le multiple suivant.

    encore merci pour vos solutions

    a+
    Pour moi, les deux solutions ne sont pas équivalentes.

    Avec ta solution, si r = 0 on ajoute 10.

    Donc 50 devient 60. Non ?

  8. #8
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Points : 76
    Points
    76
    Par défaut
    oui tu as raison j'ai juste été faineant pour reecrire le test if r = 0 comme l a precisé hedhili
    je voulais juste dire que la premiere solution qui m'avais traversee l espris etait de oter r a 10 pour les ajouter a n.

    et je trouvais l autre solution plus logique, la mienne un peu tiree par les cheveux

    encore merci pour votre aide !

    a+

  9. #9
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    S'il s'agit d'une application de paiement quelconque où l'on voudrait arrondir le net à payer au multiple supérieur d'une unité monétaire, il est fort probable que l'on veuille aussi sauvegarder le reste en le considérant comme une avance de trésorerie à récupérer sur le prochain paiement.

  10. #10
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    A noter qu'il existe la possibilité d'obtenir directement le modulo en COBOL.
    Cette fonctionnalité est implémentée sous forme de fonction intrinséque.
    ( " Intrinsic function " ).

    Par exemple ( sous Enterprise COBOL for z/OS v3.4 )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ACCEPT A
    COMPUTE M = FUNCTION MOD ( A 10 )
    DISPLAY 'A=' A
    DISPLAY 'M=' M
    Et à l'exécution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A=50
    M=00
    
    A=51
    M=01

  11. #11
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par Luc Orient Voir le message
    A noter qu'il existe la possibilité d'obtenir directement le modulo en COBOL.
    Cette fonctionnalité est implémentée sous forme de fonction intrinséque.
    ( " Intrinsic function " ).

    Par exemple ( sous Enterprise COBOL for z/OS v3.4 )
    Idem dans le ILE Cobol for AS/400 (iSeries, System i, Power System)

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

Discussions similaires

  1. Réponses: 87
    Dernier message: 06/07/2011, 15h33
  2. Multiple Count
    Par Antichoc dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2003, 11h19
  3. formulaire choix multiple
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 02/02/2003, 18h59
  4. Création multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/10/2002, 10h17
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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