Besoin d'aide pour un petit prog!

Besoin d'aide pour un petit prog! - C++ - Programmation

Marsh Posté le 01-11-2005 à 12:59:30    

Voila, je suis en 1ere année de DUT STID et je ne comprend pas un exo en raison de mon absence au dernier TP de programmation.
Je comprend à peu près bien les bases avec les si...mais j'avoue être pommé pour les prog comportant des sous-programmes malgré que je les comprenne en algo.. Bref, un peu d'aide serait vraiment la bienvenue (surtout un exemple il me faudrait en fait pour que je puisse faire l'exercice 4 qui est du même genre.
 
Voici l'énoncé :
 
Exercice 3 :
Il existe en C++ un certain nombre de fonctions prédéfinies (c'est-à-dire prêtes à être utilisées). Pour utiliser une telle fonction , il faut connaître la librairie dans laquelle elle est définie et compléter la partie « Librairies » du programme
Ainsi , la fonction prédéfinie sqrt( ?) nécessite l’utilisation de la librairie math.h
Cette fonction calcule la racine carrée du nombre passé en paramètre.  
Ecrivez un programme permettant de demander un nombre à l’utilisateur puis d’afficher sa racine carrée.
Dans combien de cas devez-vous tester pour ce programme ? Faites le.
 
Le programme est à faire sous VB C++ 6,0 (et oui, malgré les nouveaux PC, ils restent sur de vieilles versions...) et doit apparaitre sous cette forme :
 
// Les librairies
#incluse <iostream.h>
 
// Les prototypes des fonctions
 
// Le programme principal
void main ()
{
                       // Déclaration des variables
 
         // Message indiquant ce que fait le programme
 
         // Les instructions du programme principal
 
}
 
// Définition des fonctions


Message édité par St4tiC le 01-11-2005 à 15:27:52
Reply

Marsh Posté le 01-11-2005 à 12:59:30   

Reply

Marsh Posté le 01-11-2005 à 13:00:42    

quel est le probleme? [:petrus75]
ou est le code que tu as deja pondu?

Reply

Marsh Posté le 01-11-2005 à 13:03:20    

betsamee a écrit :

quel est le probleme? [:petrus75]
ou est le code que tu as deja pondu?


 
#incluse <iostream.h> c'est peut etre déja un probleme ?  [:petrus75]

Reply

Marsh Posté le 01-11-2005 à 13:05:14    

[:pingouino]

Reply

Marsh Posté le 01-11-2005 à 13:05:34    

Le problème est que vu que je n'étais pas là lors du cours en progra sur les sous-prog (ce n'est que le 2e cours que j'ai eu en tout donc mon niveau n'est pas vraiment élevé..), je n'arrive pas à faire quoi que ce soit là (pour les exos 1 et 2 j'ai fait les algo et l'analyse du problème mais là il ne faut faire que le prog et vu que je nai aucun exemple...)
 
Je dois aussi préciser que mon PC portable sur lequel est installe Visual 6,0 ne démarreplus donc c'est vraiment la galère :(


Message édité par St4tiC le 01-11-2005 à 13:11:12
Reply

Marsh Posté le 01-11-2005 à 14:32:01    

balance ton algo deja on peut en tirer quelque chose et on pourra apres cela t'orienter ;-)

Reply

Marsh Posté le 01-11-2005 à 15:35:47    

Voici mon algo :
 
AlgoEx3CPP;
 
VAR
nb,resultat:reel;
 
DEBUT
Ecrire ('Ce programme sert à calculer la racine carré d'un nombre donné');
Ecrire ('Saisissez le nombre dont vous souhaitez connaître la racine carré');
Lire (nb);
resultat<-------- F_sqrt(nb);
Ecrire ('La racine carré de',(nb),'est',(resultat);
FIN.


Message édité par St4tiC le 01-11-2005 à 17:26:45
Reply

Marsh Posté le 01-11-2005 à 17:27:03    

Alors personne pour m'aider?

Reply

Marsh Posté le 01-11-2005 à 21:22:03    

(Les gens te parlent plus parce que t'as pas mis de test en cas d'entrée d'un nombre négatif.)
 :sarcastic:

Message cité 1 fois
Message édité par rnoizet le 01-11-2005 à 21:42:05
Reply

Marsh Posté le 01-11-2005 à 21:58:01    

rnoizet a écrit :

(Les gens te parlent plus parce que t'as pas mis de test en cas d'entrée d'un nombre négatif.)
 :sarcastic:


 
Sinon le reste est bon?
J'ai été voir sur diférents sites et je crois avoir compris.

Reply

Marsh Posté le 01-11-2005 à 21:58:01   

Reply

Marsh Posté le 01-11-2005 à 21:58:43    

perso je trouve ça débile de faire ça en C++. Il y a rien d'orienté objet la dedans, donc pour moi autant le faire en C..
 
Niveau algo, c'est pas mal. Mais teste si la valeur entrée est négative...  
 

Code :
  1. #include <math.h>
  2. #include <iostream.h>
  3. void main
  4. {
  5.    int val;
  6.    do
  7.    {
  8.       cout << "Entrer un nombre: ";
  9.       cin >> val;
  10.    } while (val <= 0);
  11.    int racineval = sqrt(val);
  12.    cout << "La racine caree de " << val << " est " << racineval;
  13. }


et c'est tout :D

Message cité 1 fois
Message édité par moi23372 le 01-11-2005 à 22:02:33
Reply

Marsh Posté le 01-11-2005 à 22:37:12    

Bah ouais mais on nous apprend à programmer en C++ car selon les profs, si tu sais programmer dans ce langage, tu sais programmer dans tous.
Par contre je ne connais pas la fonction while en C++ (même si je pense que cela veut dire pendant)?
Do non plus je connais pas?
Jusque là je n'ai vu que les si, sinon en C++.
Merci beaucoup sinon!

Message cité 1 fois
Message édité par St4tiC le 01-11-2005 à 22:44:46
Reply

Marsh Posté le 01-11-2005 à 22:44:21    

St4tiC a écrit :

Bah ouais mais on nous apprend à programmer en C++ merdique car selon les profs, si tu sais programmer dans ce langage, tu sais programmer dans tous.
 
Merci beaucoup sinon!


[:aloy]
 
le code qui t a ete fourni plus haut ne compile meme pas avec un compilateur decent :D

Reply

Marsh Posté le 01-11-2005 à 22:46:21    

Je sais pas si quelqu'un pourrait m'expliquer ce que j'ai édité dans le message du dessus? :)
 
"le code qui t a ete fourni plus haut ne compile meme pas avec un compilateur decent", pourquoi?

Message cité 1 fois
Message édité par St4tiC le 01-11-2005 à 22:46:41
Reply

Marsh Posté le 01-11-2005 à 22:53:56    

St4tiC a écrit :

Je sais pas si quelqu'un pourrait m'expliquer ce que j'ai édité dans le message du dessus? :)
 
"le code qui t a ete fourni plus haut ne compile meme pas avec un compilateur decent", pourquoi?


main renvoie un int sinon la norme dit "comportement indefini" ie ton compilateur a le droit de te formater ton disque dur si comme moi il en a marre des void main(), quant au <iostream.h> voila ce que sort gcc (meme verdict pour <math.h>

/usr/include/c++/4.0.2/backward/backward_warning.h:32:2: attention : #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.


Tes profs t enseignent (mal) un C++ obsolete.

Reply

Marsh Posté le 01-11-2005 à 23:11:27    

Surement mais malheureusement je ne peux faire autrement au risque de rater mon année :(
Je pense quand même me mettre très prochainement au dernier C++ qui va sortir dans quelques semaines je crois..
Quelqu'un pourrait quand même m'aider please?

Message cité 2 fois
Message édité par St4tiC le 01-11-2005 à 23:20:23
Reply

Marsh Posté le 02-11-2005 à 07:37:17    

St4tiC a écrit :

Surement mais malheureusement je ne peux faire autrement au risque de rater mon année :(
Je pense quand même me mettre très prochainement au dernier C++ qui va sortir dans quelques semaines je crois..
Quelqu'un pourrait quand même m'aider please?


 
Quelque chose comme ca devrait te depanner. Neanmoins il serait bien pour toi de reussir a coder des prog aussi simple sinon il ne te reste plus qu'a changer de branche.
#include <iostream>
#include <math.h>
 
int main(void) {
  double val;
  double racineVal;
 
  std::cout << "Entrer une valeur : ";
  std::cin >> val;
  if(val > 0) {
    racineVal = sqrt(val);
    std::cout << "racine de " << val << " = " << racineVal << std::endl;
  } else {
    std::cout << " nombre negatif interdit pour une racine\n";
  }
  return 0;
}

Reply

Marsh Posté le 02-11-2005 à 12:55:44    

manatane a écrit :

[:aloy]
 
le code qui t a ete fourni plus haut ne compile meme pas avec un compilateur decent :D


 
perso j'en peux rien moi si la norme à légèrement changé! moi ce que je lui ai passé c'est ce que je considère comme du c++ standards comme il y en avait qu'avant! bien sure les librairies sont depracated... logique!
 
aucun compilo digne de ce nom compile ça? oui oui, c'est pour ça que sur les serveurs unix que je travaille compile ce code sans aucun warning ni error ;-) alors voila chacun son truc...

Reply

Marsh Posté le 02-11-2005 à 19:36:14    

oui, cherches le tien, tu ne l'as pas encore trouvé apparemment.

Reply

Marsh Posté le 02-11-2005 à 20:25:32    

St4tiC a écrit :

Surement mais malheureusement je ne peux faire autrement au risque de rater mon année :(
Je pense quand même me mettre très prochainement au dernier C++ qui va sortir dans quelques semaines je crois..
Quelqu'un pourrait quand même m'aider please?


 
Attends, le gars te donne quasiment la solution...si tu cherches pas un peu par toi la solution au problème par toi-même t'es un peu mal barré... et pas que en informatique.
Et en plus, même si des gens sortent de nouvelles versions de c++ tous les mois, les bases dont tu as besoin pour faire un calcul de racine...hében elles changeront jamais.

Reply

Marsh Posté le 02-11-2005 à 21:42:45    

moi23372 a écrit :


 

Code :
  1. #include <math.h>
  2. #include <iostream.h>
  3. void main
  4. {
  5.    int val;
  6.    do
  7.    {
  8.       cout << "Entrer un nombre: ";
  9.       cin >> val;
  10.    } while (val <= 0);
  11.    int racineval = sqrt(val);
  12.    cout << "La racine caree de " << val << " est " << racineval;
  13. }




peine de mort
edit: et pas que pour le C "C++ isé", mais aussi pour le type int de racineval


Message édité par Harkonnen le 02-11-2005 à 21:45:03

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 02-11-2005 à 21:56:49    

moi23372 a écrit :

perso j'en peux rien moi si la norme à légèrement changé!


mouarf
 

moi23372 a écrit :

aucun compilo digne de ce nom compile ça? oui oui, c'est pour ça que sur les serveurs unix que je travaille compile ce code sans aucun warning ni error ;-) alors voila chacun son truc...


et ben... c'est quoi tes unix? des vieux sco xenix qui tournent sur disquette ? parce que là sous Linux gcc t envoie bouler, et je suis a peu pres sur qu icc fait de meme.

Reply

Marsh Posté le 03-11-2005 à 00:19:34    

Citation :

peine de mort  
edit: et pas que pour le C "C++ isé", mais aussi pour le type int de racineval


 
J'ai bien cru que personne allait le voir en relisant ce topic....pfiuuuu.
Une racine dans un int... :bounce: pourquoi pas  :lol:  
 
sinon pour un code qui devrait marcher tu peux voir avec ce qu'on ta donne

Code :
  1. #include <iostream>
  2. #include <math.h> ----> ca je le mets mais je sais plus si c'est ca ou non
  3. using namespace std;  ---> t'evites d'avoir a mettre les std:: devant cin et cout
  4. int main(void) {
  5. double x;  ----->Si tu veux la racine d'un decimal t'en fais quoi de ton int hein??Passons en double
  6. double racine;  ------>ben oue un int pour une racine c'est pas top hein! Tu peux mettre le float aussi mais il me semble le double caymieu.
  7. cout>>"Entrer le nombre dont vous voulez connaitre la racine carrée";
  8. cin<<x;
  9. if (val > 0){
  10. racine = Math.sqrt(x);
  11. cout<<"La racine de "<<x<<"est "<<racine<<endl;
  12. return 0;
  13. }
  14. else {
  15. cout<<"Le nombre que vous avez rentre est inferieur ou egal a 0! Veuillez recommencez!"<<endl;
  16. return 0;
  17. }


 
Sinon pour ce qui est de la boucle while elle signifie "tant que"
Son fonctionnement est simple :  

Code :
  1. While (condition){
  2. blabla a faire
  3. }


 Ton programme verifie la condition et fait le blabla(si c'est bon) puis reverifie la condition etc...tant que la condition est verifiee
 
Pour ce qui est du  

Code :
  1. do{
  2. blabla a faire
  3. }while(condition);


 
Son fonctionnement est quasi similaire a la difference près que le blabla va etre fait au moins une fois avant de verifier la condition
 
 
Voila voila, en esperant avoir pu t'aider et ne pas avoir raconte trop de conneries :-)


Message édité par gocho le 03-11-2005 à 00:29:33
Reply

Marsh Posté le 05-11-2005 à 17:35:33    

Merci beaucoup, j'ai tout compris et j'ai un exemple maintenant.
Je vais m'entrainer sur d'autres exos!
 
Sinon vous pensez que ça peut être utile d'attendre la nouvelle version de C++ et d'acheter un bouquin pour bien programmer?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed