Programme des foctions

Fermé
Hamidou - Modifié par Strumpfette le 5/05/2016 à 09:09
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 mai 2016 à 11:08
Bonjour,je m'appelle ***. je veux un programme qui permet de calculer le developemrnt limité de la fonction exponentielle.Merci



2 réponses

Utilisateur anonyme
5 mai 2016 à 07:20
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.


0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 5/05/2016 à 07:48
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)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
5 mai 2016 à 11:08
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().
0