 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
pascal baufre Guest
|
Posted: Sun Apr 11, 2004 10:41 am Post subject: pourquoi ça ne se compile pas ?? |
|
|
Salut tout le monde,
J'ai un programme de rien du tout mais il me met une erreur de compliation.
Le programme qu j'ai recopier est issu du livre:
Le langage C++
aux édition CampusPress
Merci a tous
Pascal
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
void AfficheTTC(float HT,float TauxTVA=0.206)
{
float TTC =HT *(1+TauxTVA );
cout<<"TTC :" <
}
main()
{
AfficheTCC(1000.20);
AfficheTTC(1000.20, 0.055);
}
|
|
| Back to top |
|
 |
Fabien LE LEZ Guest
|
Posted: Sun Apr 11, 2004 11:10 am Post subject: Re: pourquoi ça ne se compile pas ?? |
|
|
On Sun, 11 Apr 2004 12:41:38 +0200, "pascal baufre"
<pascal.baufre (AT) free (DOT) fr> wrote:
Inutile
Problème assez compliqué -- on en a parlé et reparlé ici, mais je ne
suis toujours pas trop sûr du fonctionnement de ce header suivant les
compilos.
Quoi qu'il en soit, si tu as un compilo récent, mieux vaut écrire :
#include
Inutile
| Quote: | void AfficheTTC(float HT,float TauxTVA=0.206)
|
Un peu vieux, ton taux de TVA...
| Quote: | {
float TTC =HT *(1+TauxTVA );
cout<<"TTC :" <
|
std::cout
int main()
| Quote: | {
AfficheTCC(1000.20);
|
Erreur de frappe ici
| Quote: | AfficheTTC(1000.20, 0.055);
}
|
Si l'auteur du livre a vraiment écrit "main" sans le "int" devant,
change de livre.
J'ai la nette impression que la majorité des auteurs de "livres sur le
C++" sont des gens qui connaissent bien le C, et qui commencent à
tenter une vague reconversion vers le C++, avec plus ou moins de
succès (plutôt moins que plus).
--
FLL, Epagneul Breton
|
|
| Back to top |
|
 |
Loïc Joly Guest
|
Posted: Sun Apr 11, 2004 11:25 am Post subject: Re: pourquoi ça ne se compile pas ?? |
|
|
pascal baufre wrote:
| Quote: | Salut tout le monde,
J'ai un programme de rien du tout mais il me met une erreur de compliation.
Le programme qu j'ai recopier est issu du livre:
Le langage C++
aux édition CampusPress
|
Oh, la belle cale pour armoire bancale....
| Quote: | #include <stdio.h
#include
#include
|
Les headers standard C++ sont
des raisons historiques, les headers que tu utilise sont encore
disponible dans tous les compilateurs, mais si tu apprend le langage,
autant utiliser du C++ actuel et non par du C++ des grand-pères.
| Quote: | void AfficheTTC(float HT,float TauxTVA=0.206)
|
Pourquoi float et pas double ? A moins de vraiment s'y connaître là dans
l'arithmétique de flottants, je conseillerai d'utiliser des doubles. Ca
ne garanti par de ne pas avoir de mauvaises surprises, mais au moins, on
en a moins souvent.
Et puis surtout, float et double sont tous deux inadaptés pour faire du
calcul financier, puisque les règles d'arrondi ne sont pas celles
spécifiées dans les diverses lois.
De plus, question de style, j'exprimmerai plutôt le taux TVA sous la
forme 20.6
| Quote: | {
float TTC =HT *(1+TauxTVA );
cout<<"TTC :" <
}
main()
|
main doit retourner un int.
| Quote: | {
AfficheTCC(1000.20);
AfficheTTC(1000.20, 0.055);
}
|
--
Loïc
|
|
| Back to top |
|
 |
Alain Naigeon Guest
|
Posted: Sun Apr 11, 2004 7:18 pm Post subject: Re: pourquoi ça ne se compile pas ?? |
|
|
"Loïc Joly" <loic.actarus.joly (AT) wanadoo (DOT) fr> a écrit dans le message news:
c5b9mv$pgr$1 (AT) news-reader4 (DOT) wanadoo.fr...
| Quote: | De plus, question de style, j'exprimmerai plutôt le taux TVA sous la
forme 20.6
|
Qui plus est, question de fond, j'irais jusqu'à préférer 19.6 ;-)
--
Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - [email]anaigeon (AT) free (DOT) fr[/email] - Strasbourg, France
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Tue Apr 13, 2004 12:13 pm Post subject: Re: pourquoi ça ne se compile pas ? ? |
|
|
Loïc Joly <loic.actarus.joly (AT) wanadoo (DOT) fr> wrote
| Quote: | pascal baufre wrote:
J'ai un programme de rien du tout mais il me met une erreur de
compliation. Le programme qu j'ai recopier est issu du livre:
Le langage C++
aux édition CampusPress
Oh, la belle cale pour armoire bancale....
#include <stdio.h
#include
#include
Les headers standard C++ sont
des raisons historiques, les headers que tu utilise sont encore
disponible dans tous les compilateurs, mais si tu apprend le langage,
autant utiliser du C++ actuel et non par du C++ des grand-pères.
|
D'abord, <stdio.h> et <stdlib.h> font bien partie de la nouvelle norme
aussi. Quant à <iostream.h>, si c'est vrai que la plupart des
compilateurs fournissent un en-tête de ce nom, ce n'est sûrement pas
pour des raisons historiques, au moins dans le cas de g++, parce que le
contenu de cet en-tête chez eux n'a pas grand chose à voir avec son
contenu historique. (Mais c'est une manie chez g++ -- les anciennes
versions du compilateur fournissait un <iostream> qui n'avait rien à
voir avec le <iostream> standard non-plus.)
| Quote: | void AfficheTTC(float HT,float TauxTVA=0.206)
Pourquoi float et pas double ?
|
Pourquoi pas ? D'après les noms, il s'agit de la comptabilité. Donc,
float ou double, il ne peut s'agir que des calculs approximatifs, qui ne
peuvent pas servir légalement à la comptabilité ou à la facturation.
| Quote: | A moins de vraiment s'y connaître là dans l'arithmétique de flottants,
je conseillerai d'utiliser des doubles.
|
À moins de vraiment s'y connaître dans l'arithmétique de flottants, je
conseillerais de les éviter complètement.
| Quote: | Ca ne garanti par de ne pas avoir de mauvaises surprises, mais au
moins, on en a moins souvent.
|
Ça dépend ce qu'on en fait. Moi, je n'utilise les flottants que pour
caluler des percentages, pour des affichages grosso modo. J'utilise les
double, parce que c'est le type par défaut de C++, mais les résultats
seraient tout aussi bons avec des float. En revanche, si tu cherches à
calculer des prix avec TVA pour la facturation, tu vas avoir des
surprises avec des double aussi. Peut-être moins souvent, c'est vrai --
peut-être ça ne serait qu'une facture en mille qui est faux, à la place
d'une en cinq cents. Mais en matière de facturation, tu n'as normalement
pas droit à l'erreur -- ni une fois en cinq cent, ni une fois en mille.
Mais c'est vrai que même sur des choses assez quotidiennes, comme des
voitures, l'erreur avec float serait flagrante. Tandis qu'avec double,
elle risque de passer inaperçue jusqu'au contrôl fiscal.
| Quote: | Et puis surtout, float et double sont tous deux inadaptés pour faire
du calcul financier, puisque les règles d'arrondi ne sont pas celles
spécifiées dans les diverses lois.
|
Exactement.
| Quote: | De plus, question de style, j'exprimmerai plutôt le taux TVA sous la
forme 20.6
|
Question de substance, je préfèrerais la forme 19.6 . (En revanche,
dans un bouquin qui utilise 20.6, ce n'est pas étonnant de voir
<iostream.h> . Voire même l'int implicit.)
Question de style, je n'accepterais pas un programme où la valeur
apparaissait comme une constante, plutôt que d'être lue d'un fichier de
configuration.
Mais j'imagine que c'est plutôt un exercise de style que de la
programmation concrète. Et que si on peut bien poser certaines questions
(pourquoi float, quand double est plus idiomatique en C++ ?), certains
problèmes sont bien à mettre sur l'âge du livre.
--
James Kanze GABI Software mailto:kanze (AT) gabi-soft (DOT) fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Tue Apr 13, 2004 12:49 pm Post subject: Re: pourquoi ça ne se compile pas ?? |
|
|
Fabien LE LEZ <gramster (AT) gramster (DOT) com> wrote
| Quote: | On Sun, 11 Apr 2004 12:41:38 +0200, "pascal baufre"
[email]pascal.baufre (AT) free (DOT) fr[/email]> wrote:
#include <stdio.h
Inutile
#include
Problème assez compliqué -- on en a parlé et reparlé ici, mais je ne
suis toujours pas trop sûr du fonctionnement de ce header suivant les
compilos.
Quoi qu'il en soit, si tu as un compilo récent, mieux vaut écrire :
#include
|
#include
#include <iostream>
| Quote: | #include <stdlib.h
Inutile
void AfficheTTC(float HT,float TauxTVA=0.206)
Un peu vieux, ton taux de TVA...
|
Ce qui explique peut-être aussi le coup de .
| Quote: | {
float TTC =HT *(1+TauxTVA );
cout<<"TTC :" <
std::cout
|
Pas s'il a inclu
| Quote: | }
main()
int main()
|
Il ne l'a pas dit, mais c'est la seule chose où je verrai une erreur à
la compilation avec un compilateur moderne.
| Quote: | {
AfficheTCC(1000.20);
Erreur de frappe ici
|
Où ? Je ne le vois pas.
| Quote: | AfficheTTC(1000.20, 0.055);
}
Si l'auteur du livre a vraiment écrit "main" sans le "int" devant,
change de livre.
|
En effet. Bien avant que l'int implicit a été interdit, c'était mal vue.
(D'ailleurs, est-ce qu'il a jamais été légal en C++ ?)
| Quote: | J'ai la nette impression que la majorité des auteurs de "livres sur le
C++" sont des gens qui connaissent bien le C, et qui commencent à
tenter une vague reconversion vers le C++, avec plus ou moins de
succès (plutôt moins que plus).
|
C'est le prix de la réussite. Quand j'ai commencé le C++, j'ai
l'impression qu'il n'y avait que de bons livres : Stroustrup, Murray,
Lippman, Cargil, Lucas (tous de AT&T, d'ailleurs)... Depuis, Meyers,
Sutter et dernièrement Vandevoorde et Josuttis sont venus s'y joindre,
mais il y en a tellement d'autres...
--
James Kanze GABI Software mailto:kanze (AT) gabi-soft (DOT) fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
|
|
| Back to top |
|
 |
Fabien LE LEZ Guest
|
Posted: Tue Apr 13, 2004 6:32 pm Post subject: Re: pourquoi ça ne se compile pas ?? |
|
|
On 13 Apr 2004 05:49:16 -0700, [email]kanze (AT) gabi-soft (DOT) fr[/email] wrote:
| Quote: | Erreur de frappe ici
Où ? Je ne le vois pas.
|
TCC au lieu de TTC.
--
FLL, Epagneul Breton
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|