[Programmation]Apprendre plus sur le langage C

Ce qui ne concerne ni le forum ni des problèmes
Répondre
Kusa
Hankyu
Messages : 11
Inscription : sam. 07 nov. 2009, 11:15

[Programmation]Apprendre plus sur le langage C

Message par Kusa »

Salut à tous, nouveau dans la communauté arch, j'aimerais contribuer plus activement au monde du libre en codant un peu (je suis pas extrêmement doué mais je veux bien essayer). Seulement voila les seuls connaissances que j'ai ce trouve sur le site du zero... J'ai aussi acheter le livre de bjarne stroustrup sur le langage c++ (je vous avou je n'ai pas encore terminer le livre et je comprends pas encore totalement certains concept et je continuerai pas tant que je comprendrais pas)...
Pourriez-vous me donner des sites ou alors des livres où je pourrais apprendre plus profondément le langage C? J'ai deja chercher sur google et les resultats du style developpez.com me semble un peu pauvre :s

Merci d'avance pour vos réponses.
Remember me when you look at the moon
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Programmation]Apprendre plus sur le langage C

Message par benjarobin »

Quel concept tu ne comprend pas, car le site du zero ou developpez.com donne déjà de bonne base. Je ne sais pas s'il parle de programmation concurrente mais je pense que oui. Donc dit juste ce que tu as du mal a comprendre, j'essayerai dit répondre...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Tangrim
archer de cavalerie
Messages : 181
Inscription : mer. 26 sept. 2007, 16:31
Localisation : dans l'underground

Re: [Programmation]Apprendre plus sur le langage C

Message par Tangrim »

Dans le même genre d'idées, vous auriez un livre à conseiller pour se familiariser avec les pointeurs en C ?
J'ai compris le principe, mais quand on commence à attaquer les pointeurs de pointeurs, les argv et compagnie, je lâche un peu.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Programmation]Apprendre plus sur le langage C

Message par benjarobin »

Hum, je pense que tu n'as pas assez bien compris les pointeurs car une fois que l'on a compris ce que c'était, c'est vraiment simple de comprendre ce que c'est un pointeur de pointeur. Car un pointeur, il faut bien le stocker en mémoire (on peut l'assimiler a un long).

Décortiquons déjà un exemple basic

Code : Tout sélectionner

char *foo = null;
char **ad_foo = null
char c = 'a';
foo = &a;
ad_foo = &foo;

/*
foo       = adresse de c,    par exemple foo       = 1233 (position mémoire)
ad_foo = adresse de foo, par exemple ad_foo = 5678

*foo = 'a'
&foo = 5678
*ad_foo = 1233
**ad_foo =  'a'
*/
Mais sinon le site du zéro explique 10 fois mieux que moi pour des choses aussi simple :copain:
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Tony
Hankyu
Messages : 26
Inscription : mer. 25 févr. 2009, 11:40
Localisation : Vannes (Bretagne)
Contact :

Re: [Programmation]Apprendre plus sur le langage C

Message par Tony »

Salut,

Tu as un très bon document dispo sur dvpz.com pour apprendre le C :

http://c.developpez.com/cours/poly-c/

(le cours est dispo en pdf, pour une consultation offline).
Image
Archlinux c'est bon, mangez-en !
Avatar de l’utilisateur
catwell
archer de cavalerie
Messages : 175
Inscription : lun. 13 juil. 2009, 19:00

Re: [Programmation]Apprendre plus sur le langage C

Message par catwell »

Sinon, le C, comme tous les autres langages, s'apprend en pratiquant. Vous avez de la chance, vous connaissez des logiciels libres. Prenez-en un simple et lisez son code source. Essayer de recoder des commandes Unix de base peut aussi être un bon exercice. Et quand vous bloquez, n'oubliez pas que les fonctions principales du C sont documentées sous forme de pages de man...
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Programmation]Apprendre plus sur le langage C

Message par benjarobin »

Je ne suis pas tout a fait d'accord, ce n'est pas en lisant du code que l'on apprend, (surtout que des fois certain code sont limite, en C je ne vois pas trop d'horreur, mais alors dans le WEB, des fois il y a quoi se pendre, surtout en SQL...) mais en pratiquant et en apprenant de ses erreurs. Bref se trouver des petits projets, savoir aussi se remettre en question... Ce qui est aussi important, c'est de reprendre son code au bout de 1 ou 2 mois. Généralement on se dit au début quand on débute, mais, c'est moi qui est codée cette horreur ?... :D

Ce que j'ai appris avec le temps. Vouloir optimiser outre mesure pour gagner 1 nano seconde sur le temps d'exécution ce n'est pas vraiment intéressant surtout qu'après on peut avoir un code on ne peu plus illisible.

Donc ce qui est important et que les débutant on du mal, c'est lisibilité du code et documentation, bien que sur le coup on se dit, mais c'est évident, c'est simple. Reprenez votre code dans 1 an, vous serez surpris des fois :D
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [Programmation]Apprendre plus sur le langage C

Message par tuxce »

benjarobin a écrit :Reprenez votre code dans 1 an, vous serez surpris des fois :D
si on le comprend :D
Avatar de l’utilisateur
catwell
archer de cavalerie
Messages : 175
Inscription : lun. 13 juil. 2009, 19:00

Re: [Programmation]Apprendre plus sur le langage C

Message par catwell »

Ça m'est déjà arrivé de ne pas comprendre mon code le lendemain. J'avoue, j'avais bu avant de l'écrire :lol:

Pour la qualité du code qu'on peut trouver sur le net je suis d'accord, il faut y faire attention. Je ne conseillais ça que pour ceux qui, comme Kusa, ne trouvent plus leur bonheur dans les cours et les tutoriels trouvables sur le net. Il faut de toute façon être capable de lire du code et de le comprendre avant d'envisager contribuer à un projet. Une bonne source d'exemples simples, propres et qui font des choses utiles est http://suckless.org/
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Re: [Programmation]Apprendre plus sur le langage C

Message par warnaud »

Et surtout commenter!! ça coute rien et derrière c'est plus facile à maintenir ... (cf ... tellement de projets open-source :D )
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Avatar de l’utilisateur
bennyboy
archer de cavalerie
Messages : 154
Inscription : dim. 12 oct. 2008, 20:36

Re: [Programmation]Apprendre plus sur le langage C

Message par bennyboy »

catwell a écrit :Une bonne source d'exemples simples, propres et qui font des choses utiles est http://suckless.org/
Mouais par contre il faut quand même un petit niveau parce que il n'y a pas une ligne de commentaire mais en effet cela semble de bons exemples.
Mon wiki
Mon Github
T'es tellement no-life que t'aimerais être un PC pour redémarrer ta vie en mode sans échec !
Kusa
Hankyu
Messages : 11
Inscription : sam. 07 nov. 2009, 11:15

Re: [Programmation]Apprendre plus sur le langage C

Message par Kusa »

Merci pour toutes vos réponses, bon pour précision je comprends le C, le seul problème que j'ai je pense que c'est au niveau algorithmique, mettre sous forme de code le problème posé. Du genre j'ai un fichier, je dois le lire en l'analysant bit par bit, si il manque un bit au fichier alors le fichier est corrompu, sinon continuer la lecture (un truc que je viens de penser en écrivant et je suis même pas sur que c'est bon :oops: mais bon c juste pour donner un exemple).

Je pense que mon problème vient du fait que je retiens pas tout les mots clés utiles, et j'imagine pas assez le code le plus simple possible (traduire mot à mot l'algo par du code c'est pas cool :s )
Remember me when you look at the moon
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Programmation]Apprendre plus sur le langage C

Message par benjarobin »

Je te rassure (ou pas) l'algorithme c'est le plus dur, après ce n'est que du code. Et pour l'algorithme sur certaine chose a moins d'être plus que doué, c'est très difficile, je pense au parcours de graph. Le plus dur que j'ai réalise, c'est trouver les K plus court chemins dans un graph, ne pas confondre avec ceci qui est assez trivial a comprendre : http://fr.wikipedia.org/wiki/Algorithme_de_Dijkstra. J'ai finit par m'aider d'un algo asiatique (vive google traduction) que je n'ai toujours pas compris entièrement...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Kusa
Hankyu
Messages : 11
Inscription : sam. 07 nov. 2009, 11:15

Re: [Programmation]Apprendre plus sur le langage C

Message par Kusa »

Oki donc je suis déja rassuré, l'algorithme est vraiment le plus difficile :p. Pour m'entrainer j'ai décider de me faire un petit logiciel de compte pour mes notes, en clair je rentre mes notes, je configure les coefficients et le logiciel me fait ma moyenne automatiquement (oui je sais openoffice le fait deja avec le tableur mais je veux essayer :p). C'est une bonne idée vous pensez?
Remember me when you look at the moon
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Programmation]Apprendre plus sur le langage C

Message par benjarobin »

Moi, je dis que tout exemple est bon tant qu'il te motive assez et que c'est a ta porte, a tes niveaux de connaissance... Je ne sais pas vraiment ton parcours, tu es peut être qu'au collège... Donc je ne sais pas quel notion tu peux avoir, mais en tout cas ton exemple devrai être a ta portée...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Kusa
Hankyu
Messages : 11
Inscription : sam. 07 nov. 2009, 11:15

Re: [Programmation]Apprendre plus sur le langage C

Message par Kusa »

Je suis en terminal STI Electronique pour info ;)
Remember me when you look at the moon
Avatar de l’utilisateur
bennyboy
archer de cavalerie
Messages : 154
Inscription : dim. 12 oct. 2008, 20:36

Re: [Programmation]Apprendre plus sur le langage C

Message par bennyboy »

Kusa a écrit :Je suis en terminal STI Electronique pour info ;)
:evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil:
Mon wiki
Mon Github
T'es tellement no-life que t'aimerais être un PC pour redémarrer ta vie en mode sans échec !
Kusa
Hankyu
Messages : 11
Inscription : sam. 07 nov. 2009, 11:15

Re: [Programmation]Apprendre plus sur le langage C

Message par Kusa »

??? que me vaut tout cela?
Remember me when you look at the moon
Avatar de l’utilisateur
bennyboy
archer de cavalerie
Messages : 154
Inscription : dim. 12 oct. 2008, 20:36

Re: [Programmation]Apprendre plus sur le langage C

Message par bennyboy »

Kusa a écrit :??? que me vaut tout cela?
Rien contre toi, de simple souvenirs .....
Mon wiki
Mon Github
T'es tellement no-life que t'aimerais être un PC pour redémarrer ta vie en mode sans échec !
Répondre