IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

probléme en C


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 54
    Par défaut probléme en C
    bonjour je doit afficher par ordre décroissant 3 entiers quelconques entrés au clavier.

    Comment je pourait effectuer ca ? car pour le moment je n'ai appris que les condition if , else ect... Merci d'avance

  2. #2
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Bonjour,

    On ne fera pas l'exercice à ta place.

    Pour commencer, trouve l'algo (en français, ou en pseudo-code) qui résoudra le problème. Généralement, en listant les actions pour résoudre le problème "à la main", on peut trouver un premier algo.
    Quand tu l'auras trouvé, donnes-le nous, pour qu'on voit si tu pars dans la bonne direction, et qu'on puisse t'aider le cas échéant.

    Ensuite, tu pourras coder cet algo.

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par conceicao
    bonjour je doit afficher par ordre décroissant 3 entiers quelconques entrés au clavier.

    Comment je pourait effectuer ca ? car pour le moment je n'ai appris que les condition if , else ect... Merci d'avance
    Ca s'appelle faire un tri. Tu as vu les boucles ?

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 873
    Par défaut
    Il existe la fonction qsort si besoin, mais j'imagine que toi on te demande de faire ton propre algorithme de tri, probablement bulles ou insertion ( ce sont les plus basiques ).

    A+

  5. #5
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut
    dans la mesure ou il doit trier TROIS valeurs avec des if et des else, allez peut etre pas le pourir avec vos tris a bulle..

    Et pour répondre a la question, si quand t'avais appris les multiplications, a chaque fois qu'on te demandais en cours "multiplie ces trois chiffres" t 'étais venu nous demander comment faire, tu ne saurais toujours pas compter.

    C'est exactement la meme chose ici, si tu ne sais pas comparer trois entiers par toi meme , tu ne sauras jamais rien faire.

  6. #6
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 873
    Par défaut
    Il a dit qu'il avait déjà appris les if et les else.
    Donc je pense qu'il est interessant de lui donner d'autres pistes, vu qu'il débute, au lieu de lui dire d'utiliser bêtement les if et les else

    A+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 54
    Par défaut
    les boucle j'ai pas encore vu , et je viens vous demander juste si c 'estpossible de le faire avec des conditions if else car je voix pas si c 'estvraiment possible.
    Je vous ai pas demander de me faire mon programme mais de savoir si c'etait possible.
    J'essaye de prendre l'avance sur les exercice que l'on m'a donner mais je pense que je n'ai pas encore vu la theorie alors si il faut utiliser des boubles

  8. #8
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par conceicao
    les boucle j'ai pas encore vu , et je viens vous demander juste si c 'estpossible de le faire avec des conditions if else car je voix pas si c 'estvraiment possible.
    Je vous ai pas demander de me faire mon programme mais de savoir si c'etait possible.
    J'essaye de prendre l'avance sur les exercice que l'on m'a donner mais je pense que je n'ai pas encore vu la theorie alors si il faut utiliser des boubles
    Bon, comme tu n'as pas l'air de vouloir trouver l'algo, je t'en donne un (sans doute pas le meilleur) :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    - nb1, nb2, nb3 sont des entiers.
    - mini, maxi, milieu sont des entiers.
    - saisir 3 entiers nb1, nb2, nb3.
    
    - mini := nb1
    - si mini > nb2 alors mini := nb2
    - si mini > nb3 alors mini := nb3
    
    - maxi := nb1
    - si maxi < nb2 alors maxi := nb2
    - si maxi < nb3 alors maxi := nb3
    
    - milieu := nb1
    - si mini == nb1 ou maxi == nb1 alors milieu := nb2
    - si mini == nb2 ou maxi == nb2 alors milieu := nb3
    
    - afficher mini
    - afficher milieu
    - afficher maxi

    Tout est fait avec des if else...

  9. #9
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 873
    Par défaut
    Salut,

    Je vois que tu débutes vraiment, mais je tiens à te faire mes félicitations de vouloir prendre de l'avance sur ton cours, c'est une bonne démarche qui te sera bénéfique à l'avenir.

    En général, les tests de type "if" sont le plus souvent utilisés pour des branchements dans ton programme. Ils concernent une prise de décision quand au déroulement du programme.

    Il est vrai que si ton programme se limite à récupérer 3 entiers et tester leurs inégalité et ordre, le if peut donc constituer un test relatif à la décision que tu vas prendre dans ton programme, car il est très simple.

    Cependant, en général, lorsque un grand nombre de tests doivent être effectués les uns à la suite des autres, on utilise plutot une structure switch. C'est comme un ensemble de if/else mais en plus lisible.

    Dans les cas encore plus compliqués ( comme par exemple un tri sur des milliers d'enregistrements ) on voit bien qu'une structure switch ne nous sauvera pas. Il faut donc utiliser un ensemble de fonctions qui permettent d'atteindre l'objectif désiré.

    Imaginons que dans ton cas, tu souhaites trier n chiffres, en fonction du nombre de chiffres que l'utilisateur entrera ( disons qu'à chaque passage, il va appuyer sur entrée pour valider son chiffre, et si il souhaite arrêter, il appuyera sur entrée sans rien entrer )

    On voit bien qu'étant donné que tu ne connais pas le nombre d'élement à l'avance, tu ne peux pas coder un programme avec des structures if else ou avec un switch. Il faut donc tout d'abord stocker les informations dans un tableau ( tu le verras surement dans la suite de ton cours ) qui est une sorte de structure pouvant contenir des elements.

    Ensuite, pour ordonner ce genre de tableaux, tu auras plusieurs choix:

    Parcourir ton tableau élément par élément, et utiliser un algorithme de tri. Le plus simple des algorithmes de tri est le suivant : le tri par insertion. Tu pourras trouver des définitions de cet algorithme sur le net. Il existe de nombreux algorithmes de tri, le plus performant étant le quicksort, dans la plupart des cas. C'est une bonne idée d'utiliser cette méthode quand on est en phase d'apprentissage, pour comprendre comment les algorithmes de tri fonctionnent en interne.

    Utiliser une fonction de la bibliothèque standard qui fait un tri. En l'occurence, la fonction standard est qsort, qui permet de trier les éléments d'un tableau si tu lui fournis une fonction de comparaison des éléments ( car sans fournir la fonction de comparaison, on ne saurait pas quelle méthode utiliser dans le cas de structures complexes ). C'est la meilleure façon de faire, car utiliser la librairie standard te permet de profiter du travail de personnes ayant déjà réfléchi à la question.

    Bon j'espère que c'est un petit peu plus clair A+ et bon courage !

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 54
    Par défaut
    un grand merci pour ses explications , je comprend mieux l'utilisation de certaine technique appropriées.

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,
    Citation Envoyé par KiLVaiDeN
    Il a dit qu'il avait déjà appris les if et les else.
    Donc je pense qu'il est interessant de lui donner d'autres pistes, vu qu'il débute, au lieu de lui dire d'utiliser bêtement les if et les else

    A+
    C'est un exercie qu'il doit faire, et, par principe, un exercie se fait en utilisant les techniques apprises en cours, ce qui permet de les assimiler (c'est du moins le but).
    Lui indiquer autre chose risque plus de l'embêter que de l'aider.

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par thewho
    Bonjour,

    C'est un exercie qu'il doit faire, et, par principe, un exercie se fait en utilisant les techniques apprises en cours, ce qui permet de les assimiler (c'est du moins le but).
    Lui indiquer autre chose risque plus de l'embêter que de l'aider.
    +1

  13. #13
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 873
    Par défaut
    Il est vraisemblablement en tout début de cours; Si il peut comprendre ce qu'on lui a apprit ET avoir une notion de ce qui va arriver par la suite, il en profitera doublement.

    Lui donner juste la solution à son problème en lui expliquant qu'avec un if il peut comparer des valeurs et repérer le min et le max, c'est sympa, mais ça ne l'avancera pas grandement dans son apprentissage du C.

    Je pense qu'il aurait de toutes manières deviner comment le faire avec des if/else. Donc autant lui donner quelques pistes pour qu'il se documente, si il est curieux.

    A+

  14. #14
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Lui donner juste la solution à son problème en lui expliquant qu'avec un if il peut comparer des valeurs et repérer le min et le max, c'est sympa, mais ça ne l'avancera pas grandement dans son apprentissage du C.

    Je pense qu'il aurait de toutes manières deviner comment le faire avec des if/else. Donc autant lui donner quelques pistes pour qu'il se documente, si il est curieux.
    En fait, le mieux, c'est de faire un algo et/ou un code en C, de nous le montrer, en demandant éventuellement ce qu'il est possible de faire pour l'améliorer ou l'optimiser...

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 54
    Par défaut
    Voila j'ai résolu le probléme , justement on vient de voir en cours les conditions logique (and , or , xor ,...)
    A partir de la j'ai su faire le programme , merci pour votre aide et vos suggestion , il falait que j'attendre un peu tout compte fait lolll

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,
    Citation Envoyé par conceicao
    Voila j'ai résolu le probléme , justement on vient de voir en cours les conditions logique (and , or , xor ,...)
    A partir de la j'ai su faire le programme , merci pour votre aide et vos suggestion , il falait que j'attendre un peu tout compte fait lolll
    Je ne pense pas : si on t'a donné l'exercice avant d'avoir vu ces structures, c'est qu'il fallait le résoudre sans les utiliser.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo