CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Pb en C urgent

rip324
rip324
Niveau 9
23 février 2005 à 12:51:06

/ *Résolution d´une équation par la méthode dichotomique conçu par Rémi Lapouze et Charles Nicollas*/

  1. include < stdio.h>

double f(double X)
{
return ( (X+5));
}

void main()

{
double a,b,c,eps;
int p,cpt;
bool b_valable;

for(b_valable=false;!b_valable;)
{
printf ( "borne inférieur de l´intervalle?");
scanf("%lf", &);
printf("borne supérieur de l´intervalle?");
scanf("%lf",&);
b_valable=((a<b)&&(f(a)*f(b)<0));
if(!b_valable)
{
printf("a doit ètre inférieure à b et f(a)*f(b) doit ètre inférieure à 0");
}
}
for ( b_valable=false;!b_valable;)
{
printf("nombre de chiffres après la virgule de la valeur approchée?");
scanf("%lf",&);
b_valable=((0<p)&&(p<11));
if(!b_valable)
{
printf("p doit être supérieur à 0 et inférieur à 11");
}
}
eps=(1);
for ( cpt<=p;cpt+1;)
{
eps=(eps*0,1);
}
for ( erreur<eps;)
{
c=((a+b)/2)
if ( f(c)==0)
{

}
}

printf("afficher le nombre de chiffres significatifs");
printf("La solution est %lf à 10-&"c,p);

AIDE svp . .. regardez le langage C au dessus de l´énoncé et dit moi ce qui est bon et mauvais ! !

gollumkawder
gollumkawder
Niveau 10
23 février 2005 à 13:01:03

donne nous les erreurs de ton compilateur

rip324
rip324
Niveau 9
23 février 2005 à 13:09:03

_undefined symbol " erreur"
_ expression syntax
_ function cal missing
_ for statement missing
_ compound statement missing

vs voulez peut -etre l´énoncé ?
et ce prog n´est pas fini j´y arrive pas ! !

rip324
rip324
Niveau 9
23 février 2005 à 13:09:38

Dossier " Résolution d’une équation par la méthode dichotomique"

I) Présentation du problème
Il n´est pas toujours facile de calculer les racines d´une équation même si celle-ci est de la forme :
f(x) = 0
La méthode dichotomique permet de trouver une valeur approchée d´une racine de l´équation ci-dessus. Si nous nous plaçons dans un intervalle où la fonction f est continue strictement monotone et les valeurs de la fonction aux bornes de l´intervalle sont de signes opposés, nous savons que cette équation admet une unique solution. Le principe est de diviser l´intervalle en deux parties égales, l´un des deux intervalles a les mêmes propriétés.
II) Cahier des charges
Cet automate sera écrit en langage C ( celui de Borland) par un binôme d´étudiants, à partir d´un document établi par G. Desenfant. Le délai de réalisation sera d´un mois. Cet automate sera utilisable sur un micro-ordinateur PC.
III) Analyse
1) Analyse mathématique
Nous avons à résoudre l´équation f(x) = 0 où f est une application continue et strictement monotone sur un intervalle [a ; b]. De plus sur cet intervalle, l´équation admet une unique solution notée x0. Donc, f(a) et f(b) sont de signe contraire.
Soit c le milieu de l´intervalle. Si f(a) * f(c) est positif, l´intervalle [c ; b] est tel que f est continue et strictement monotone sur cet intervalle et les valeurs de la fonction aux bornes de l´intervalle sont de signe opposé, donc on peut prendre pour nouvel intervalle [c ; b]. Dans le cas contraire, l´intervalle [a ; c] est tel que f est continue et strictement monotone sur cet intervalle et les valeurs de la fonction aux bornes de l´intervalle sont de signe opposé, donc on peut prendre pour nouvel intervalle [a ; c]. Nous définissons, ainsi, une suite d´intervalles [an ; bn]. Si nous notons a0, la borne inférieure a de l´intervalle initial et b0, la borne supérieure ( b)., nous remarquons que :
( bn - an) = ( b - a) / 2n
Ces intervalles " convergent" vers la solution de l´équation. L´erreur est majorée par : bn - an
De plus, nous recherchons une valeur approchée de l´équation à un * près ( * sera une puissance négative de 10).

2) Analyse informatique
L´algorithme est simple, il suffit d´introduire toutes les valeurs souhaitées ( a, b, *), prendre pour première valeur de la suite le milieu du segment [a ; b] puis lancer le calcul de la suite des intervalles. On s´arrête lorsque l´intervalle a une longueur inférieure à *. En saisissant a et b, il faut vérifier que le produit de f(a) par f(b) est négatif strictement. Nous ne pouvons pas vérifier que la fonction est monotone sur cet intervalle… Pour plus de clarté, nous vérifierons que a est strictement plus petit que b ( ce qui n’est pas . indispensable).
La suite récurrente d´intervalles est calculée selon le signe du produit f(a) * f(c) ( où c est le milieu de l´intervalle précèdent). Si ce produit est positif, l´intervalle devient [c ; b], ou on remplace a par c. Si ce produit est négatif, on remplace b par c.
Nous ne demanderons pas * mais le nombre de chiffres après la virgule que nous voulons pour approcher la racine. Ce nombre de chiffres est noté p ( p est un entier compris entre 1 et 10). Nous calculons 10-p en multipliant p fois 0.1.
L´expression de la fonction f est entrée au préalable.

MrGoTo
MrGoTo
Niveau 8
23 février 2005 à 13:09:39

Meme avis que gollum mais à ma connaissance bool n´est pas utilisable en C pur.

rip324
rip324
Niveau 9
23 février 2005 à 13:10:21

c du langage C je crois pourtant je débute juste c sur Borland C++

rip324
rip324
Niveau 9
23 février 2005 à 13:20:59

g même l´algo mais je suis une vrai mer een programmation.... dsl pr ceux qui me reconnaitrront

dnob700
dnob700
Niveau 10
23 février 2005 à 13:53:11

eps=(1);
for ( cpt<=p;cpt+1;)
{
eps=(eps*0,1);
}
for ( erreur<eps;)
{
c=((a+b)/2)
if ( f(c)==0)
{

toute la fin c´est du n´importe quoi :

tu n´initialise pas cpt, tu n´initialise pas eps, tu ne cré pas erreur...

for ( cpt<=p;cpt+1;)
le premier membre n´est pas une initialisation et le second n´est pas un test...

tu ne touche jamais à a et b, j´ai du mal à comprendre ce que tu pensais faire.

parce qu´on pourrait te passer l´algo ( j´en ai un tout pret qui attend que je te montrerai plus tard), mais ça ne sert à rien.

Pour l´instant, réécrit tout à partir de eps=(1) en relisant bien ton algo et en faisant gaffe, si ya qqch que tu ne comprend pas, on peut t´aider, mais là, vraiment c´est trop loin de quoi que ce soit, pour qu´on puisse avoir des remarques constructives sur le code.

MrGoTo
MrGoTo
Niveau 8
23 février 2005 à 14:05:56

Ah oui effectivement.
Dnob tu devrais ouvrir une hotline :D

rip324
rip324
Niveau 9
25 février 2005 à 21:07:46

merci les gars je revien si je compren rien ! !

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment