Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    septembre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 71
    Points : 13
    Points
    13

    Par défaut Conversions de monnaies

    Bonjour,
    Je voudrais vous proposer la source de mon programme qui fait des conversions euros >> francs et francs >> euros.
    Voici la source:
    Code :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Program conversions;
    {------------------------------------------------------------------------}
    Function francsEuros(francs: real): real;
    {Fonction convertissant des francs en euros}
    Begin
        francsEuros:= francs / 6.55957;
    End;
    {------------------------------------------------------------------------}
    Function eurosFrancs(euros: real): real;
    {Fonction convertissant des euros en francs}
    Begin
        eurosFrancs:= euros * 6.55957;
    End;
    {------------------------------------------------------------------------}
    var francs1, euros1, francs2, euros2: real;
    var choix: integer;
    {------------------------------------------------------------------------}
    BEGIN
        writeln('====CONVERSIONS====');
        writeln;
        writeln('Choisissez:');
        writeln('1. Conversions francs >> euros');
        writeln('2. Conversions euros >> francs');
        readln(choix);
        {--------------------------------------------------------------------}
     
     
        IF choix = 1
        Then
        Begin
            writeln('Entrez la somme en francs:');
            readln(francs1);
            euros1:= francsEuros(francs1);
            writeln(francs1:5:5,' francs vallent ',euros1:5:5,' euros.');
        End
        {---------------------------------------------}
        ELSE IF choix = 2
        Then
        Begin
            writeln('Entrez la somme en euros:');
            readln(euros2);
            francs2:= eurosFrancs(euros2);
            writeln(euros2:5:5,' euros vallent ',francs2:5:5,' francs.');
        End
        {---------------------------------------------}
        ELSE
        Begin
            writeln('Vous avez entres un mauvais chiffre, desole...');
        End;
        {----------------------------------------------}
        writeln;
        writeln('Appuyez sur entree pour quitter...');
        readln;
    END.
    Voilà, qu'en pensez-vous?
    Au revoir!
    Fichiers attachés Fichiers attachés

  2. #2
    Expert Confirmé Sénior
    Inscrit en
    août 2006
    Messages
    3 554
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 554
    Points : 4 068
    Points
    4 068

    Par défaut

    Hai,

    - Les valeurs numériques "magiques" (codées en dur dans le code) devraient être définies comme constantes:
    Code :
    1
    2
    3
    4
    5
    const
      facteurEuro = 6.55957;
      choixSortir = 0;
      choixFrancsEuros = 1;
      choixEurosFrancs = 2;
    Il serait pratique de créer une boucle pour pouvoir faire plusieurs conversions sans devoir relancer le programme.

    Le choix devrait être lu dans une procédure, ou plutôt dans une fonction qui renverrait la valeur lue.

    Cela mis à part, c'est bien.
    Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.

  3. #3
    Candidat au titre de Membre du Club
    Inscrit en
    septembre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 71
    Points : 13
    Points
    13

    Par défaut

    Bonjour,
    J'ai fait une boucle REPEAT...UNTIL pour éviter de devoir relancer le programme à chaque fois que l'on veut refaire une conversion:
    Code :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Program conversions;
    {------------------------------------------------------------------------}
    Function francsEuros(francs: real): real;
    {Fonction convertissant des francs en euros}
    Begin
        francsEuros:= francs / 6.55957;
    End;
    {------------------------------------------------------------------------}
    Function eurosFrancs(euros: real): real;
    {Fonction convertissant des euros en francs}
    Begin
        eurosFrancs:= euros * 6.55957;
    End;
    {------------------------------------------------------------------------}
    var francs1, euros1, francs2, euros2: real;
    var choix, choix2 : integer;
    {------------------------------------------------------------------------}
    BEGIN
        writeln('====CONVERSIONS====');
        writeln;
     
        REPEAT
        {--------------------------------------------------------------------}
            writeln('Choisissez:');
            writeln('1. Conversions francs >> euros');
            writeln('2. Conversions euros >> francs');
            readln(choix);
            {--------------------------------------------------------------------}
            IF choix = 1
            Then
            Begin
                writeln('Entrez la somme en francs:');
                readln(francs1);
                euros1:= francsEuros(francs1);
                writeln(francs1:5:5,' francs vallent ',euros1:5:5,' euros.');
            End
            {---------------------------------------------}
            ELSE IF choix = 2
            Then
            Begin
                writeln('Entrez la somme en euros:');
                readln(euros2);
                francs2:= eurosFrancs(euros2);
                writeln(euros2:5:5,' euros vallent ',francs2:5:5,' francs.');
            End
            {---------------------------------------------}
            ELSE
            Begin
                writeln('Vous avez entres un mauvais chirre, desole...');
            End;
            {---------------------------------------------}
            writeln;
            writeln('Voulez-vous continuer?');
            writeln('1. Oui');
            writeln('2. Non');
            readln(choix2);
            {---------------------------------------------}
        UNTIL choix2 = 2;
        {------------------------------------------------------------------}
        IF choix2 = 2
        Then
        Begin
            writeln('Vous avez choisis de partir, au revoir !');
        End;
        {--------------------------------------------------------------------}
        writeln;
        writeln('Appuyez sur entree pour quitter...');
        readln;
    END.
    Le fichier zip à été mis à jour (voir le premier message)!

    Par contre, si je mets les choix en constante, l'utilisateur ne pourra pas le modifier, donc ça ne servirait à rien, non ?

    Merci pour tes commentaires

  4. #4
    Expert Confirmé Sénior
    Inscrit en
    août 2006
    Messages
    3 554
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 554
    Points : 4 068
    Points
    4 068

    Par défaut

    Soe,
    Citation Envoyé par lucky84 Voir le message
    Par contre, si je mets les choix en constante, l'utilisateur ne pourra pas le modifier, donc ça ne servirait à rien, non ?

    Merci pour tes commentaires
    Pour utiliser les constantes que j'ai proposées, on fait comme ça :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    const
      facteurEuro = 6.55957;
      choixSortir = 0;
      choixFrancsEuros = 1;
      choixEurosFrancs = 2;
    ....
      { une fois le choix entré }
            IF choix = choixFrancsEuros 
            Then
            Begin
                writeln('Entrez la somme en francs:');
                readln(francs1);
                euros1:= francsEuros(francs1);
                writeln(francs1:5:5,' francs vallent ',euros1:5:5,' euros.');
            End
            {---------------------------------------------}
            ELSE IF choix = choixEurosFrancs 
            Then
    D'autre part, cet enchaînement de if serait avantageusement remplacé par un case of.
    Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •