Programmation en langage c
Résolu/Fermé
kokon
-
18 juil. 2010 à 03:29
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 juil. 2010 à 12:49
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 juil. 2010 à 12:49
A voir également:
- Programmation en langage c
- Langage ascii - Guide
- Application de programmation - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
18 juil. 2010 à 14:07
18 juil. 2010 à 14:07
Bonjour,
Merci de nous soumettre ton programme. On l'a bien reçu.
Par contre, on n'a pas reçu ta proposition pour qu'on puisse t'aider et te dire ce qui ne va pas.
Cdlt,
Merci de nous soumettre ton programme. On l'a bien reçu.
Par contre, on n'a pas reçu ta proposition pour qu'on puisse t'aider et te dire ce qui ne va pas.
Cdlt,
bonjour,mes amis. merci pour vos differentes remarques.A travers ce forum j'ai eu la solution à plusieur jour de travaux.j'ai compris qu'il fallait que je propose ce que j'ai pu faire.de ce faire je vous envoie ce que j'ai fait.
je suis en première année de math-informatiques-physiques-chimie à la faculté des science et technique de tanger(MAROC)
je l'ai résolu sous forme de programme et non de fonction.
MERCI DE ME CORRIGER.
Bonjour, j'ai un problème que j'aimérais vous soumettre.
Ecrire un programme qui calcule et affiche la somme de la serie
S=1/X - 2!/X^2 + 3!/X^3 - 4!/X^4 +.......(+ou -)N!/X^N.
merci pour votre comprehension. FST-TANGER(MAROC)
#include<stdio.h>
int main()
{
int N,X,i,j,puissance=1,factorielle=1;
float somme=0;
printf("entrez une valeur N:");
scanf("%d",&N);
printf("entrez une valeur X:");
scanf("%d",&X);
for(i=1;i<=N;i++)
{
for(j=1;j<=i;j++)
{
puissance*=X;
factorielle*=j;
}
}
for(i=1;i<=N;i++)
{
for(j=1;j<=i;j++)
{
if(i%2==0)
somme=somme -factorielle*j/puissance*X;
if(i%2!=0)
somme=somme +factorielle*j/puissance*X;
}
}
printf("la somme est :%f",somme);
getchar();
getchar();
return 0;
}
je suis en première année de math-informatiques-physiques-chimie à la faculté des science et technique de tanger(MAROC)
je l'ai résolu sous forme de programme et non de fonction.
MERCI DE ME CORRIGER.
Bonjour, j'ai un problème que j'aimérais vous soumettre.
Ecrire un programme qui calcule et affiche la somme de la serie
S=1/X - 2!/X^2 + 3!/X^3 - 4!/X^4 +.......(+ou -)N!/X^N.
merci pour votre comprehension. FST-TANGER(MAROC)
#include<stdio.h>
int main()
{
int N,X,i,j,puissance=1,factorielle=1;
float somme=0;
printf("entrez une valeur N:");
scanf("%d",&N);
printf("entrez une valeur X:");
scanf("%d",&X);
for(i=1;i<=N;i++)
{
for(j=1;j<=i;j++)
{
puissance*=X;
factorielle*=j;
}
}
for(i=1;i<=N;i++)
{
for(j=1;j<=i;j++)
{
if(i%2==0)
somme=somme -factorielle*j/puissance*X;
if(i%2!=0)
somme=somme +factorielle*j/puissance*X;
}
}
printf("la somme est :%f",somme);
getchar();
getchar();
return 0;
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
19 juil. 2010 à 12:49
19 juil. 2010 à 12:49
Bonjour,
Voici la correction de ton programme avec mes remarques :
Cdlt,
Voici la correction de ton programme avec mes remarques :
#include<stdio.h> int main(void) /*rajout de (void)*/ { int N,X,i,j,puissance=1,factorielle=1; /*c'est pas une bonne habitude de tout grouper pour la déclaration des variables. Il vaut mieux grouper les variables par logique. Par exemple grouper i et j car variables de boucles*/ double somme=0; /*Sauf cas très particulier, utilise toujours le type double (souvent plus performant et plus précis)*/ printf("entrez une valeur N:"); scanf("%d",&N); printf("entrez une valeur X:"); scanf("%d",&X); /*Il aurait été mieux de mettre ces calculs dans une fonction pour augmenter la lisibilité*/*/ for(i=1;i<=N;i++) { for(j=1;j<=i;j++) { puissance*=X; factorielle*=j; } } for(i=1;i<=N;i++) { for(j=1;j<=i;j++) { if(i%2==0) somme=somme -(double)factorielle*j/puissance*X; /*il ne faut pas oublier de caster en double, car la division d'entier donne le diviseur. Par exemple, 1/2 fait 0 et non 0.5*/ if(i%2!=0) somme=somme +(double)factorielle*j/puissance*X; /*voir remarque précédente*/ } } printf("la somme est :%f",somme); getchar(); getchar(); return 0; }
Cdlt,
Modifié par M4X 0000FF le 18/07/2010 à 20:31
Voici "une" solution l'ami:
Tu peu vérifier avec un exemple en Maple:
Bonne chance ;-)
Petit bonus au passage:
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/index.html
Modifié par fiddy le 18/07/2010 à 21:58
Sinon ton code contient une petite erreur.
Tu as mis scanf("%d",...) alors que l'argument n'est pas un int, mais un long.
Modifié par M4X 0000FF le 18/07/2010 à 22:03
S'il est vrai que je viens à peinde de m'inscrire à cçc, ça ne m'a pas empéché d'aider pas mal de monde la semaine dérnière à peu près dans tous les forums, en plus ça fais des années que consulte le site/forum mais je ne m'y suis pas inscrit car j'avais pas le temps d'y être très actif. Alors merci de ne pas jujer les personnes que tu ne connais pas encore bien.
Cela étant écris, on peu retourner au problème de kokon:
Bonjour, j'ai un problème que j'aimérais vous soumettre.
Je ne sais pas pour toi, mais perso je traduis ça par:
Salut, j'me suis cassé la tête dessus sans trouver de soluces, vous auriez pas un truc à me proposez svp ?
18 juil. 2010 à 22:52
De plus, ce n'est certainement pas en donnant une solution toute faite qu'on aide une personne. Penses-tu apprendre à une personne le piano en jouant à sa place ?
Et enfin, voici un petit lien CCM qui traite des demandes d'exercice : https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
Manifestement, plusieurs points concernent ce cas-là. Et conformément à la charte, j'ai demandé qu'il nous explique ce qu'il avait fait pour qu'on puisse l'aider.
Modifié par M4X 0000FF le 18/07/2010 à 23:08
Tu serais étonné d'apprendre tout ce qu'on peut apprendre rien qu'en observant par les yeux ou en écoutant [ah l'écoute... une qualité bien rare de nos temps... je sais c'est une remarque HS ;p]
Bref, je pense que si une personne en arrive à demandé de l'aide dans un forum, c'est qu'elle a du au moins essayé avec le peu qu'elle sait, après si elle réussi pas, c'est pas grave, elle apprendra de ses erreurs, perso, en analyse quand je n'arrive pas à justifier la convergence d'une série, généramement après une bonne heure je regarde la solution et j'en tire une lecon pour combler les lacunes de mon raisoonnement....
Et puis... faux pas être trop stricte hein, c'est un problème très classique en informatique: calcul d'une somme, programmation d'une factorielle, puissance [même si j'ai utilisé pow de math.h], la seule petite "astuce" [si on peu l'appeler ainsi] c'est de trouver le terme général de la série... Il en verra plein des comme ça ;-)