# 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:** 1

<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/1 "2016-02-20T16:06:38Z")

</div>

Bonsoir,

Je souhaiterai débuter en programmation (je ne me suis jamais lancé, sauf avec quelques .bat de rien du tout sous Windows) et je voudrai pouvoir découvrir un langage simple mais efficace.  
Avant de créer quoi que ce soit, je souhaiterai d’abord modifier un programme déjà existant avec le langage que j’aurai choisi.  
Vous me comprenez ? Je voudrai essayer de modifier le code source afin de comprendre ce qui change, une fois le tout compilé, etc…  
Je suis un total novice dans ce domaine, je n’y connais strictement rien (comme dit plus haut, je ne connais que les echo, del, pause de MS-DOS).

J’ai déjà demandé à mon père (qui a déjà vingt ans d’informatique derrière lui ; il a travaillé en C, en Java, en C++ et tout ça sur Unix, Unix BSD puis Linux, mais il n’exerce plus le même métier et il a oublié pas mal de choses) de m’apprendre les bases et de m’aider par la suite, mais il me lâche toujours sur un bouquin, avec lequel je suis paumé dès la première page (j’ai notamment qqch du CNED “Introduction au développement de logiciels applicatifs”).

Mon père a une tonne de livres à la cave, sur du C++, Java et pleins d’autres trucs pas évidents que j’ai déjà feuilletés : je n’y comprends rien.

Je suis très attiré par ce domaine et j’aimerai y consacrer du temps.

J’espère qu’il vous sera possible de m’aider, mais si vous l’acceptez, j’espère ne pas trop vous faire perdre votre temps.

Merci d’avance, je ne sais pas par où commencer.

D’autre part, je pense que c’est + un sujet orienté “Pause café” que “Programmation” car je n’ai encore aucune connaissance. Enfin, à matt (et aux autres) de juger ! 😉

---

<div class="post-metadata">

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

</div>

Pour bien commencer, apprend le python, il y a un cours destiné aux débutants  
[http://python.developpez.com/cours/TutoSwinnen/](http://python.developpez.com/cours/TutoSwinnen/)

Ymer a fait la même demande que toi et il a choisi le python. 😉

---

<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/3 "2016-02-20T16:06:39Z")

</div>

Merci, je vais voir ça ! 😃

Quels programmes GNU sont codés en Python, afin que je puisse tester quelques trucs sur leurs sources une fois les bases acquises ?

---

<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/4 "2016-02-20T16:06:39Z")

</div>

UN ENORME MERCI !

Ce petit livre est vraiment bien fait, pour les débutants comme moi qui n’ont presque aucune notion, et pas un truc tordu que m’avait donné à lire mon père !

J’ai commencé à lire et c’est très instructif et intéressant !

Comment te remercier ??? 😃 😃 😃

---

<div class="post-metadata">

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

</div>

Je ne connais que reportbug qui est codé en python, il en existe surement d’autres.

---

<div class="post-metadata">

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

</div>

Moi j’aurais plutôt proposé le C au Python, car c’est plus rigoureux, et je pense que commencer à programmer de cette façon (moins structurée), n’est pas un bon point.

---

<div class="post-metadata">

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

</div>

[quote=“wavesound”]  
Comment te remercier ??? 😃 😃 😃[/quote]

En faisant des maths. :smt003

---

<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/8 "2016-02-20T16:06:40Z")

</div>

[quote=“dimm”][quote=“wavesound”]  
Comment te remercier ??? 😃 😃 😃[/quote]

En faisant des maths. :smt003[/quote]  
 ![:smt021](https://www.debian-fr.org/uploads/default/original/1X/30f920917f8a91ee5d73d12dc3974382b1901bea.gif)

😆

Le Python me parait intéressant. D’autant plus que, d’après ce que vient de me dire mon père (qui n’a jamais développé en Python - et qui ne le connait vaguement, que de nom), le compilateur C est payant.

---

<div class="post-metadata">

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

</div>

Il va falloir revoir un peu la chose alors :p!

-\> gcc \<-

---

<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/10 "2016-02-20T16:06:40Z")

</div>

[quote=“thialme”]Il va falloir revoir un peu la chose alors :p!

-\> gcc \<-[/quote]  
?

---

<div class="post-metadata">

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

</div>

GCC The GNU Compiler Collection  
Il s’agit du compilateur GNU (il doit faire C et C++ je crois et peut etre d’autres)

---

<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/12 "2016-02-20T16:06:40Z")

</div>

Ah ! 🙂  
Mon père est bouche bée. 😛

Alors, Python ou C ?

Ah, c’est aussi GCC qui fait Python.

[code]wavesound@Whale:~$ python  
Python 2.4.4 (#2, Apr 26 2007, 00:02:45)  
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2  
Type “help”, “copyright”, “credits” or “license” for more information.

> > > [/code]

---

<div class="post-metadata">

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

</div>

Ben apparement il fait aussi Fortran, Java et Ada et Objective C (c’est quoi ces deux là?)  
[http://gcc.gnu.org](http://gcc.gnu.org)

---

<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/14 "2016-02-20T16:06:40Z")

</div>

Je reste en Python ou je teste C ? ymer a peut être des infos ? 😃

---

<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/15 "2016-02-20T16:06:41Z")

</div>

Alors quelques petites remarques :  
1 - Il existe plusieurs compilateurs C gratuit mais le mieux à utiliser reste tout de même gcc (qui compile tout un tas d’autres lanagages).  
2 - gcc ne compile PAS de python. Simplement parce que le python est interprété et non compilé ça nuit un peu à la vitesse d’exécution mais rien de flagrant pour des applications simples. Ce que t’indique python quand tu le lance c’est le compilateur qui a compilé l’interpréteur qui lui va interprété le python (tu me suis ? 😆 ).  
3 - Je te déconseille de t’amuser avec les sources de la suite GNU, elle est dans sa majeur partie écrite en C et reprendre du code déjà écris est très complexe. Ne serais-ce que cat ou less, ils sont bien plus compliqué qu’on pourrait s’y attendre.  
4 - @yshi : Ada est un langage évidement compilé qui est très utilisé dans le milieu industriel, il est assez peu permissif c’est bien pour ça qu’il est utilisé dans de l’embarqué aux point critique.

Sinon entre C et python, je dirais qu’avec le C tu va te bouffer les yeux c’est compliqué et chiant (pas de manière péjorative hein? c’est juste qu’il occasionne de belles prises de tête), le python est plus simple, pas compilé pas typé il permet de commencer bien plus vite.  
La voie la plus dure est aussi celle qui se pérennise le mieux, si tu te prend la tête dès le début avec le C tu t’en sortiras mieux dans tout les autres langages, alors que passer dans langage “simple” à appréhender à des monstres du type eifel est plus dure.

C’est à toi de voir.

---

<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/16 "2016-02-20T16:06:41Z")

</div>

Y aurait t-il un guide de cette qualité pour C ? 😒

---

<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/17 "2016-02-20T16:06:41Z")

</div>

Salut Wavesound.

je suis un fou fan du C++, qui derive du C, donc je dirais moi aussi qu’il est plus propre, plus structuré, mille fois plus rapide etc… etc… mais il est plus compliqué, et ça faut quand même insister là dessus.

( je trouve mem le C à gerber à coté du C++, même si c’est encore plus compliqué )

Je me suis pas mal amusé avec le python et il est vraiment très intuitif, en plus ça initie un peu au language objet, puisque tupourras aussi faire des classes quand t’auras bien compris les fonction.

je te conseille à 250% le python.

en C tu vas te perdre dans des détails qui vont pas te faire comprendre la programation.

Et je t’assure, fais un peu de math l’année prochaine, c’est sur ça parait chiant, mais je te jure que y’a des trucs qui t’aideront, ça va structurer certains de tes neuronnes… et si t’accroches la programation, un jour t’auras besoin de faire des maths.

par exempel si tu veux programmer de la 3-D… bah tout ce qui est vecteur t’en auras besoin de le comprendre… et dès que t’as des rotations y’a des cosinus et sinus qui se la ramènent… bon t’inquietes pas la grosse enorme majorité des calculs sont déjà implémenté t’auras qu’à utiliser…

mais si t’as une idée de ce qui se passe derriere tout ira beaucoup plus vite.

et la physique, ça peut t’aider à voir comment appliquer les maths au monde concret…

et puis dés que t’as la possibilité d’aller dans une branche info, lance toi y à fond.

c’est grand-père Anoyzthen qui te dit ça en radotant.

---

<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/18 "2016-02-20T16:06:41Z")

</div>

![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool")

Comme ça fait plaisir !

Bon, je vais peut être rester avec Python pour le moment.

Dites, on peut pondre une aussi bonne application en Python qu’en C ?  
Mon père m’a expliqué que chaque langage est meilleur dans un domaine, par exemple que Fortran servait dans les domaines scientifiques…

Python est plutôt orienté dans quoi ?

Au fait, mon père est un vieux con de 55 ans ! 😆  
Nan, je dis ça affectueusement.

---

<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/19 "2016-02-20T16:06:42Z")

</div>

Bon, voila un petit aide mémoire des exercices qui ont été traités pour le moment, que je me suis joyeusement monté :

[code]## Python

## GCC

## les bases

r , pi = 12, 3.14159

# on affecte 12 a la variable r

# = entier

# on affecte 3.14159 a la variable pi

# = reel

s = pi \* r\*\*2

# on affecte pi, donc 3.14159, ainsi que

# r, qui vaut 12, puissance de deux (= exponentiation)

# (donc 12x12 = 144)

print s

# on affiche la variable s qu’on va verifier

452.38896

# on verifie le resultat

# (3.14159) \* r\*r

# au carre

# on teste ça en python

# on trouve pareil 452.38895999999994

# mais print s arrondi le tout

print type®, type(pi), type(s)

# la fonction type () permet d’afficher

# le type de variable[/code]

Ca avance, ça avance !

---

<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/20 "2016-02-20T16:06:42Z")

</div>

> [@](#):
>
> Y aurait t-il un guide de cette qualité pour C ? 😒

une fois que tu auras bien compris les fonctions… lance toi dans le C.

parce que y’a des subtilités dans le C et le C++ que t’as pas dans beaucoup d’autres languages.

je te donne un exemple, comme quoi c’est subtil le C/C++:  
( sache que void ça veut dire rien, vide et int c’est entier ( 0, 1, 2 etc…)

int Addition(int x, int y)  
{  
x = x + y;  
return x;  
}

int AdditionSubtile(int &x, int y)  
{  
x = x + y;  
return x;  
}  
// c’est plus subtil à cause du & qui va permettre de modifier la valeur de x

void MaFonction(void)  
{  
int a= 1;  
int b=2;  
int mon\_resultat=0;

mon\_resultat=Addition(a,b);  
// une fois qu’on a executé ça a=1 b=2 et mon\_resultat = 3

mon\_resultat=AdditionSubtile(a,b);  
// une fois qu’on a executé ça a=3 b=2 et mon\_resultat=3  
}

avec python t’auras pas ça on passe les arguments par valeur, comme ce que fait la fonction Addition, et c’est beaucoup plus intuitif

en C tu n’imagines pas le nombre de fonctions qui utilisent des pointeurs et des references ( \* et & )… c’est à mon avis presque la majorité, ou au moins 50%.

avec python tu comprendras plus vite. et tu t’amuseras bien plus vite.

en C la manipulation des chaines, c’est à dire des mots, c’est la grosse galère, alors qu’en python c’est vachement pré-maché.

tu risque fort de faire plein de premiers programme qui travail sur des chaine…

( est ce que je remets une couche pour Python… alors que je suis un apôtre du C++ ?)

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