# Je me mets au C

**URL:** <https://www.debian-fr.org/t/je-me-mets-au-c/8416>\
**Category:** Pause Café\
**Created:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416 "2016-02-20T16:06:38Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/41 "2016-02-20T16:06:46Z")

</div>

quote="Anoyzthen"  
bah je t’ai prevenu c’est chiant pour le C.  
faut faire un make file et lancer ton compilateur en fonction de ça…  
(…)[/quote]Non, ce n’est pas necessaire.  
Si tu as un source (par exemple toto.c) pour lequel make dispose d’une règle de compilation, il fait la construction et le transforme en binaire executable, par exemple, make toto, dans le répertoire ou se trouve toto.c, va produire l’executable toto.  
Mettons que tu aies un [toto.sh](http://toto.sh), avec un contenu executable shell, si tu fais make toto, ça va copier [toto.sh](http://toto.sh) sous le nom toto et faire un chmod +x pour rendre ce qui est obtenu executable.  
Le makefile n’est nécessaire que si tu veux ajuster les arguments de construction, ou si l’executable final dépend de plusieurs fichiers source.  
PS: pour le python que je connais peu, AMA, si tu as un fichier [fichier.py](http://fichier.py), et que tu fais un make fichier il va faire ce que fait manuellement Yoko.  
Attention, si tu n’as pas précisé avec quel shell tu veux l’executer en mettant au début #!/usr/bin/python, ca ne produira rien d’exploitable, car le shell depuis lequel tu execute le fichier prendra ça pour lui et râlera de ne pas arriver à comprendre ce que tu lui dis (sauf si tu es dans un shell python, bien sûr).

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/42 "2016-02-20T16:06:46Z")

</div>

J’ai un problème en console.

[quote=“Apprendre à programmer avec Python”] L’expression que vous avez placée entre parenthèses est ce que nous appellerons désormais une  
condition. L’instruction if permet de tester la validité de cette condition. Si la condition est vraie,  
alors l’instruction que nous avons indentée après le « : » est exécutée. Si la condition est fausse, rien  
ne se passe. Notez que les parenthèses utilisées ici sont optionnelles sous Python. Nous les avons  
utilisées pour améliorer la lisibilité. Dans d’autres langages, il se peut qu’elles soient obligatoires.  
Recommencez encore, en ajoutant deux lignes comme indiqué ci-dessous. Veillez bien à ce que  
la quatrième ligne débute tout à fait à gauche (pas d’indentation), mais que la cinquième soit à  
nouveau indentée (de préférence avec un retrait identique à celui de la troisième) :

> > > a = 20  
> > > if (a \> 100):  
> > > … print “a dépasse la centaine”  
> > > … else:  
> > > … print “a ne dépasse pas cent”  
> > > …  
> > > Frappez encore une fois. Le programme s’exécute, et affiche cette fois :  
> > > a ne dépasse pas cent  
> > > Comme vous l’aurez certainement déjà compris, l’instruction else (« sinon », en anglais) permet  
> > > de programmer une exécution alternative, dans laquelle le programme doit choisir entre deux  
> > > possibilités. On peut faire mieux encore en utilisant aussi l’instruction elif (contraction de « else  
> > > if ») :
> 
> > > a=0  
> > > if a \> 0 :  
> > > … print “a est positif”  
> > > … elif a \< 0 :  
> > > … print “a est négatif”  
> > > … else:  
> > > … print “a est nul”  
> > > …  
> > > [/quote]  
> > > En fait, je sais pas comment le rendre en console. Lorsque je fais un copier coller de la partie droite (sans le prompt), c’est nickel, mais le problème c’est que je n’arrive pas à aller à la ligne sans exécuter la commande.  
> > > Mais comment ça se compile le Python ?

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/43 "2016-02-20T16:06:46Z")

</div>

@thialme

bah sincèrement en tant que programeur C++, fanatique moi aussi,  
je deteste ceux qui font du C++ après avoir cru comprendre le C.

ils sont illisibles et non maintenables…  
[troll]la rigueur du C, c’est du pipi de chat à coté de la rigueur du C++[/troll]

donc je prefère qu’il commence par du python pour qu’il prenne gout à fond à l’informatique, et qu’il se mette un peu à ses études, par ce que c’est pas avec un 3.5 en math qu’il a toute ses chances de maitriser le C.

c’est fort possible vu son gout prononcé pour l’info, et sa curiosité…

mais je prefère lui conseiller un truc qui va lui plaire rapidement pour le motiver.

le lancer dans le C alors que les maths et la rigueur des maths le motive pas…  
je trouve que ça correspond pas au cahier des charges.

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/44 "2016-02-20T16:06:46Z")

</div>

> [@](#):
>
> Mais comment ça se compile le Python ?

bah comme t’as expliqué Yoko.

Tu mets tout ton code dans un fichier, que tu appelles toto\_programme.py

et en consoles tu lances `python toto_programme.py`

et c’a l’interpret à la volée

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/45 "2016-02-20T16:06:46Z")

</div>

Ah, d’accord, merci ! 😃

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/46 "2016-02-20T16:06:46Z")

</div>

quote="wavesound"  
Mais comment ça se compile le Python ?[/quote]cf mon post du dessus:  
tu penses à mettre au debut l’interpreteur (=le shell) avec lequel tu veux que le fichier soit interpreté (#!/usr/bin/python), tu nommes ton fichier en [truc.py](http://truc.py), puis tu fais ton make truc.  
Make marche avec tout 😉

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/47 "2016-02-20T16:06:46Z")

</div>

quote="Anoyzthen"  
ils sont illisibles et non maintenables…  
(…)[/quote]Les codeurs C++, souvent. Le C++, non.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/48 "2016-02-20T16:06:46Z")

</div>

> [@](#):
>
> [quote]Mais comment ça se compile le Python ?

bah comme t’as expliqué Yoko.

Tu mets tout ton code dans un fichier, que tu appelles toto\_programme.py

et en consoles tu lances `python toto_programme.py`

et c’a l’interpret à la volée[/quote]pas bon.

---

<div class="post-metadata">

**Author:** ![Yoko](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/58956e/32.png) [@Yoko](https://www.debian-fr.org/u/Yoko)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/49 "2016-02-20T16:06:47Z")

</div>

[quote=“Anoyzthen”]Bon un lanceur de troll…  
Yoko pour moi c’est pas du c++ ce que t’as écrit… c’est pas parceque t’as mis deux trois maquillage d’écriture que ça devient de l’informatique 😉  
en effet y’a pas de classes, pas de templates, aucun recours à des objets STL, aucunes encapsulations, aucuns design patterns…  
bref y’a pas une ligne ou y’a de la vraie programmation de haut niveau… alors ton fanatisme me fait doucement rigoler sur ce coup là.[/quote]  
J’avais pas cette optique là, mais tu me diras ce qu’est cout si c’est pas un objet, tu me diras aussi comment utiliser des namespaces en C pur.  
Je ne cherchais pas à critiquer ni à provoquer je croyais juste que tu disais l’écrire en c++ et pas en c désolé d’avoir mal lu, inutile de le prendre sur ce ton là.

Désolé de pas avoir utilisé l’ensemble des possibilités du c++ pour faire une multiplication et une sortie sur écran. Je te laisse à ta vainne colère et retourne à mes occupations vu que tu veut t’occuper de wavesound tout seul et que je ne suis pas assez bon pour ça.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/50 "2016-02-20T16:06:47Z")

</div>

Ouais, c’est vrai:  
“Peace, love, unity, and having fun !”

---

<div class="post-metadata">

**Author:** ![ymer](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/cdc98d/32.png) [@ymer](https://www.debian-fr.org/u/ymer)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/51 "2016-02-20T16:06:47Z")

</div>

> [@](#):
>
> Je reste en Python ou je teste C ? ymer a peut être des infos ?

Je sais pas trop, mais c’est parti j’ai commencé le python, le C ça me paraissait un peu “trop” pour débuter quand même.

Sinon c’est clair que le tuto est super bien fait!

D’après pas mal de gens c’est pas mal pour débuter alors… 😉

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/52 "2016-02-20T16:06:47Z")

</div>

Faut demander à fran, il a ses idées là dessus.  
Personnellement je dirais perl.  
Mais bon, déjà, un peu de shell posix ne fait pas de mal et me semble pas mal utile, aussi.

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/53 "2016-02-20T16:06:47Z")

</div>

Ok ymer, je resterai aussi en Python pour le moment.

Sinon quelqu’un a une idée pour ça :

[quote=“wavesound”]J’ai un problème en console.

[quote=“Apprendre à programmer avec Python”] L’expression que vous avez placée entre parenthèses est ce que nous appellerons désormais une  
condition. L’instruction if permet de tester la validité de cette condition. Si la condition est vraie,  
alors l’instruction que nous avons indentée après le « : » est exécutée. Si la condition est fausse, rien  
ne se passe. Notez que les parenthèses utilisées ici sont optionnelles sous Python. Nous les avons  
utilisées pour améliorer la lisibilité. Dans d’autres langages, il se peut qu’elles soient obligatoires.  
Recommencez encore, en ajoutant deux lignes comme indiqué ci-dessous. Veillez bien à ce que  
la quatrième ligne débute tout à fait à gauche (pas d’indentation), mais que la cinquième soit à  
nouveau indentée (de préférence avec un retrait identique à celui de la troisième) :

> > > a = 20  
> > > if (a \> 100):  
> > > … print “a dépasse la centaine”  
> > > … else:  
> > > … print “a ne dépasse pas cent”  
> > > …  
> > > Frappez encore une fois. Le programme s’exécute, et affiche cette fois :  
> > > a ne dépasse pas cent  
> > > Comme vous l’aurez certainement déjà compris, l’instruction else (« sinon », en anglais) permet  
> > > de programmer une exécution alternative, dans laquelle le programme doit choisir entre deux  
> > > possibilités. On peut faire mieux encore en utilisant aussi l’instruction elif (contraction de « else  
> > > if ») :
> 
> > > a=0  
> > > if a \> 0 :  
> > > … print “a est positif”  
> > > … elif a \< 0 :  
> > > … print “a est négatif”  
> > > … else:  
> > > … print “a est nul”  
> > > …  
> > > [/quote]  
> > > En fait, je sais pas comment le rendre en console. Lorsque je fais un copier coller de la partie droite (sans le prompt), c’est nickel, mais le problème c’est que je n’arrive pas à aller à la ligne sans exécuter la commande.[/quote]

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/54 "2016-02-20T16:06:47Z")

