Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1082 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8  9  10
Auteur Sujet :

recrutement debutants et confirmés pour mini defis en c

n°840506
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 22:54:54  profilanswer
 

Reprise du message précédent :

Citation :

Calculer le nombre de paquets d'ardoises à acheter pour couvrir un toit.  
Les dimensions du toit et celles d'une ardoise seront saisies par l'utilisateur.  
 
Calculer le coût de la pose sachant que l'utilisateur donne:  
• le prix HTVA d'un paquet d'ardoise,  
• le taux de TVA sur les fournitures,  
• le nombre d'ardoises posées à l'heure,  
• le tarif de la main d'œuvre à l'heure,  
• le taux de TVA pour la main d'œuvre.  


 
Indications :

Spoiler :

Programme simple pour manipuler la syntaxe de base et les opérateurs arithmétiques.
 
un #include <stdio.h> indispensable
fonctions utiles : scanf, printf
type float pour les variables numériques.


Message édité par pains-aux-raisins le 02-09-2004 à 22:55:55
mood
Publicité
Posté le 02-09-2004 à 22:54:54  profilanswer
 

n°840510
vanilla
datoune's revival
Posté le 02-09-2004 à 22:57:20  profilanswer
 

Le mieux serait de le faire avec passage en argument des données non ? [:joce]


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840512
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 22:58:01  profilanswer
 

Voici un défi qui peut être traité par tous sans grosses connaissances en C.
La difficulté n'est pas de réaliser quelque chose qui tourne mais de trouver le meilleur résultat.
 
BagOptimizer (c)
 
Tous niveaux
 
Notions C abordées :
- tableau à deux dimensions
- allocation dynamique d'un tableau (malloc)
 
On se propose de préparer un sac à dos en vue de partir en randonnée.
Notre sac à dos a un certain volume (nombre réel).
Nous avons un certains nombre d'objet à emporter et donc à ranger dans le sac à dos. (entier positif)
Chaque objet à un certain volume et une certaine utilité. (nombre réel)
On veut rendre le contenu de notre sac à dos le plus utile possible.
Or il n'est pas possible de tout emporter car le volume du sac à dos est plus petit que la somme des volumes des objets.Chaque objet ne peut pas être découpé. On le prend ou on ne le prend pas. On ne peut pas en prendre un morceau.
 
Par la méthode de votre choix, il faut fournir la liste des objets à emporter qui maximisent l'utilité du contenu du sac à dos, sans dépasser le volume imparti.
A partir d'un (gros) jeu d'essai fourni ultérieurement, le gagnant sera celui qui donnera l'utilité la plus élevé.
Les ex-aequo seront départagés sur la vitesse d'exécution.
Un classement par catégorie (débutant/confirmé) peut être envisagé.
 
Postez vos codes ! (sur le forum ou en MP)
 
Indications à titre indicatif !
Etapes à réaliser dans un ordre de votre choix :
1/ Saisir le volume du sac à dos (float)
2/ Saisir le nombre d'objets à mettre dans le sac à dos (int)
3/ Saisir le volume de chaque objet (float)
4/ Saisir l'utilité de chaque objet (float)
5/ Afficher les objets à emporter et l'utilité totale
 
La liste des objets disponibles pourra être un tableau à deux dimensions.
 

Code :
  1. typedef float Objet[2]; /* le volume et l'utilité */
  2. objet* listeobj;



Message édité par pains-aux-raisins le 02-09-2004 à 23:12:08
n°840513
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 22:59:07  profilanswer
 

vanilla a écrit :

Le mieux serait de le faire avec passage en argument des données non ? [:joce]


de quoi tu parle ?

n°840514
vanilla
datoune's revival
Posté le 02-09-2004 à 23:03:42  profilanswer
 

pains-aux-raisins a écrit :

de quoi tu parle ?


 
genre faire un
$ ./prog nb_d_ardoises


Message édité par vanilla le 02-09-2004 à 23:04:10

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840516
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 23:04:20  profilanswer
 

vivi bonne idée.

n°840519
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 23:17:56  profilanswer
 

vanilla a écrit :

genre faire un
$ ./prog nb_d_ardoises


euh non en fait, nb_d_ardoises ne peut pas être passé en argument puisqu'il s'agit précisément de ce que tu dois calculer. ;)

n°840521
vanilla
datoune's revival
Posté le 02-09-2004 à 23:20:01  profilanswer
 

Vi, par contre les dimensions du toit ça passe


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840522
Joel F
Real men use unique_ptr
Posté le 02-09-2004 à 23:20:59  profilanswer
 

pains-aux-raisins a écrit :


La liste des objets disponibles pourra être un tableau à deux dimensions.


 
Utilise des structures bourdel :o
 
struct objet
{
   float volume;
   float utilité;
};
 
En outre pour un sac à dos de volume non entier, le probleme est NP-Complet :|


Message édité par Joel F le 02-09-2004 à 23:22:29
n°840525
vanilla
datoune's revival
Posté le 02-09-2004 à 23:23:37  profilanswer
 

pains-aux-raisins a écrit :

euh non en fait, nb_d_ardoises ne peut pas être passé en argument puisqu'il s'agit précisément de ce que tu dois calculer. ;)


Euh ouais mais en fait puisque tu dois aussi définir la taille de l'ardoise, ça passe aussi non ?


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
mood
Publicité
Posté le 02-09-2004 à 23:23:37  profilanswer
 

n°840526
printf
Baston !
Posté le 02-09-2004 à 23:24:20  profilanswer
 

Des double, pas des float bordel :o

n°840530
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 23:27:19  profilanswer
 

Joel F a écrit :

Utilise des structures bourdel :o
 
struct objet
{
   float volume;
   float utilité;
};
 
En outre pour un sac à dos de volume non entier, le probleme est NP-Complet :|


Pour les structures c'est toi qui voit.
 
Si j'ai choisi en non entier c'est justement pour ça [:aloy]
D'ailleurs c'est ça qui fait qu'il peut il y avoir du sport :sol:

n°840533
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 23:29:13  profilanswer
 

printf a écrit :

Des double, pas des float bordel :o


C'est même indispensable ;)

n°840538
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 23:31:51  profilanswer
 

vanilla a écrit :

Euh ouais mais en fait puisque tu dois aussi définir la taille de l'ardoise, ça passe aussi non ?


Comme tu veux. Cependant, dans l'esprit du texte de Didier, c'est plutôt quand même saisir les valeurs après invite. Mais bon tant que ça marche :)

n°840546
Joel F
Real men use unique_ptr
Posté le 02-09-2004 à 23:37:29  profilanswer
 

pains-aux-raisins a écrit :

Pour les structures c'est toi qui voit.
 
Si j'ai choisi en non entier c'est justement pour ça [:aloy]
D'ailleurs c'est ça qui fait qu'il peut il y avoir du sport :sol:


 
Tu sais ce que ca veut dire NP-Complet ???

n°840557
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 23:43:53  profilanswer
 

Joel F a écrit :

Tu sais ce que ca veut dire NP-Complet ???


Je sais ce que ca veut dire !!! Relis mon post et ensuite on discute.

n°840572
vanilla
datoune's revival
Posté le 02-09-2004 à 23:52:51  profilanswer
 

Voila mon programme sur le truc du toit et des ardoises :o
 
Special thanks to pains aux raisins (pour la fin, disons que j'ai repompé sa ligne de code pour le cout_total car je partais en couille) et printf pour sa correction sur la fonction éponyme et sur le type des variables :o
 


$ ./toit 10 10
Entrez les dimensions de l'ardoise
0.5
0.5
Votre ardoise mesure 0.500000 sur 0.500000
Votre toit mesure 10.000000 sur 10.000000
Il vous faut 400.000000 ardoises pour couvrir votre toit
 
 Calcul du coût de la pose
 
Prix hors TVA d'un paquet ardoise ? :o
6
Taux de TVA sur les fournitures ?
5.5
Nb d'ardoise posée à l'heure ?
20
Tarif de la main d'oeuvre à l'heure ?
10
Taux de la TVA sur la main d'oeuvre ?
19.6
 
Il faudra payer 245.530000€ pour pouvoir dormir sous un toit !


 
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. /* toit.c
  4. *
  5. * Calcule le nombre de paquets d'ardoises à acheter pour couvrir un toit.   
  6. * Les dimensions du toit sont saisies par l'utilisateur à l'invite.
  7. * Celle de l'ardoise sont demandées une fois le programme lancé.
  8. *
  9. * Calcul du coût de la pose sachant que l'utilisateur donne :   
  10. * le prix HTVA d'un paquet d'ardoise,   
  11. * le taux de TVA sur les fournitures,   
  12. * le nombre d'ardoises posées à l'heure,   
  13. * le tarif de la main d'œuvre à l'heure,   
  14. * le taux de TVA pour la main d'œuvre.
  15. *
  16. */
  17. int main(int argc, char *argv[]) {
  18. double ardoise_h, ardoise_l, ardoise_t;
  19. double toit_h, toit_l, toit_t, total;
  20. if (argc < 3) {
  21.  puts("./toit [dimension du toit]\nex: Pour un toit de 2m sur 10\n./toit 2 10" );
  22.  return -1;
  23. }
  24. puts("Entrez les dimensions de l'ardoise" );
  25. scanf("%lf %lf", &ardoise_l, &ardoise_h);
  26. printf("Votre ardoise mesure %lf sur %lf\n", ardoise_l, ardoise_h);
  27. toit_h = atof(argv[1]);
  28. toit_l = atof(argv[2]);
  29. printf("Votre toit mesure %lf sur %lf\n", toit_h, toit_l);
  30. toit_t = (toit_h) * (toit_l);
  31. ardoise_t = (ardoise_h) * (ardoise_l);
  32. total = (toit_t) / (ardoise_t);
  33. printf("Il vous faut %lf ardoises pour couvrir votre toit\n", total);
  34. puts("\n Calcul du coût de la pose\n" );
  35. double prix_ardoise, tva_fourniture, nb_heure, prix_heure, tva_maindoeuvre, cout_total;
  36. puts("Prix hors TVA d'un paquet ardoise ? :o" );
  37. scanf("%lf", &prix_ardoise);
  38. puts("Taux de TVA sur les fournitures ?" );
  39. scanf("%lf", &tva_fourniture);
  40. puts("Nb d'ardoise posée à l'heure ?" );
  41. scanf("%lf", &nb_heure);
  42. puts("Tarif de la main d'oeuvre à l'heure ?" );
  43. scanf("%lf", &prix_heure);
  44. puts("Taux de la TVA sur la main d'oeuvre ?" );
  45. scanf("%lf", &tva_maindoeuvre);
  46. cout_total = prix_ardoise*(1+tva_fourniture/100)+nb_heure*prix_heure*(1+tva_maindoeuvre/100);
  47. printf("\nIl faudra payer %lf€ pour pouvoir dormir sous un toit !\n", cout_total);
  48. return 0;
  49. }


 
 
En tout cas, ce topic manquait, je vais enfin pouvoir écrire du code régulièrement histoire de m'entrainer (oui bon au début je vais vous pondre des merdes comme au dessus :D).


Message édité par vanilla le 03-09-2004 à 01:29:29

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840575
printf
Baston !
Posté le 02-09-2004 à 23:55:42  profilanswer
 

scanf veut des adresses, pas printf (pas moi, la fonction :o).

n°840578
Joel F
Real men use unique_ptr
Posté le 02-09-2004 à 23:56:16  profilanswer
 

>.< je deflag

n°840585
vanilla
datoune's revival
Posté le 02-09-2004 à 23:58:17  profilanswer
 

Joel F a écrit :

>.< je deflag


 [:rofl]  
 
A ce point là ?  :sweat:  
 
printf : bien vu mais ça marche tjs pas :o
edit j'ai rien dit :o


Message édité par vanilla le 02-09-2004 à 23:59:25

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840601
pains-aux-​raisins
Fatal error
Posté le 03-09-2004 à 00:06:21  profilanswer
 

Joel F a écrit :

>.< je deflag


Monsieur croit que parce qu'un problème est NP-complet, alors on ne peut pas donner de solutions réalisables. :o

n°840604
pains-aux-​raisins
Fatal error
Posté le 03-09-2004 à 00:08:57  profilanswer
 

vanilla a écrit :

[:rofl]  
 
A ce point là ?  :sweat:  
 
printf : bien vu mais ça marche tjs pas :o
edit j'ai rien dit :o


En fin de compte le passage en argument était une bonne chose pour voir en un seul exo, deux façons de rentrer des données :)

n°840610
vanilla
datoune's revival
Posté le 03-09-2004 à 00:11:58  profilanswer
 

pains-aux-raisins a écrit :

En fin de compte le passage en argument était une bonne chose pour voir en un seul exo, deux façons de rentrer des données :)


Vi mais par contre, concernant mes types de variables, j'ai fait nawak et en fait je sais pas trop quoi mettre (float ou int).
 
Faudrait plutot que je passe tout en float, non ? :gratgrat:


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840612
printf
Baston !
Posté le 03-09-2004 à 00:13:28  profilanswer
 

En double :o
 
Le float est aux flottant ce que le short est aux entiers.

n°840615
pains-aux-​raisins
Fatal error
Posté le 03-09-2004 à 00:16:22  profilanswer
 

oui, c'est vrai. c'est plus secure :jap:

n°840621
vanilla
datoune's revival
Posté le 03-09-2004 à 00:22:36  profilanswer
 

Voila j'ai update :o
 
Je vais m'attaquer à la suite :
 
Calculer le coût de la pose sachant que l'utilisateur donne:  
• le prix HTVA d'un paquet d'ardoise,  
• le taux de TVA sur les fournitures,  
• le nombre d'ardoises posées à l'heure,  
• le tarif de la main d'œuvre à l'heure,  
• le taux de TVA pour la main d'œuvre.  
 
 
ça à l'air plus chaud quand même :o


Message édité par vanilla le 03-09-2004 à 00:23:38

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840629
printf
Baston !
Posté le 03-09-2004 à 00:28:13  profilanswer
 

Par pitié utilise
 
toto()
{
}
 
plutôt que
 
toto() {
 
}
 
:sweat:

n°840634
vanilla
datoune's revival
Posté le 03-09-2004 à 00:30:07  profilanswer
 

Comment faire pour demander 5 valeurs de suite ? Un truc qui fasse :
prix htva ? 5 [entrée]
taux tva ? 0.9 [entrée]
etc
 
En évitant de faire un printf, scanf, printf, scanf et en évitant le "entrez respectivement la htva, la tva puis
5
0.9
..."
 
Me suis-je fais comprendre ?


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840636
pains-aux-​raisins
Fatal error
Posté le 03-09-2004 à 00:30:46  profilanswer
 

euh perso je code
toto() {
}
 
mais je sais que je suis du côté obscure :whistle:

n°840638
vanilla
datoune's revival
Posté le 03-09-2004 à 00:31:06  profilanswer
 

printf a écrit :

Par pitié utilise
 
toto()
{
}
 
plutôt que
 
toto() {
 
}
 
:sweat:


 
C'est ma façon d'écrire  [:spamafote] :/


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840640
printf
Baston !
Posté le 03-09-2004 à 00:31:59  profilanswer
 

Oui, mais tu n'as pas le choix :D
 
printf, scanf, printf, scanf, etc.

n°840641
printf
Baston !
Posté le 03-09-2004 à 00:32:29  profilanswer
 

vanilla a écrit :

C'est ma façon d'écrire  [:spamafote] :/


 
Dans ce cas conserve ce style.
 
Mais perso j'aime pas du tout :o

n°840642
pains-aux-​raisins
Fatal error
Posté le 03-09-2004 à 00:33:45  profilanswer
 

vanilla a écrit :

Comment faire pour demander 5 valeurs de suite ? Un truc qui fasse :
prix htva ? 5 [entrée]
taux tva ? 0.9 [entrée]
etc
 
En évitant de faire un printf, scanf, printf, scanf et en évitant le "entrez respectivement la htva, la tva puis
5
0.9
..."
 
Me suis-je fais comprendre ?


les limitations du mode console :D

n°840648
vanilla
datoune's revival
Posté le 03-09-2004 à 00:53:20  profilanswer
 

pains-aux-raisins a écrit :

les limitations du mode console :D


:D
 
Je m'enbrouille trop avec la htva, la tva et tout je sais meme pas à quoi ça correspond dans le monde réel  [:croquignol]


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840649
printf
Baston !
Posté le 03-09-2004 à 00:54:37  profilanswer
 

De toutes façons, dans le monde réel les couvreurs n'utilisent pas ce genre de programmes [:ddr555]

n°840653
pains-aux-​raisins
Fatal error
Posté le 03-09-2004 à 01:03:07  profilanswer
 

