Partage
  • Partager sur Facebook
  • Partager sur Twitter

programmer une equation du second degre en C

Les pointeurs

4 mars 2007 à 23:14:52

Citation : candide

Tu crois pas que tes pointeurs x1 et x2 servent à quelque chose ?


Difficile de retourner 2 double sans pointeurs. Tu proposes quoi ? De passer l'adresse du premier élément d'un tableau de 2 doubles ?
  • Partager sur Facebook
  • Partager sur Twitter
Music only !
Anonyme
5 mars 2007 à 17:13:04

Citation : -ed-

C'est pour accéder à la variable globale du C 'errno' (error number) qui contient le code de la dernière erreur causée par une fonction de la bibliothèque. On peut visualiser l'erreur avec perror().



Oui peut etre :p

Citation : Jutem

Si a est nul, l'équation devient une équation du premier degré.
Il y aura alors une solution réelle, pour autant que b ne soit pas également nul.



Est ce vraiment sa qui est important ici??? o_O
On est dans un exercice permettant de calculer un polynome du second degrés et pas du premier degrés et je ne pense pas que dans son exercice il faille rajouter une fonction pour les fonctions affines . Il est vrai que j'aurais pu mettre un message different mais dans le cadre d'un polynome du second degrés avec la formule -b -+ racine( delta)/2a avec a =0. Pas de solution reel

Enfin bref ce que j'ai dit est mathematiquement faux et je m'excuse.

MUTHA ma envoyé par MP l'exercice 4 : il fallait calculer a/b et donner le resultat si la solution est un nombre entier . Voila ce que j'ai fait ( 30secondes de reflexions :p et 1 minute d'application :-° )

#include <stdio.h>
#include <stdlib.h>

void affichage(long *a, long *b)
{
    printf(" Entrer un nombre a : ");
    scanf("%ld", a);
    printf(" Entrer un nombre b : ");
    scanf("%ld", b);
}

long division(long *a, long *b)
{
    long resultat =0, reste =0;
   
    resultat = (*a) / (*b);
    reste = (*a) % (*b);
   
    if (reste)
        resultat = -1;
       
    return resultat;
}


int main()
{
    long a =0, b =0, resultat;
   
    affichage(&a, &b);
    resultat = division(&a, &b);
   
    if (resultat == -1)
        printf(" le resultat de la division n'est pas un entier");
       
    else
        printf(" %ld / %ld = %ld", a , b , resultat);
       
    return 0;
   
}


J'ai fait exprés d'uttiliser des fonctions et des pointeurs meme si il y avait plus simple




  • Partager sur Facebook
  • Partager sur Twitter
5 mars 2007 à 17:26:36

Citation : alxalpha

Citation : -ed-

C'est pour accéder à la variable globale du C 'errno' (error number) qui contient le code de la dernière erreur causée par une fonction de la bibliothèque. On peut visualiser l'erreur avec perror().



Oui peut etre :p


o_O Comment ça, 'peut être' ? C'est certain.

Citation : Pas de titre

MUTHA ma envoyé par MP l'exercice 4 : il fallait calculer a/b et donner le resultat si la solution est un nombre entier . Voila ce que j'ai fait ( 30secondes de reflexions :p et 1 minute d'application :-° )


Mes commentaires...

#include <stdio.h>
#include <stdlib.h>

/* -ed- pourquoi 'affichage' . J'aurai mis 'saisie', non ?

  je recommande 'p' devant les pointeurs... pa, pb...
*/

void affichage(long *a, long *b)
{
    printf(" Entrer un nombre a : ");
/* -ed- manque
    fflush(stdout); EDIT

   http://mapage.noos.fr/emdel/notes.htm#fflush_stdout
*/

    scanf("%ld", a);
    /* -ed- On a l'impression qu'il maque un &, c'est horrible...
            Les erreurs de saisies ne sont pas traitées... */


    printf(" Entrer un nombre b : ");
    scanf("%ld", b);
}

long division(long *a, long *b)
/* -ed- pointeurs totalement inutile, ou alors utiliser une structute et const... Il n'y a aucune raison d'écrire du code plus compliqué que nécessaire... */

{
    long resultat =0, reste =0;
   
    resultat = (*a) / (*b);

/* -ed- il est inutile d'affecter 2 fois une variable quand une fois suffit. Les parenthèses sont inutiles :

    long resultat = *a / *b;

*/

    reste = (*a) % (*b);
    /* -ed- voir ldiv(), c'est fait pour ... */
   
    if (reste)
        resultat = -1;
       
    return resultat;
}


int main()
{
    long a =0, b =0, resultat;
   
    affichage(&a, &b);
    resultat = division(&a, &b);
   
    if (resultat == -1)
        printf(" le resultat de la division n'est pas un entier");
       
    else
        printf(" %ld / %ld = %ld", a , b , resultat);
       
    return 0;
   
}

  • Partager sur Facebook
  • Partager sur Twitter
Music only !
Anonyme
5 mars 2007 à 18:52:45

J'ai mis des pointeurs pour qu'il apprenne a les utilsers car il est en plein dedant .

Citation : -ed-

fflush(stdout();

http://mapage.noos.fr/emdel/notes.htm#fflush_stdout



Je connais pas encore , j'irais donc lire sa juste aprés

Citation : -ed-

On a l'impression qu'il maque un &, c'est horrible...
Les erreurs de saisies ne sont pas traitées...



Il manque un & ???? mais je travaille sur des pointeurs il ne faut pas mettre de &.

Sinon pour les erreurs de saisis MUTHA ne connais pas encore inutile de l'embrouiller avec du codeun peu lourd .

Citation : -ed-

voir ldiv(), c'est fait pour



ldiv() je connais pas non plus :-° et ouai je debute :p . Pour moi le modulo est la pour sa donc j'attend de voir l'interet de cette fonction

  • Partager sur Facebook
  • Partager sur Twitter
5 mars 2007 à 23:21:09

Citation : alxalpha

J'ai mis des pointeurs pour qu'il apprenne a les utilsers car il est en plein dedant .


La première chose qu'on apprend, c'est à les utiliser à bon escient...

http://mapage.noos.fr/emdel/notes.htm#util_pointeurs

On utilise pas outil aussi complexe que les pointeurs sans justification, sinon, on fait n'importe quoi...

Citation : Pas de titre


Citation : -ed-

fflush(stdout);

http://mapage.noos.fr/emdel/notes.htm#fflush_stdout



Je connais pas encore , j'irais donc lire sa juste aprés


Attention, il y avait une '(' en trop...

Citation : Pas de titre


Citation : -ed-

On a l'impression qu'il maque un &, c'est horrible...
Les erreurs de saisies ne sont pas traitées...



Il manque un & ???? mais je travaille sur des pointeurs il ne faut pas mettre de &.


J'ai bien compris, mais c'est l'impression que ça donne et cette impression est horrible ! Mais le code est correct.

Citation : Pas de titre


Sinon pour les erreurs de saisis MUTHA ne connais pas encore inutile de l'embrouiller avec du codeun peu lourd .


Boaf, ne pas sous-estimer les capacité des débutants. Certains sont munis d'un cerveau en état de marche...

Citation : Pas de titre


Citation : -ed-

voir ldiv(), c'est fait pour



ldiv() je connais pas non plus :-° et ouai je debute :p . Pour moi le modulo est la pour sa donc j'attend de voir l'interet de cette fonction

Tu peux attendre longtemps ! Il faut prendre les devants et lire la doc...
  • Partager sur Facebook
  • Partager sur Twitter
Music only !
21 octobre 2016 à 0:37:06

hmm désole

-
Edité par AbderrahimBahia 21 octobre 2016 à 0:43:55

  • Partager sur Facebook
  • Partager sur Twitter
21 octobre 2016 à 0:40:02

Bonjour,

crée ton propre sujet au lieu d'en réveiller un qui date d'il y a presque 10 ans …

crée-le sur le forum C++ et non le forum C

Prends bien soin de lire comment poster du code sinon tu vas te faire appeler arthur → Règles de ce forum, à lire avant de poster

  • Partager sur Facebook
  • Partager sur Twitter
First solve the problem. Then, write the code. ~ John Johnson
30 décembre 2016 à 11:13:16

-ed- a écrit:

Citation : MUTHA


Voici les formules:
Equation du second degre:ax^2+bx+c=0
D(discriminant)=b^2-4ac
Si D<0 alors il n'ya pas de solution(solutions reelle,je veux dire){ex:a=1;b=1,c=1}
Si D=0 alors x1=-b/2a {ex:a=1;b=4;c=4}
Si D>0 alors x1=(-b+sqrt(b^2-4ac))/2a et x2=(-b-sqrt(b^2-4ac))/2a {ex:a=3; b=-21;c=36}


OK. Et le code ?



  • Partager sur Facebook
  • Partager sur Twitter
30 décembre 2016 à 12:38:45

Désolé RaniaRanoucha2, tu ne remporteras pas le Neuneu D'Or cette année. Pourtant tu as fait fort :

‒ Répondre à un message daté d'il y a dix ans : il date du 4 mars 2007 ‒ Chirac était encore président ! (D'ailleurs n'est-ce pas le record du forum ?)

‒ Taper son message à l'intérieur de la citation.

‒ Dire « et le code ? » alors que le code a été posté (en haut de la page 2).

Mais tu n'as pas fait de faute d'orthographe ni utilisé de langage SMS, et ça, c'est rédhibitoire pour le Neuneu D'Or.

-
Edité par robun 30 décembre 2016 à 12:39:46

  • Partager sur Facebook
  • Partager sur Twitter