</div>

@yoko

boh je croyais que comme t’avais conclu ton post par “je suis un fanatique du c++” alors que je pronais la même chose moi aussi personnellement plus au dessus dans les post… que c’était une sorte de provocation-réponse…

enfin maintenant tu sais ce que j’appelles du C++, et Thialme sait ce que j’appelle de la programation. c’est certainement pas uniquement de la manipulation de bit et d’entier et de buffer machin chose bien trop proche du binaire.

à mon avis, complètement arrété biaisé. certes.

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/55 "2016-02-20T16:06:48Z")

</div>

> [@](#):
>
> [quote=“Anoyzthen”][quote]Mais comment ça se compile le Python ?

bah comme t’as expliqué Yoko.  
Tu mets tout ton code dans un fichier, que tu appelles toto\_programme.py  
et en consoles tu lances `python toto_programme.py`  
et c’a l’interpret à la volée[/quote]pas bon.[/quote]

pas bon parce que j’utilise pas make ?

perso je lance tous mes scripts avec la commande python. comme sous windows.

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/56 "2016-02-20T16:06:48Z")

</div>

> [@](#):
>
> Désolé de pas avoir utilisé l’ensemble des possibilités du c++ pour faire une multiplication et une sortie sur écran. Je te laisse à ta vainne colère et retourne à mes occupations vu que tu veut t’occuper de wavesound tout seul et que je ne suis pas assez bon pour ça.

bah je sais vraiment pas quoi répondre à ce post. pas le moindre début d’idée.  
je vais suivre ton exemple alors. bonne nuit.

edit: si j’ai trouvé ma réponse !

oui, certes je me crois orgueilleusement très fort, du moins très pointu, le mot est plus correct, en c++ et ses possibilités. et j’ai pas beaucoup de respect pour la façon de coder en C de base que j’ai expérimenté sur les projets que j’ai croisé dans mon expérience professionnelle, et j’assimile à du procédural de bas niveau, et même je trouve ça sale.

comme tu l’as très bien expliqué, on utilise AUCUNES possibilités du C++ dans cet exemple, puisque ce n’est qu’une multiplication et une redirection à la sortie standard. c’est bien pourquoi je considère que c’est du C, malgré le maquillage qu’on peut y mettre pour lui donner un tete de C++.

“vaine colère” ne te trompe pas sur moi. j’ai du etre aussi épidermique que toi tu sembles l’etre aussi.

mes excuses cependant.

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/57 "2016-02-20T16:06:48Z")

</div>

[quote=“mattotop”]quote="wavesound"  
Mais comment ça se compile le Python ?[/quote]cf mon post du dessus:  
tu penses à mettre au debut l’interpreteur (=le shell) avec lequel tu veux que le fichier soit interpreté (#!/usr/bin/python), tu nommes ton fichier en [truc.py](http://truc.py), puis tu fais ton make truc.  
Make marche avec tout 😉[/quote]

`wavesound@Whale:~$ cd /home/wavesound/Fichiers\ temporaires/
wavesound@Whale:~/Fichiers temporaires$ make toto.py
make: Rien à faire pour « toto.py ».`  
Comment ça rien à faire ? Non mais, c’est pas parce qu’il est minuit trente qu’il faut se reposer sur ses lauriers ! 😈

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/58 "2016-02-20T16:06:48Z")

</div>

non: tu as un fichier [toto.py](http://toto.py) avec un #!/usr/bin/python au debut, et tu crées le fichier toto avec make toto, puis tu l’executes avec ./toto

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/59 "2016-02-20T16:06:48Z")

</div>

je sais pas moi j’utilise la commande python de lameme facon que j’utilise la commande sh.

mets ton code source ici quand même.

---

<div class="post-metadata">

**Author:** ![ymer](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/cdc98d/32.png) [@ymer](https://www.debian-fr.org/u/ymer)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/60 "2016-02-20T16:06:48Z")

</div>

> [@](#):
>
> je sais pas moi j’utilise la commande python de lameme facon que j’utilise la commande sh.

C’est comme ça que je fais aussi je comprends pas mattotop ?

Lorsque je fais make y’a rien à faire qu’il me dit 😒

[Page précédente](https://www.debian-fr.org/t/je-me-mets-au-c/8416.md?page=2)

[Page suivante](https://www.debian-fr.org/t/je-me-mets-au-c/8416.md?page=4)