printf a écrit :

De toutes façons, dans le monde réel les couvreurs n'utilisent pas ce genre de programmes [:ddr555]


+1
 
total = prix_ardoise*(1+tva_fourniture/100)+nb_heure*prix_heure*(1+tva_maindoeuvre/100)
 
tva : 5.5, 19.6
 

n°840655
vanilla
datoune's revival
Posté le 03-09-2004 à 01:12:48  profilanswer
 

Ouais bon j'abandonne, c'est trop chaud, ya trop de variables :o
 
 

Code :
  1. double paquet, paquet_total, htva, tva, ardoises_heure, ardoises_posees, tva_main_oeuvre;
  2. double prix_paquet_ardoise_with_tva, nb_ardoises_posee_a_l_heure;
  3. puts("Combien d'ardoises dans un paquet ? :o" );
  4. scanf("%lf", &paquet);
  5. puts("Prix hors TVA d'un paquet ardoise ? :o" );
  6. scanf("%lf", &htva);
  7. puts("Taux de TVA sur un paquet d'ardoises (en pourcentage) ?" );
  8. scanf("%lf", &tva);
  9. puts("Nb d'ardoise posée à l'heure ?" );
  10. scanf("%lf", &ardoises_posees);
  11. puts("Tarif de la main d'oeuvre à l'heure ?" );
  12. scanf("%lf", &ardoises_heure);
  13. puts("Taux de la TVA su la main d'oeuvre ?" );
  14. scanf("%l", &tva_main_oeuvre);
  15. paquet_total = (total) / (paquet);
  16. prix_paquet_ardoise_with_tva = htva * ((tva)/100);
  17. nb_ardoises_posee_a_l_heure = total / ardoises_posees;
  18. cout =
  19. printf("Un paquet d'ardoises contient %lf ardoises. Il faut acheter %lf ardoises ce qui nous donne %lf paquets à acheter. Le prix hors tva d'un paquet d'ardoises est de %lf. La TVA est de %lf ce qui nous fait %lf€ le paquet d'ardoises avec la TVA\n", paquet, total, paquet_total, htva, tva, prix_paquet_ardoise_with_tva);
  20. printf("Le tarif de la main d'oeuvre est de %lf. Il faut %lf heures pour poser toutes les ardoises. Sachant que le tarif de la main d'oeuvre est de %lf et la TVA sur l'a main d'oeuvre de %lf, il faut   ", ardoises_heure, nb_ardoises_posee_a_l_heure, ardoises_heure, tva_main_oeuvre);


 
[:joce]
 
Comment ça saoule  :o  
 
Faudrait que je fasse comme pains aux raisins, une seule ligne pour tout calculer parce que là  :lol:
 
 
Ayé, j'ai update mon post. J'ai pompé la ligne que pains aux raisins à poster parce que sinon j'allais je ne sais où  :sweat:


Message édité par vanilla le 03-09-2004 à 01:23:39

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°840719
didier1809
${citation_perso}
Posté le 03-09-2004 à 08:00:00  profilanswer
 

ha oui, ce prog la, il est chiant, mais bon, il est super facile aussi  :o


---------------
.
n°855656
vanilla
datoune's revival
Posté le 22-09-2004 à 14:37:52  profilanswer
 

Il est mort ce topic ? :o


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°857441
didier1809
${citation_perso}
Posté le 24-09-2004 à 23:05:06  profilanswer
 

vanilla a écrit :

Il est mort ce topic ? :o


 
je croit ouais  [:delarue2]


---------------
.
n°857475
vanilla
datoune's revival
Posté le 24-09-2004 à 23:47:42  profilanswer
 

Dommage  [:delarue3]


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8  9  10

Aller à :
Ajouter une réponse
 

Sujets relatifs
questions pour débutantsdébutants
[Recrutement] d'un programmeur pour le Mod D-Day On Omaha Call of DutyMini moteur de recherche sous access
Recrutement de quelqu'un qui est bon en PHPMini disc sony
mini messages sous guppyrecherche d'une fonction ou d'un mini prog sur excel!
Livre PHP pour les débutants ?un mini-prog qui ouvre 2 applis
Plus de sujets relatifs à : recrutement debutants et confirmés pour mini defis en c


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR