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

 C Discussion :

Traduction de ligne de Calcul


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Traduction de ligne de Calcul
    Bonjour , je suis actuellement en train de travailler sur une traduction de ligne de calcul; mais je ne sais pas comment faire pour la programmer en C .Je vous explique tout çaceci est un exemple, ce ne sont pas les veritables données)
    -J'ai un nombre sous la forme " 00003002a00001028é000056b
    -à la fin de la traduction je dois pouvoir dire "3.002.000,26 -1.028.000,16 5.600.000,15"

    Donc j'ai des constantes nommé "a,b,c,e,f,g,h,i,è,j,k,l,m,n,o,p,q,r,é" et j'ai des variables que je nommerai Montant(a), Montant(b),...
    j'ai ecris un pseudo code que je donne plus bas , mais je debute comme je l'ai ecris dans l'intitulé et j'espere ne pas avoir fais d'erreur
    Je suis nouveau sur le forum .N'hesitez pas a me corriger , je ne demande qu'à en apprendre d'avantage.
    Merci d'avance
    Le pseudo code :
    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
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    Declaration
    Constante:A=1.12+1/100
    	  B=1.12+2/100
    	  C=1.12+3/100
    	  D=1.12+4/100
    	  E=1.12+5/100
    	  F=1.12+6/100
    	  G=1.12+7/100
    	  H=1.12+8/100
    	  I=1.12+9/100
    	  è=1.12+0/100
    	  J=1.12+1/100*-1
    	  K=1.12+2/100*-1
    	  L=1.12+3/100*-1
    	  M=1.12+4/100*-1
    	  N=1.12+5/100*-1
    	  O=1.12+6/100*-1
    	  P=1.12+7/100*-1
    	  Q=1.12+8/100*-1
    	  R=1.12+9/100*-1
    	  é=1.12+0/100*-1
    Variable:MontantNonTraduit=Reel
    	 Montant(A)=Reel
    	 Montant(B)=Reel
    	 Montant(C)=Reel
    	 Montant(D)=Reel
    	 Montant(E)=Reel
    	 Montant(F)=Reel
    	 Montant(G)=Reel
    	 Montant(H)=Reel
    	 Montant(I)=Reel
    	 Montant(è)=Reel
    	 Montant(J)=Reel
    	 Montant(K)=Reel
    	 Montant(L)=Reel
    	 Montant(M)=Reel
    	 Montant(N)=Reel
    	 Montant(O)=Reel
    	 Montant(P)=Reel
    	 Montant(Q)=Reel
    	 Montant(R)=Reel
    	 Montant(é)=Reel
    Traitement									*Le montant non traduit est sous la forme 000000000x( je veux traduire x dans cette exemple )
    Debut
    	Ecrire('Saisir un montant non traduit')
    	Lire  (MontantNonTraduit)
    	Si MontantNonTraduit [=] A Alors				*[=] veut dire "contient" ,car je ne sais pas l'ecrire en pseudo code
    	Ecrire('Le montant traduit est'Montant(A) )
    	Sinon
    		Si MontantNonTraduit [=] B Alors	
    		Ecrire('Lemontant traduit est'Montant(B) )
    		Sinon
    			Si MontantNonTraduit [=] C Alors
    			Ecrire('le montant traduit est' Montant(C) )
    			Sinon
    				Si MontantNonTraduit [=] D Alors
    				Ecrire('Le montant traduit est' Montant(D) )
    				Sinon
    					Si MontantNonTraduit [=] E Alors
    					Ecrire ('le montant traduit est' Montant(E) )
    					Sinon
    						Si MontantNonTraduit [=] F Alors
    						Ecrire ('le montant traduit est' Montant(F) )
    						Sinon
    							Si MontantNonTraduit [=] G Alors
    							Ecrire ('Le montant traduit est' Montant(G) )
    							Sinon
    								Si MontantNonTraduit [=] H Alors
    								Ecrire ('Le montant traduit est' Montant(H) )
    								Sinon
    									Si MontantNonTraduit [=] I Alors
    									Ecrire ('Le montant traduit est' Montant(I) )
    									Sinon
    										Si MontantNonTraduit [=] è Alors
    										Ecrire ('Le montant traduit est' Montant(é) )
    										Sinon
    											Si MontantNonTraduit [=] J Alors
    											Ecrire ('le montant traduit est'Montant(J) )
    											Sinon
    												Si MontantNonTraduit [=] K Alors
    												Ecrire ('le montant traduit est' Montant(K) )
    												Sinon
    													Si MontantNonTraduit [=] L Alors
    													Ecrire ('Le montant traduit est' Montant(L) )
    													Sinon
    														Si MontantNonTraduit [=] M Alors
    														Ecrire ('Le montant traduit est' Montant(M) )
    														Sinon
    															Si MontantNonTraduit [=] N Alors
    															Ecrire ('Le montant traduit est' Montant(N) )
    															Sinon
    																Si MontantNonTraduit [=] O Alors
    																Ecrire ('Le montant traduit est' Montant(O) )
    																Sinon
    																	Si MontantNonTraduit [=] P Alors
    																	Ecrire ('Le montant traduit est' Montant(P) )
    																	Sinon
    																		Si MontantNonTraduit [=] Q Alors
    																		Ecrire ('Le montant Traduit est ' Montant(Q) )
    																		Sinon
    																			Si MontantNonTraduit [=] R Alors
    																			Ecrire ('Le montant traduit est ' Montant(R) )
    																			Sinon
    																				Si MontantNonTraduit [=] é Alors
    																				Ecrire ('Le montant traduit est' Montant(é) )
    																				Sinon
    																				Ecrire ('le montant traduit est ' MontantNonTraduit)
    																				Fin Si
    																			Fin Si
    																		Fin Si
    																	Fin Si
    																Fin Si
    															Fin Si
    														Fin Si
    													Fin Si
    												Fin Si
    											Fin Si
    										Fin Si
    									Fin Si
    								Fin Si
    							Fin Si
    						Fin Si
    					Fin Si
    				Fin Si
    			Fin Si
    		Fin Si
    	Fin Si
    Fin

  2. #2
    Invité
    Invité(e)
    Par défaut _ _ _
    C:
    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
    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
     
    #define A 1.12+1/100
    #define B A+1/100
    #define C B+1/100
    #define D C+1/100
    #define E D+1/100
    #define F E+1/100
    #define G F+1/100
    #define H G+1/100
    #define I H+100
    #define _e 1.12//é
    #define J 1.12-1/100
    #define K 1.12-2/100
    #define L 1.12-3/100
    #define M 1.12-4/100
    #define N 1.12-5/100
    #define O 1.12-6/100
    #define P 1.12-7/100
    #define Q 1.12-8/100
    #define R 1.12-9/100
    #define e_ 1.12-0/100//é
     
    #include <stdio.h>
     
    int main( void)
    {
        //
           float montant_non_traduit, montant_a, montant_b, montant_c, montant_d, montant_e, montant_f,\
                  montant_g, montant_h, montant_i, montant__e, montant_j, montant_k, montant_l, montant_m\
                  montant_n, montant_o, montant_p, montant_q, montant_r, montant_e_;
        //
        #define sorti montant_non_traduit
        printf("Saisir un montant non traduit :> ");
        scanf("%f", &montant_non_traduit);
        switch( montant_non_traduit)
        {
             case A: sorti = montant_a; break;
             case B: sorti = montant_b; break;
             case C: sorti = montant_c; break;
             case D: sorti = montant_d; break;
             case E: sorti = montant_e; break;
             case F: sorti = montant_f; break;
             case G: sorti = montant_g; break;
             case H: sorti = montant_h; break;
             case I: sorti = montant_i; break;
             case _e: sorti = montant__e; break;
             case K: sorti = montant_k; break;
             case L: sorti = montant_l; break;
             case M: sorti = montant_m; break;
             case N: sorti = montant_n; break;
             case O: sorti = montant_o; break;
             case P: sorti = montant_p; break;
             case Q: sorti = montant_q; break;
             case R: sorti = montant_r; break;
             case e_: sorti = montant_e_; break;
        }
        printf("le montant traduit est %f \n", sorti);
        return 0;
    }
    Code non tester, il est probable qu'il ne fonctionne pas correctement avec les floats.
    Dernière modification par Invité ; 14/10/2014 à 08h51.

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Pierre77940 Voir le message
    Bonjour , je suis actuellement en train de travailler sur une traduction de ligne de calcul; mais je ne sais pas comment faire pour la programmer en C .Je vous explique tout çaceci est un exemple, ce ne sont pas les veritables données)
    -J'ai un nombre sous la forme " 00003002a00001028é000056b
    -à la fin de la traduction je dois pouvoir dire "3.002.000,26 -1.028.000,16 5.600.000,15"
    Bonjour
    Essaye de ne pas utiliser de "point" pour symboliser les milliers car (en C) il symbolise la virgule décimale. Utilise l'espace si tu veux aérer ton nombre. Et la virgule (en C) symbolise la concaténation d'éléments (style int a, b, c;). Parce que j'ai mis du temps avant de comprendre que dans "3.002.000", la décimale n'était pas au ".000" (d'ailleurs je me suis torturé pour comprendre ce nombre qui n'en était en fait pas un selon les conventions anglo-saxonnes).

    Ceci dit, je ne pige absolument pas comment 0003002a0000 devient 3002000.26 (d'où sort ce "26" ???)

    Citation Envoyé par Pierre77940 Voir le message
    Donc j'ai des constantes nommé "a,b,c,e,f,g,h,i,è,j,k,l,m,n,o,p,q,r,é" et j'ai des variables que je nommerai Montant(a), Montant(b),...
    Montant(a) c'est un appel de fonction. Dans l'absolu il n'y a aucune différence entre" constante" et "variable". Sauf qu'une constante n'est qu'une variable "invariable" quoi... Et évite aussi les lettres avec accents.

    Citation Envoyé par Pierre77940 Voir le message
    Le pseudo code :
    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
    Declaration
    Constante:A=1.12+1/100
    	  B=1.12+2/100
    	  C=1.12+3/100
    	  D=1.12+4/100
    	  E=1.12+5/100
    	  F=1.12+6/100
    	  G=1.12+7/100
    	  H=1.12+8/100
    	  I=1.12+9/100
    	  è=1.12+0/100
    	  J=1.12+1/100*-1
    	  K=1.12+2/100*-1
    	  L=1.12+3/100*-1
    	  M=1.12+4/100*-1
    	  N=1.12+5/100*-1
    	  O=1.12+6/100*-1
    	  P=1.12+7/100*-1
    	  Q=1.12+8/100*-1
    	  R=1.12+9/100*-1
    	  é=1.12+0/100*-1
    Pourquoi ne pas utiliser une seule variable valant 1.12 et lui ajouter ensuite (i modulo 10)/100, i étant une autre variable évolutive (i=1, i=2, i=3, ..., i=10) ???
    Citation Envoyé par Pierre77940 Voir le message
    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
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    Traitement									*Le montant non traduit est sous la forme 000000000x( je veux traduire x dans cette exemple )
    Debut
    	Ecrire('Saisir un montant non traduit')
    	Lire  (MontantNonTraduit)
    	Si MontantNonTraduit [=] A Alors				*[=] veut dire "contient" ,car je ne sais pas l'ecrire en pseudo code
    	Ecrire('Le montant traduit est'Montant(A) )
    	Sinon
    		Si MontantNonTraduit [=] B Alors	
    		Ecrire('Lemontant traduit est'Montant(B) )
    		Sinon
    			Si MontantNonTraduit [=] C Alors
    			Ecrire('le montant traduit est' Montant(C) )
    			Sinon
    				Si MontantNonTraduit [=] D Alors
    				Ecrire('Le montant traduit est' Montant(D) )
    				Sinon
    					Si MontantNonTraduit [=] E Alors
    					Ecrire ('le montant traduit est' Montant(E) )
    					Sinon
    						Si MontantNonTraduit [=] F Alors
    						Ecrire ('le montant traduit est' Montant(F) )
    						Sinon
    							Si MontantNonTraduit [=] G Alors
    							Ecrire ('Le montant traduit est' Montant(G) )
    							Sinon
    								Si MontantNonTraduit [=] H Alors
    								Ecrire ('Le montant traduit est' Montant(H) )
    								Sinon
    									Si MontantNonTraduit [=] I Alors
    									Ecrire ('Le montant traduit est' Montant(I) )
    									Sinon
    										Si MontantNonTraduit [=] è Alors
    										Ecrire ('Le montant traduit est' Montant(é) )
    										Sinon
    											Si MontantNonTraduit [=] J Alors
    											Ecrire ('le montant traduit est'Montant(J) )
    											Sinon
    												Si MontantNonTraduit [=] K Alors
    												Ecrire ('le montant traduit est' Montant(K) )
    												Sinon
    													Si MontantNonTraduit [=] L Alors
    													Ecrire ('Le montant traduit est' Montant(L) )
    													Sinon
    														Si MontantNonTraduit [=] M Alors
    														Ecrire ('Le montant traduit est' Montant(M) )
    														Sinon
    															Si MontantNonTraduit [=] N Alors
    															Ecrire ('Le montant traduit est' Montant(N) )
    															Sinon
    																Si MontantNonTraduit [=] O Alors
    																Ecrire ('Le montant traduit est' Montant(O) )
    																Sinon
    																	Si MontantNonTraduit [=] P Alors
    																	Ecrire ('Le montant traduit est' Montant(P) )
    																	Sinon
    																		Si MontantNonTraduit [=] Q Alors
    																		Ecrire ('Le montant Traduit est ' Montant(Q) )
    																		Sinon
    																			Si MontantNonTraduit [=] R Alors
    																			Ecrire ('Le montant traduit est ' Montant(R) )
    																			Sinon
    																				Si MontantNonTraduit [=] é Alors
    																				Ecrire ('Le montant traduit est' Montant(é) )
    																				Sinon
    																				Ecrire ('le montant traduit est ' MontantNonTraduit)
    																				Fin Si
    																			Fin Si
    																		Fin Si
    																	Fin Si
    																Fin Si
    															Fin Si
    														Fin Si
    													Fin Si
    												Fin Si
    											Fin Si
    										Fin Si
    									Fin Si
    								Fin Si
    							Fin Si
    						Fin Si
    					Fin Si
    				Fin Si
    			Fin Si
    		Fin Si
    	Fin Si
    Fin
    Ben évidemment. Tu élimineras tous tes "if" imb(uvables)riqués en utilisant une boucle telle qu'expliquée ci-dessus...

    PS: le libellé "contient" en pseudo-code s'écrit "=" tout simplement si tu considères que "contenir" est une notion signifiant "telle variable contient telle valeur" qui se traduira en "telle variable est-elle égale à telle valeur". A ne pas confondre avec l'affectation qui s'écrira <- style A<-10 siginifiant "A récupère la valeur 10".
    Maintenant si tu emploies le terme "contenir" dans le sens "tel ensemble contient-il un élément particulier" alors tu ne peut pas le traduire de façon simple en pseudo-code. Te faut créer une variable témoin, balayer chaque élément de ton ensemble, évaluer si l'élément traité est particulier et si c'est le cas, modifier la variable témoin. En fin de boucle si la variable a été modifiée alors l'ensemble contient au-moins un élément particulier. Cet algo est facilement adaptable à "contient tous" (on considère qu'il les contient tous par défaut et on en cherche un qui n'est pas particulier) ou "ne contient aucun" (on considère alors qu'il en contient aucun par défaut et on cherche voir s'il y en a un).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Bonjour, tout d'abord pour ces reponses , elles m'ont bien (beaucoup) aidé ; j'ai tenu compte de vos corrections et sa marche ! je dois maintenant l'optimiser et le complexifier un peu car je ne vous ai pas donner toute les données , je voulais quand meme develloper de mon coté. (si vous etes interessés par le reusultat finale je pourrais vous l'envoyer une fois le projet terminer, donc n'hesitez pas à me le demander! )


    Sve@r
    Pour repondre a ta question concernant
    Ceci dit, je ne pige absolument pas comment 0003002a0000 devient 3002000.26 (d'où sort ce "26" ???)
    J'ai donner cet exemple dans le but de prouver que chaque constante est (peut etre) differente l'une de l'autre (A pas forcement egale à B qui n'est pas forcement egale à C ...)
    Apres c'est vrai que je l'ai mal expliquer du fait que dans le pseudo code j'ai mis toute les constante avec la meme variable valant 1.12

    Comme je l'ai dit je debute (je n'ai eu que quelque cours de pseudo code , cependant si mon prof aurait vu mes erreur je serais surement deja ) ; j'espere approfondir mes connaissance dans ce domaine et peut etre qui sait un jour savoir programmer facillement en C.
    Je trouve le language C interessant mais un peu complexe quand on commence mais je n'abandonnerai pas !

    En tout cas je vous remercie à nouveau et qui sais peut etre à bientot sur le forum

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

Discussions similaires

  1. Simplifier une ligne de calcul
    Par lilyla dans le forum MATLAB
    Réponses: 7
    Dernier message: 18/01/2008, 10h41
  2. Optimiser une ligne de calcul en Assembleur
    Par ALEX77 dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 07/12/2007, 19h08
  3. ligne de calcul excel
    Par booskap dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/07/2007, 09h10
  4. Réponses: 7
    Dernier message: 25/04/2007, 15h38
  5. Site de Traduction en ligne
    Par goldorax113 dans le forum Dépannage et Assistance
    Réponses: 9
    Dernier message: 25/10/2006, 21h24

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