Besoin d'aide pour créer un programme

Besoin d'aide pour créer un programme - C++ - Programmation

Marsh Posté le 20-09-2013 à 19:39:08    

Bonjour à tous !  
 
J'aurais besoin d'aide ! Je suis étudiant en informatique de gestion et je dois créer un programme simple dont voici les consignes : "Réalisez un programme qui calcule le prix total à payer pour une réservation.  On suppose que le prix par adulte est de 15 euros TTC et celui des enfants, de 5 euros TTC ."
 
Est-ce que quelqu'un qui s'y connaît peut m'aider ? Je ne vous demande pas de me faire le programme et que je fasse bêtement un copier/coller sans rien comprendre, ce n'est absolument pas mon but !  
 
Merci d'avance à tous.

Reply

Marsh Posté le 20-09-2013 à 19:39:08   

Reply

Marsh Posté le 20-09-2013 à 19:49:08    

ben, tu as commencé ? montre nous ce que tu as fait ...


---------------
last.fm
Reply

Marsh Posté le 20-09-2013 à 20:12:14    

Oui et non. Je n'ai eu que un cours de programmation et le prof nous demande déjà de réaliser çà... Je ne sais pas comment faire.
Voilà ce que j'ai "déjà" écrit : (Je sais même pas si c'est juste)
 
#include <stdio.h>
#include <math.h>
float calcul_prix (float adultes, float enfants);
int main()
{  
float adultes, enfants, prix;
 
printf("Calcul du prix d'une reservation\n\nNombre d'adultes : " );
scanf("%f%*c", &adultes);
printf("Nombre d'enfants: " );
scanf("%f%*c", &enfants);
prix = calcul_prix(adultes, enfants);
printf("%.2f", prix);

Reply

Marsh Posté le 20-09-2013 à 20:32:52    

Bonjour !
 
Tout d'abord, une question, dont dépendra la suite : Devez-vous faire ce programme en C ou en C++ ? Car vous postez dans la rubrique C++ et écrivez en C.
 
Sinon, pourquoi utiliser des flottants pour les nombres d'enfants et d'adultes ? :)
 
Bonne continuation !

Reply

Marsh Posté le 20-09-2013 à 20:37:04    

C'est bien en C++ ! Je ne sais même pas quelles sont les différences entre le C et le C++. :p Je suppose que je devrais plutôt écrire en int c'est çà ? Si je me souviens bien, on utilise plus les float pour les chiffres à virgules c'est bien çà ?

Reply

Marsh Posté le 20-09-2013 à 20:53:42    

Dans l'ordre :  
 
 * Parmi les différences, l'utilisation des streams (en l'occurence, std::cout et std::cin)
 * Oui, à moins qu'on ne puisse saisir 1,23 adultes et 4,5 enfants :)
 * Tout à fait
 
Je vous laisse le soin de réécrire la partie de saisie/affichage du code précédent en vous basant sur les exemples trouvables un peu partout.
 
Bonne continuation !

Reply

Marsh Posté le 20-09-2013 à 20:55:47    

#include <stdio.h>
#include <math.h>
int calcul_prix (int adultes, int enfants);
int main()
{  
int adultes, enfants, prix;
 
printf("Calcul du prix d'une reservation\n\nNombre d'adultes : " );
scanf("%f%*c", &adultes);
printf("Nombre d'enfants: " );
scanf("%f%*c", &enfants);
prix = calcul_prix(adultes, enfants);
printf("%.2f", prix)
 
Ca donne être bon comme çà, mais mnt je suis bloqué. :(

Reply

Marsh Posté le 20-09-2013 à 21:24:21    

Bon ...
 
Étant de bonne humeur ce soir, je vais me contenter de m'auto-paraphraser :  
 
 * Si vous dites faire du C++, pourquoi écrivez-vous du C ?
 * ... (en l'occurence, std::cout et std::cin)
 
Maintenant, vous êtes libre de ne pas suivre mes remarques, c'est votre droit le plus absolu, je me contenterai de me désintéresser de ce sujet :)
 
Bonne continuation.

Reply

Marsh Posté le 20-09-2013 à 21:28:30    

Qui plus est, la fonction calcul_prix a son prototype défini mais pas le corps, faut que tu l'écrive aussi :spamafote:
 
Et en C++ faut faire #include<cstdio> ou  #include<cmath>, etc mais tu n'es pas censé te servir de ces libs là.
 
Pour l'entrée/sortie console, il te faudra utiliser std::cin / std::cout comme déjà dit, qui sont disponible via #include<iostream>.


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 21-09-2013 à 11:45:46    

Merci bcp pour votre aide, mais j'avoue de pas vraiment comprendre ce que vous me dites... Comme je vous le disais, je n'ai que un cours de programmation... :'(

Reply

Marsh Posté le 21-09-2013 à 11:45:46   

Reply

Marsh Posté le 21-09-2013 à 12:17:54    

La commande "#include" te permet d'utiliser une librairie (c'est une vulgarisation pour que ce soit plus simple à comprendre, t'as pas intérêt à sortir ça si t'es interrogé sur la pre-processive include :D), par exemple :

 

#include <cmath> te permettra d'utiliser les fonctions dans cmath (cos, sin, tan, pow, etc,etc) dans ton fichier.
#include <cstdio> te permettra d'utiliser les commandes d'entrée/sortie C standard (printf, scanf, etc).

 

En C++, pour l'entrée / sortie on se sert de std::cin et std::cout, qui sont disponible via #include <iostream>.

 

Un petit exemple d'utiliser de std::cout, qui va te permettre d'afficher des trucs sur ta console :

Code :
  1. #include <iostream>
  2. int main()
  3. {
  4.   // On affiche hello world, suivi d'un retour à la ligne.
  5.   // std::endl peut très bien être remplacé par le caractère spécial "\n", mais la gestion du retour à la ligne dépend de l'OS (\n pour Unix, \r\n pour Windows, \r pour Mac si je me se souviens bien)
  6.   std::cout<<"hello world"<<std::endl;
  7.   // La concaténation (mettre des textes bout-à-bout) se fait en accumulant des "<<" :
  8.   std::cout<<"Hello "<<"World"; // Affichera "Hello World" sans retour à la ligne.
  9.   int i = 20;
  10.   float f = 3.256f;
  11.   // Voilà un petit exemple pour afficher des valeurs de variables (exemple avec un int et un float), il te fera la conversion en texte tout seul (tant que c'est un type natif)
  12.   std::cout<<"La variable i vaut "<<i<<", la variable f vaut "<<f<<std::endl;
  13. }
 

Et un petit exemple avec std::cin qui te permet de saisir une valeur :

 
Code :
  1. #include <iostream>
  2. int main()
  3. {
  4.   int  i = 0,
  5. // L'ordre des "<<" et ">>" est important
  6. // Imagine que cin/cout représente ta console, << tu mets dans ta console (affichage), et >> tu récupère de ta console (saisie)
  7. std::cout<<"Saisissez i :"<<std::endl;
  8. std::cin>>i;
  9. std::cout<<"Vous avez saisi "<<i<<std::endl;
  10. }
 

Voilà pour le std::cin / std::cout, maintenant l'appel de fonction (un exemple avec une fonction qui renvoit le carré d'une valeur)

 
Code :
  1. #include <iostream>
  2. // La fonction Carre prend un entier en paramètre et renvoi un entier
  3. int Carre(int x)
  4. {
  5.   return x*x;
  6. }
  7. int main()
  8. {
  9.   int  i = 0;
  10. // L'ordre des "<<" et ">>" est important
  11. // Imagine que cin/cout représente ta console, << tu mets dans ta console (affichage), et >> tu récupère de ta console (saisie)
  12. std::cout<<"Saisissez i :"<<std::endl;
  13. std::cin>>i;
  14. int ii = Carre(i);
  15. std::cout<<"Le carre vaut "<<ii<<std::endl;
  16. }
 


Je t'invite grandement à sur-abuser de ton ami Google, tu trouvera des milliards d'informations / docs sur des libs ou fonctions qui répondront à quasiment toutes tes questions ;)


Message édité par Terminapor le 21-09-2013 à 12:19:35

---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 21-09-2013 à 17:00:04    

J'AI REUSSI ! J'ai juste un petit soucis... Lorsque je rentre le nombre d'enfants, il calcule et la fenêtre se ferme directe... Comment la retenir ouverte ?

Reply

Marsh Posté le 21-09-2013 à 18:45:51    

heu, si t'utilises Code::Blocks, tu as une option pour mettre en pause le programme à la fin, sinon tu peux aussi rajouter un std::cin bidon avant le return 0 du main (manière un peu dégueu :D), ou alors t'as peut-être une fonction pause dispo.


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 21-09-2013 à 19:50:54    

Farian a écrit :

Bonjour !
 
Tout d'abord, une question, dont dépendra la suite : Devez-vous faire ce programme en C ou en C++ ? Car vous postez dans la rubrique C++ et écrivez en C.
 
Sinon, pourquoi utiliser des flottants pour les nombres d'enfants et d'adultes ? :)
 
Bonne continuation !


 
 
Parce qu'il s'est trompé, c'est le prix pour les enfants et le prix pour les adultes.
Il suffis de faire la sommes des deux.

Reply

Marsh Posté le 22-09-2013 à 12:07:33    

J'ai utilisé des int partout pour finir.  
Encore une question, que signifie le %u ? Alors que dans un autre programme réalisé, je mettais des %f ?
C'est p-e parce que %u = pour int et les %f = float ?

Reply

Marsh Posté le 22-09-2013 à 12:24:09    

Reply

Marsh Posté le 22-09-2013 à 13:04:07    

%u = unsigned int, mais t'es pas censé te servir des printf/scanf puisque t'es supposé l'écrire en C++.


---------------
Perhaps you don't deserve to breathe
Reply

Sujets relatifs:

Leave a Replay

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