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

Début en C et C++

106 réponses
Avatar
HB
Bonjour,


En début d'année, je vais suivre une formation dans l'automatisme et
l'informatique Industriel.


cependant je ne connais rien en langage de programmation. je suis à la
recherche de site voir des livres, afin de prendre de l'avance.

Question au passage, pour apprendre le C++ j'entend différente sons de
cloche, certain dissent qu'il faut apprendre le C au parvant, d'autre le
conseil fortement enfin d'autre que cela n'est absolument pas nécessaire.

Donc faut il l'apprendre ?

Merci de vos réponses

10 réponses

Avatar
Mickaël Wolff
Sylvain SF a écrit :

non, pointeur constant, eg: const char* msg = 'pouet';



Tu voulais ire « pointeur sur constant initialiser par l'entier
'pouet' » ? ^^;

chez Cryo le C++ ne servait qu'aux outils internes, un développeur
"sérieux" de jeux ne perd(ait) pas son temps avec des considérations
C++ mais peut être voulus-tu dire qu'il plantera ses routines à choses
de chaines non retournées comme un objet ?!



Aux dernières nouvelles, le C++ est le langage le plus utilisé pour
la création de jeux vidéos. C'était du sarcasme ?

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
Mickaël Wolff
HB a écrit :
Merci pour vos réponses, je ne sais toujours pas s'il faut ou pas apprendre
le C, certains d'entre vous sont même partie dans des explications qui me
dépassent pour l'instant !!



Bjarne Stroustrup penses qu'il vaut mieux s'attaquer directement au
C++, qui permet d'éviter les routines de bas niveau dans un premier temps.


Je tiens à rassurer Fabien concernant le fourneau, même si le programme en
C++ est mal conçu, il n'y a aucun risque.



Un peu comme Tchernobyl (oui, ça c'est du troll, puisqu'on sait que
ce n'est pas un problème informatique qui a causé l'emballement).

Car dans le cas d'un fourneau qui
est commandé par un automate, le programme en C++ permettrait par exemple,
donner la température que doit atteindre le four d'un PC vers l'automate. Si
le four dépasse la température, il se mettrait en défaut (coupure de
sécurité). Mais, ce n'est pas le programme en C++ qui gère la mise en
défaut, mais le programme implanté dans l'automate (API), qui lui aura été
programmé avec un autre langage (Contact, liste.) de là on peut mettre
plusieurs sécurités (voyant qui s'allume a une certaine température, alarme
sonore si la température continue de monter, coupure de l'alimentation du
four si la température atteint une certaine température.)



Tout ceci n'empêche que si le programme est bogué, il y aura une
perte financière sèche si le fourneaux doit être arrêté.


avec toutes les
sécurités je pense qu'il n'est pas possible que touts soit mal programmé.



Tu sous-estime les humains, regarde le premier lancement de Ariane V.


Sinon soit la personne l'a fait exprès. Dans une nouvelle installation, un
automaticien intervient souvent plusieurs fois après la mise en service de l'installation
afin de corriger les imperfections du programme (des programmes).



De ce que j'ai vu en tant qu'ouvrier, c'était souvent plus qu'une
fois après la recette.


Concernant la programmation, je pense me diriger vers le C mais juste le
base, ensuite le C++, je ne sais pas si c'est le bon choix, on verra plus
tard.



D'ailleurs, pourquoi personne n'a conseillé le bouquin de Stroustrup
sur le C++ ?

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
Sylvain SF
Mickaël Wolff wrote on 31/08/2008 03:57:
Sylvain SF a écrit :

non, pointeur constant, eg: const char* msg = 'pouet';



Tu voulais ire « pointeur sur constant initialiser par l'entier
'pouet' » ? ^^;



non pointeur sur "erreur", pis les entiers 40 bits ?!...

chez Cryo le C++ ne servait qu'aux outils internes, un développeur
"sérieux" de jeux ne perd(ait) pas son temps avec des considérations
C++ [...]



Aux dernières nouvelles, le C++ est le langage le plus utilisé pour la
création de jeux vidéos. C'était du sarcasme ?



"dernières nouvelles" d'où ?

c'est plus du vécu que du sarcasme, mais cette expérience ne date
pas d'hier; si tu veux dire que les compilos C++ crossplatform
gèrent très bien toutes les spécificités hard ou que tous les hards
disposent d'excellentes abstractions C++, c'est merveilleux.

Sylvain.
Avatar
Alexandre BACQUART
Mickaël Wolff wrote:
Sylvain SF a écrit :

non, pointeur constant, eg: const char* msg = 'pouet';



Tu voulais ire « pointeur sur constant initialiser par l'entier
'pouet' » ? ^^;

chez Cryo le C++ ne servait qu'aux outils internes, un développeur
"sérieux" de jeux ne perd(ait) pas son temps avec des considérations
C++ mais peut être voulus-tu dire qu'il plantera ses routines à choses
de chaines non retournées comme un objet ?!



Aux dernières nouvelles, le C++ est le langage le plus utilisé pour la
création de jeux vidéos. C'était du sarcasme ?



Personnellement, en presque 15 ans de programmation dans l'industrie du
jeu vidéo, j'ai très rarement eu l'occasion de lire un source qui ne
susciterait pas l'effroi ici-bas. Ce n'est ni vraiment C, ni vraiment
C++, mais complètement hybride (et bien souvent fait à l'arrache faute
de délais raisonnables). Je préfère éviter de poster des exemples,
personne ne me croirait si je prétends que c'est du code industriel.


--
Alex
Avatar
Fabien LE LEZ
On Sun, 31 Aug 2008 04:08:03 +0200, Mickaël Wolff
:

D'ailleurs, pourquoi personne n'a conseillé le bouquin de Stroustrup
sur le C++ ?



Tu parles de "Le langage C++", 3è édition ?
<http://www.research.att.com/~bs/3rd.html>

Je ne le trouve pas spécialement lisible ; par ailleurs, c'est une
référence du langage (grosso modo, la norme en un petit peu moins
aride), absolument pas un cours.
Avatar
Fabien LE LEZ
On Sat, 30 Aug 2008 23:54:25 +0200, Sylvain SF
:

Le C et l'assembleur font les choses différemment, de façon
beaucoup plus complexe, ce qui les met à part des autres langages.



s/complexe/rudimentaire/



Plus complexe à utiliser.
Avatar
Fabien LE LEZ
On Sat, 30 Aug 2008 23:33:12 +0200, "HB" :

je ne sais toujours pas s'il faut ou pas apprendre
le C



Ça dépend de toi. Si tu as besoin de savoir programmer en C, apprends
le C. Si tu préfères t'orienter vers un autre langage (que ce soit
Prolog ou C++), apprends cet autre langage.
N'essaie pas d'apprendre deux langages en même temps, tu ne feras que
t'embrouiller.
Avatar
Fabien LE LEZ
On Sun, 31 Aug 2008 06:20:26 +0200, Alexandre BACQUART :

Je préfère éviter de poster des exemples,
personne ne me croirait si je prétends que c'est du code industriel.



Mais si, mais si...
Du code fait n'importe comment par des gens qui ne connaissent pas
grand-chose au langage (que ce soit Java, C++ ou n'importe quel
autre), c'est courant :-(

Y'a qu'à voir les horreurs qui traînent dans du code que j'ai écrit il
y a quelques années, et qui est toujours utilisé -- le pire, c'est
qu'il fonctionne ! :-(
Ou bien, <http://thedailywtf.com/>.
Avatar
pjb
Gabriel Dos Reis writes:

(Pascal J. Bourguignon) writes:
| Compilé avec un compilateur C++. C'est donc du C++. Il serait temps
| que tu te rendes compte qu'il n'y a pas d'amélioration au langage
| juste en ajoutant deux signes plus au nom.

Il reste une question fondamentale à laquelle tu as soigneusement
éviter de considérer : qu'est-ce que tu voulais exprimer dans f() ?



Relis mon article.

--
__Pascal Bourguignon__ http://www.informatimago.com/
The rule for today:
Touch my tail, I shred your hand.
New rule tomorrow.
Avatar
Fabien LE LEZ
On Sat, 30 Aug 2008 14:47:26 +0200, (Pascal J.
Bourguignon):

void f(int a){
int* p=&a;



Ici, tu joues sur le fait qu'il y a équivalence entre un objet et un
tableau de 1 élément. Ça peut être casse-gueule, et c'est à utiliser
avec précaution, mais d'un point de vue logique, ça ne me choque pas
plus que ça.

for(int i=(-16);i<16;i++){
p[i]=1;



Ici, tu accèdes à un élément hors du tableau.

C'est le genre de truc qui n'est généralement repérable qu'à
l'exécution, pas à la compilation, quelque soit le langage.

De deux choses l'une : soit il s'agit d'un tableau associatif
(std::map<>, les tableaux en PHP, etc.), et dans ce cas p[-16] a un
sens et tout va bien, soit il s'agit d'un tableau "normal", et
"p[-16]" ne va pas faire grand-chose de bon.