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 :

representation scientifique d'un reel ou entier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut representation scientifique d'un reel ou entier
    salut tout le monde
    je veux calculer la valeur reéle représenté par une chaine de caractéres...sachant que j'ai borland c++.... par exemple j'ai dans le tableau les valeurs suivants:
    -,7,1,3,e,-,6 il m'affiche -0.000713.....l'opération est :
    -713*(10 puissance-6)
    3,7,.,2,e,3 il m'affiche 37200..l'operation est: 37,2*(10puissance 3)
    -.4.9.2.8 il m'affiche -4928
    NB: e pour exponentielle
    voila le 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
     
     
    # include<stdio.h>
    #define_GNU_SOURCE
     
    #include <math.h>
     
    void main()
    { int i;
    char t[10],m=' ',b=' ',p=' ',y='e';
      int d,k,bool=0;
      float v,c;
      for (i=0;i<=10;i++)
      if (t[i]=='-') bool =1;
    		if (t[i]!=y) m=m+t[i];
    			else if (t[i+1]=='-')
    										{ for (k=i+1;k<=10;k++)
    										p=p+t[k];
    										if (bool==1)
    										/* nbre reele eleve a la puissance nbre negative */
    										  {	v=float powf (float m, float p);}
    											/* nbre positif eleve a la puissance nb negative*/
    										else {	v= double pow(double m,double p);
    										printf("v =%f",v);};
    					else {for(d=i+1;d<=n;d++)
    					b=b+t[d];};
    					if( bool==0)	/* nbre positif eleve a la puissance nbre positif*/
    					else{
    /* nbre negative eleve a la puissance nbre positif*/
     
    c=double pow(double m,double b);
    					printf("c =%f",c);}
    					if( i==10) printf ( "m =%s",m);
     
    }}

  2. #2
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    le probleme dans les puissances et est ce que la methode est juste
    merci d'avance pour l'aide

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    • Primo révises tes tabulations et indentations, c'est horrible..
    • Secondo, c'est quoi la question ? Faire l'affichage de c ?


  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Hum...

    Revois tes indentations, c'est illisible.
    Ensuite, tu as de très grosses erreurs à corriger en premier lieu :
    Il manque une accolade à ta première boucle for (mais bon tu l'aurais vu si tu indentais correctement)
    Il traîne un n dans le code qui vient de nul part.
    Tu ne sais pas appeler une fonction : double pow(double m,double b); est un prototype. Si tu veux l'appeler,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double c, m, p;
    c = pow (m, p);

  5. #5
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    la question est afficher la valeur du nbre a partir de tableau.... ce nbre peut etre réel ,entier... ca depend les valeur de tableau
    j'ai compilé le programme et j'ai trouvé des problemes au niveau de puissancehorrible.........

  6. #6
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    ahha pour les puissance je fait ca qlq soit le type de m et p!

  7. #7
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut
    avez vous essayez le code que j’ai mit ?
    quel compilateur vous utiliser car le mien est Visual Studio Express2005
    essayez celui-là
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include<math.h>
    int main ()
    {
      char chaine[] = "-492.78123e2.1";
      char *pt;
      double a;
      pt = strtok(chaine,"e");
      a=atof(pt);
      if(pt=strtok(NULL,"e"))
      {
    	  a=a*pow(10,atof(pt));
      }
      printf("%lf",a);
      return 0;
    }
    apès compilation il donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    code.c
     
    code.obj - 0 error(s), 0 warning(s)
    après execution ça donne
    -62037.481290Press any key to continue

  8. #8
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut
    Salut
    essayez ce 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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include<math.h>
    int main ()
    {
      char chaine[] = "-713e-6";
      char *pt;
      double a;
      pt = strtok(chaine,"e");
      a=atof(pt);
      if(pt=strtok(NULL,"e"))
      {
    	  a=a*pow(10,atoi(pt));
      }
      printf("%f",a);
      return 0;
    }

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par dyala Voir le message
    voila le code
    Tu peux déjà corriger tout ça :
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:4:2: invalid preprocessing directive #define_GNU_SOURCE
    main.c:9: warning: function declaration isn't a prototype
    main.c:9: warning: return type of 'main' is not `int'
    main.c: In function `main':
    main.c:21: error: syntax error before "float"
    main.c:23: error: syntax error before "double"
    main.c:25: error: syntax error before "else"
    main.c:25: error: `n' undeclared (first use in this function)
    main.c:25: error: (Each undeclared identifier is reported only once
    main.c:25: error: for each function it appears in.)
    main.c:25: error: syntax error before ')' token
    main.c:28: error: syntax error before "else"
    main.c:31: error: syntax error before "double"
    main.c:33: warning: format argument is not a pointer (arg 2)
    main.c:10: warning: unused variable `b'
    main.c: At top level:
    main.c:35: error: syntax error before '}' token
    Process terminated with status 1 (0 minutes, 4 seconds)
    11 errors, 4 warnings

  10. #10
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut
    ça m'a échappé dont le nouveau code est:
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include<math.h>
    int main ()
    {
      char chaine[] = "-492.7812e3";
      char *pt;
      double a;
      pt = strtok(chaine,"e");
      a=atof(pt);
      pt=strtok(NULL,"e");
      if(pt!=NULL)
      {
    	  a=a*pow(10,atof(pt));
      }
      printf("%lf",a);
      return 0;
    }

  11. #11
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    hum merci archer mais j'ai borland c++

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par dyala Voir le message
    hum merci archer mais j'ai borland c++
    Et, quel est le problème ? Le code d'archer est portable.

  13. #13
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    non c pas ca le probleme mais emmanuel comment vous avez compilez le programme d'apres le forum...ce borland ne marche pas

  14. #14
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut
    oui avec plaisir
    jettez un coup d'oeil sur cette page
    http://www.cplusplus.com/reference/c...ng/strtok.html

  15. #15
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut
    tout d'abord le fonction strtok() admet deux arguments, le premier est la chaîne que tu veux traiter ,le second est une chaîne qui contient les caractères qui séparent les éléments de la chaîne et elle retourne en premier lieu la première sous chaîne comprise entre ces caractères ici on l'a mit dans le pointeur ‘pt’

  16. #16
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    tres joli ton programme simple et bien rediger....... mais j'ai des petites soucis :
    strlen(t1) pour calculer la taille det1
    je peux pas faire void main() pas int main() et j'utilise pas return0
    quand je fais atof (t2) il me rasemble les char comme un nombre!! c'est marrant
    et grand merci

  17. #17
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    archer :
    Tu aurais du être sur que c'était bien le signe =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      if(pt=strtok(NULL,"e"))
      {
    	  a=a*pow(10,atof(pt));
      }

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

Discussions similaires

  1. partie entiere d'un reel
    Par anisj1m dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 30/04/2007, 16h55
  2. Transformer un reel en notation scientifique
    Par delsinnj dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/10/2006, 09h31
  3. Debutant TChart : représenter f(x), x réel
    Par Smogling dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/06/2006, 11h22
  4. [8086] Diviser un réel par un entier
    Par sali dans le forum Assembleur
    Réponses: 2
    Dernier message: 30/04/2006, 22h47
  5. Réponses: 10
    Dernier message: 23/02/2006, 11h10

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