Programme des foctions [Fermé]

Signaler
-
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
Bonjour,je m'appelle ***. je veux un programme qui permet de calculer le developemrnt limité de la fonction exponentielle.Merci



2 réponses

Messages postés
16114
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 juillet 2021
723
Bonjour

Merci de garder à l'esprit que CodeS-SourceS et CCM sont des communautés d'entraide. Toutes les réponses sur le forum sont assurées par des bénévoles qui donnent de leur temps libre pour aider à résoudre les problèmes.

A noter également que nous ne faisons pas dans le "tout cuit". Soit tu trouves ton bonheur dans la partie sources du site, soit à l'aide de ton moteur de recherche favori. Ici, nous aidons volontiers sur une difficulté technique, précise et parfaitement isolée rencontrée dans le cours du développement.

Penser à poster le morceau de code qui pose problème, voir ici comment utiliser la coloration syntaxique. S'il y a un message d'erreur retranscrivez le dans son intégralité, en précisant à quelle ligne apparait cette erreur.

des conseils d'écriture des messages et ici et en particulier pour les devoirs scolaires ou PFE.

Penser que le titre doit refléter le contenu de la demande, "Question", "Problème" ou "Java", ne sont ni accrocheurs, ni utiles. Il semble évident qu'une question posée sur un forum de programmation Java tournera autour d'un problème lié à ce langage.

Merci donc de reformuler ta demande en respectant ces quelques points.


Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
948
Ceci peut faire ton bonheur.
Notons que la validation des entrées est réduite à RIEN. Tu feras cela toi-même.
L'important c'est la fonction my_exp.
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

double my_exp(double r, double epsilon)
{
  double sum = 0.0 ;
  double term = 1.0 ;
  int i = 1 ;

  while(fabs(term) > epsilon)
    {
      /*
      printf("i = %d\tsum = %f\tterm = %f\n", i, sum, term);
      */
      sum += term ;
      term =  term * r / i ;
      i++ ;
    }
  return sum ;
}
  
void usage(char *pname)
{
  fprintf(stderr, "Usage %s argument, precision\n", pname) ;
  return ;
}

int main(int argc, char *argv[])
{
  double x, error ;

  if( 3 != argc)
    {
      usage( argv[0] ) ;
      return EXIT_FAILURE ;
    }

  sscanf(argv[1], "%lf" , &x) ;
  sscanf(argv[2], "%lf" , &error ) ;

  printf("my_exp(%lf): %lf\n", x, my_exp(x, error)) ;
  printf("exp(%lf): %lf\n", x, exp(x)) ;

  return EXIT_SUCCESS ;
}


Compilation et exécution:
johand@bata:~/src/CCM$ gcc -Wall -o exp -lm exp.c
johand@bata:~/src/CCM$ ./exp -1 1E-5
my_exp(-1.000000): 0.367882
exp(-1.000000): 0.367879
A toi de préciser la condition de fin de la boucle while.

On ne fera pas toujours tes devoirs à ta place!
C'est te rendre un très mauvais service
Gates gave ^W  sold  you the windows.
GNU gave us the whole house.(Alexandrin)
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 768
Salut jisisv,

Je peux pas m'en empêcher :-) :
printf("my_exp(%lf): %lf\n", x, my_exp(x, error)) ;
Pas de %lf dans les printf(). Même si c'est toléré aujourd'hui, il est en fait ignoré par le compilateur.

return ;
Pas d'intérêt en fin de void().