Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, quizz et autres ressources
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/11/2008, 15h08   #1
lucky84
Candidat au titre de Membre du Club
 
Inscription : 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
Type de fichier : zip conversions.zip (29,7 Ko, 0 affichages)
lucky84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2008, 15h17   #2
droggo
Expert Confirmé
 
Inscription : août 2006
Messages : 3 414
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 3 414
Points : 3 769
Points : 3 769
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.
droggo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2008, 16h05   #3
lucky84
Candidat au titre de Membre du Club
 
Inscription : septembre 2008
Messages : 71
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 71
Points : 13
Points : 13
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
lucky84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2008, 17h25   #4
droggo
Expert Confirmé
 
Inscription : août 2006
Messages : 3 414
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 3 414
Points : 3 769
Points : 3 769
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.
droggo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h59.


 
 
 
 
Partenaires

Hébergement Web