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

Algorithmes et structures de données Discussion :

Sous programme (procédure et fonction)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Novembre 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 29
    Par défaut Sous programme (procédure et fonction)
    Bonsoir,
    J'ai un exercice a faire et je souhaiterais , s'il vous plait, que vous me confirmiez si mes réponses sont justes et les réponses aux questions que je n'ai pas su faire.

    une librairie qui fait du commerce en ligne souhaite se doter d'une application calculant le montant du port à payer pour les commandes qu'elle expédie.
    Voici les règles de gestion:
    Si le nombre d'articles commandés est inférieur à 3,le port est de 2,5€ par ouvrage;
    Si le nombre est compris entre 3 et 5, le port sera égal ay plus petit des deux montants suivants:
    2,5 par ouvrage
    10% du total de la commande.
    Si le nombre est compris entre 6 et 10, le port est un forfait de 15€;
    Si le nombre est supérieur à 10, les frais de port sont gratuits.

    écriver un sous programme calculant le port à payer.

    var
    nbrArticles : entier
    Totalcommande : réel
    port:réel
    fonction calculport (NbrArticles:entier,totalcommande:réel):réel)

    début
    si nombreArticles>3
    alors
    retourner(2,5)
    sinon
    si NbrArticle<=5
    alors
    retourner(2,5)
    sinon
    si nbrArticle<6
    alors
    retourner(15)
    sinon
    si
    nbrArticle<10
    alors retourner (0)
    fin si
    fin si
    fin

    début
    saisir "nombre d'articles:",NbrArticles
    saisir "Totalcommande":,Totalcommande
    port:=calcul port (NbrArticles,Totalcommande)
    afficher " port:,port
    afficher "port à paye":Totalcommande+port.

    je vous remercie pour votre aide

  2. #2
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Bonjour,
    il est d'usage sur les forums developpez.com de formater son code grâce aux balises [code]. Cela permet une lecture facilitée pour ceux qui souhaitent aider . Voici ce que ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    var 
       nbrArticles : entier 
       Totalcommande : réel
       port:réel
       fonction calculport (NbrArticles:entier,totalcommande:réel):réel)
     
    début 
       si nombreArticles>3
       alors 
          retourner(2,5)
       sinon
          si NbrArticle<=5
          alors 
             retourner(2,5)
          sinon 
             si nbrArticle<6
             alors 
                retourner(15)
             sinon
                si nbrArticle<10
                alors
                   retourner (0)
                fin si
             fin si 
    fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    début 
       saisir "nombre d'articles:",NbrArticles
       saisir "Totalcommande":,Totalcommande
       port:=calcul port (NbrArticles,Totalcommande)
       afficher " port:,port 
       afficher "port à paye":Totalcommande+port
    On remarque alors qu'il y a un soucis : il n'y a pas autant de si que de fin si . De plus, je remarque un problème de parenthèses à la ligne 5 fonction calculport (NbrArticles:entier,totalcommande:réel):réel).

    D'un point de vue algo, il y a un soucis sur les bornes conditionnelles : dans l'énoncé, on distingue 4 cas disjoints (deux cas ne peuvent pas s'avérer pour le même appel de la fonction). Tu as décidé d'imbriquer tes si, ce qui est une bonne idée quand on maîtrise bien la programmation conditionnelle. Mais tu as commis des erreurs :


    1. Cas n°1 [0;3[ : ça devrait être nombreArticles<3 non ?
    2. Cas n°2 [3;5] : je suis d'accord, sachant que nombreArticles est ici supérieur à 3, il ne reste plus qu'à vérifier qu'il soit inférieur à 5
    3. Cas n°3 [6;10] : là on a un soucis ; on sait que nombreArticles est strictement supérieur à 5, il ne reste plus qu'à vérifier qu'il soit onférieur à 10
    4. Cas n°4 [10;infini[ : là le si n'est pas nécessaire, un alors fera l'affaire


    Poste quand tu pourras une version révisée de ton code, j'essaierai de te donner ensuite quelques conseils d'amélioration (éviter les erreurs par exemple).

    Cordialement,

    PS : il y a aussi une erreur avec les valeurs de retour, où sont les 10% ?

  3. #3
    Membre Expert
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    Citation Envoyé par prgasp77 Voir le message
    il est d'usage sur les forums developpez.com de formater son code grâce aux balises [code]. Cela permet une lecture facilitée pour ceux qui souhaitent aider

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/08/2014, 13h39
  2. Réponses: 5
    Dernier message: 06/10/2010, 19h07
  3. Sous-programme / Fonctions externes
    Par tyass dans le forum Fortran
    Réponses: 1
    Dernier message: 18/09/2009, 14h00
  4. fonctions / sous-programmes
    Par mokless dans le forum Débuter
    Réponses: 4
    Dernier message: 11/12/2008, 08h34
  5. [langage] les sous programmes
    Par giverny dans le forum Langage
    Réponses: 6
    Dernier message: 21/07/2003, 19h24

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