Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pourquoi ça ne se compile pas ??

6 réponses
Avatar
pascal baufre
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 :" <<TTC <<'\n';
}

main()
{

AfficheTCC(1000.20);
AfficheTTC(1000.20, 0.055);
}

6 réponses

Avatar
Fabien LE LEZ
On Sun, 11 Apr 2004 12:41:38 +0200, "pascal baufre"
wrote:

#include <stdio.h>


Inutile

#include <iostream.h>


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 <iostream>

#include <stdlib.h>


Inutile

void AfficheTTC(float HT,float TauxTVA=0.206)


Un peu vieux, ton taux de TVA...

{

float TTC =HT *(1+TauxTVA );
cout<<"TTC :" <<TTC <<'n';


std::cout

}

main()


int main()

{

AfficheTCC(1000.20);


Erreur de frappe ici

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

Avatar
Loïc Joly
pascal baufre wrote:

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....

#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>


Les headers standard C++ sont <cstdio>, <iostream> et <cstdlib>. Pour
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.

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

{

float TTC =HT *(1+TauxTVA );
cout<<"TTC :" <<TTC <<'n';
}

main()


main doit retourner un int.

{

AfficheTCC(1000.20);
AfficheTTC(1000.20, 0.055);
}


--
Loïc

Avatar
Alain Naigeon
"Loïc Joly" a écrit dans le message news:
c5b9mv$pgr$

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 - - Strasbourg, France

Avatar
kanze
Loïc Joly wrote in message
news:<c5b9mv$pgr$...
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 <iostream.h>
#include <stdlib.h>


Les headers standard C++ sont <cstdio>, <iostream> et <cstdlib>. Pour
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.)

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.

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.

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.

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.

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:
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


Avatar
kanze
Fabien LE LEZ wrote in message
news:...
On Sun, 11 Apr 2004 12:41:38 +0200, "pascal baufre"
wrote:

#include <stdio.h>


Inutile

#include <iostream.h>


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 <iostream>


#include <ostream>
#include <iostream>

#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 <iostream.h>:-).

{
float TTC =HT *(1+TauxTVA );
cout<<"TTC :" <<TTC <<'n';


std::cout


Pas s'il a inclu <iostream.h>.

}

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.

{
AfficheTCC(1000.20);


Erreur de frappe ici


Où ? Je ne le vois pas.

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++ ?)

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:
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


Avatar
Fabien LE LEZ
On 13 Apr 2004 05:49:16 -0700, wrote:

Erreur de frappe ici


Où ? Je ne le vois pas.


TCC au lieu de TTC.

--
;-)
FLL, Epagneul Breton