Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1490 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Meilleur moyen d'apprendre le langage C ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Meilleur moyen d'apprendre le langage C ?

n°1457416
Pascal_974
Posté le 15-10-2006 à 10:26:48  profilanswer
 

Bonjour à tous.
Je ne possède aucune base en programmation, et j'aimerai apprendre le langage C/C++. Donc si j'ai bien compris, je dois commencer par le langage C pour débuter.
Quel est le meilleur moyen d'apprendre ce langage ?
En passant par des tutoriels sur internet ( par ex : http://www.developpez.com/c/cours/ ), ou en achetant un livre ( http://www.developpez.com/c/livres/ ) ?
Dans ce cas là, quel livre me conseillez-vous pour un débutant comme moi ? Je précise que l'anglais ou le français m'importe peu, tant que le livre est bien fait et bien expliqué sur le langage, mais je préfère quand  même qu'il soit en français.  :p  
Merci d'avance

Message cité 2 fois
Message édité par Pascal_974 le 15-10-2006 à 10:43:47
mood
Publicité
Posté le 15-10-2006 à 10:26:48  profilanswer
 

n°1457420
jesus_chri​st
votre nouveau dieu
Posté le 15-10-2006 à 10:40:57  profilanswer
 

Citation :

j'aimerai apprendre le langage C/C++.


 
C et C++ sont deux langages différents, même s'ils ont beaucoup en commun.
Si tu veux faire du C++, apprend-le directement. Un bouquin te donnera les bases communes avec le C et enchainera sur le C++. Sinon tu peux apprendre le C (avec printf, malloc et compagnie) puis "upgrader" vers le C++.
 

Code :
  1. int main(void)
  2. {
  3.    puts("Hello world" );
  4. }


 

Code :
  1. int main()
  2. {
  3.    cout << "Hello world\n" ;
  4. }


 
Juste pour rappeler que même sur un hello world, le C et les C++ sont très différents. Même si le premier compile aussi en C++

n°1457423
Pascal_974
Posté le 15-10-2006 à 10:47:14  profilanswer
 

Désolé mais les mots comme " printf, malloc, hello world " ne me disent pas grand chose.  :lol:  
Mais pour quelqu'un qui débute, il vaut mieux qu'il apprenne le C ou le C++, qu'est-ce qui est le plus utile ? Qu'est-ce qui s'utilise le plus aujourd'hui et qui s'utilisera dans le futur ?

n°1457430
Emmanuel D​elahaye
C is a sharp tool
Posté le 15-10-2006 à 11:09:48  profilanswer
 

jesus_christ a écrit :

Code :
  1. int main(void)
  2. {
  3.    puts("Hello world" );
  4. }


 

Code :
  1. int main()
  2. {
  3.    cout << "Hello world\n" ;
  4. }


 
Juste pour rappeler que même sur un hello world, le C et les C++ sont très différents. Même si le premier compile aussi en C++


Ni l'un ni l'autre ne compilent en C++.  


Project   : C++
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\cpp\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.cpp
main.cpp: In function `int main()':
main.cpp:3: error: `puts' undeclared (first use this function)
main.cpp:3: error: (Each undeclared identifier is reported only once for each function it appears in.)
Process terminated with status 1 (0 minutes, 1 seconds)
2 errors, 0 warnings


et

Project   : C++
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\cpp\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.cpp
main.cpp: In function `int main()':
main.cpp:3: error: `cout' undeclared (first use this function)
main.cpp:3: error: (Each undeclared identifier is reported only once for each function it appears in.)
main.cpp:4:2: warning: no newline at end of file
Process terminated with status 1 (0 minutes, 0 seconds)
2 errors, 1 warnings


Le premier compile en C,  

Project   : Forums
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\forums\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c: In function `main':
main.c:3: warning: implicit declaration of function `puts'
main.c:4: warning: control reaches end of non-void function
Linking console executable: C:\dev\forums\forums.exe
Process terminated with status 0 (0 minutes, 1 seconds)
0 errors, 2 warnings

mais le comportement est indéfini.
 
Ces codes sont corrects respectivement en C et en C++ :

Code :
  1. /* main.c */
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5.    puts("Hello world" );
  6.    return 0;
  7. }


 

Code :
  1. /* main.cpp */
  2. #include <cstdio>
  3. int main()
  4. {
  5.    std::puts("Hello world" );
  6.    return 0;
  7. }


C et C++ sont réellement 2 langages différents.


Message édité par Emmanuel Delahaye le 15-10-2006 à 11:12:04

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1457433
Pascal_974
Posté le 15-10-2006 à 11:15:06  profilanswer
 

Heu merci, mais toutes ces lignes de code ne m'aide pas beaucoup.

Citation :

Mais pour quelqu'un qui débute, il vaut mieux qu'il apprenne le C ou le C++, qu'est-ce qui est le plus utile ? Qu'est-ce qui s'utilise le plus aujourd'hui et qui s'utilisera dans le futur ?


Dois-je commencer par le C , ou dois-je apprendre directement le C++ ?

n°1457438
Emmanuel D​elahaye
C is a sharp tool
Posté le 15-10-2006 à 11:25:35  profilanswer
 

Pascal_974 a écrit :

Je ne possède aucune base en programmation, et j'aimerai apprendre le langage C/C++.


Déjà, il y a plusieurs problèmes.
 
La programmation, c'est bien plus que de connaitre un langage. Un langage est outil de mise en oeuvre, mais si on a rien à mettre en oeuvre, on ne va pas aller très loin. Il faut aussi apprendre à spécifier un projet, à l'analyser, à le traduire en algorithme...
 
Il est bien pour ça de disposer d'un outil qui permette de mettre en place rapidement et simplement les principes de l'algorithmie. Par exemple, même l'ignoble BASIC de base (10 GOTO 10) peut servir à ça, si il est correctement utilisé (et puis, il existe des BASIC 'structurés' avec des fonctions comme le Pascal ou le C)
 
Si tu n'as pas de notion de programmation, ni le C ni le C++ (langages différents, je le rappelle, il n'y a pas de C/C++) ne sont des langages d'initiation. Il y a trop de subtilité et de laxisme dans le C et de concepts complexes dans le C++ pour tout assimiler d'un coup.
 
Je conseille de commencer avec un langage de plus haut niveau comme le PHP (Orienté Web, OK) ou Python ou Ruby. Le Pascal (Turbo Pascal, Free Pascal, voire Delphi) est bien aussi, car dans sa version standard, il est à peu près aussi simple et puissant que le C standard, sans les pièges du C. de plus, il introduit une rigueur que n'a pas le C.


Message édité par Emmanuel Delahaye le 15-10-2006 à 11:28:02

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1457440
Emmanuel D​elahaye
C is a sharp tool
Posté le 15-10-2006 à 11:26:54  profilanswer
 

Pascal_974 a écrit :

Heu merci, mais toutes ces lignes de code ne m'aide pas beaucoup.


Comme indiqué, ce n'est pas à toi que je répondais...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1457506
Dumbledore
Posté le 15-10-2006 à 13:56:07  profilanswer
 

En général, "à l'école" on commence par le C puis on passe à la prog objet en Java ou en C++ après

n°1457509
Paul JR
Posté le 15-10-2006 à 14:00:35  profilanswer
 

Avant d'apprendre C ou C++, tu peux aussi commencer par un cours d'algo, ici : http://algo.developpez.com/cours/
 
Ou alors un véritable cours d'initiation à la programmation, ici : http://rmdiscala.developpez.com/cours/

n°1457539
marctes
Posté le 15-10-2006 à 15:25:39  profilanswer
 

Paul JR a écrit :

Avant d'apprendre C ou C++, tu peux aussi commencer par un cours d'algo, ici : http://algo.developpez.com/cours/
 
Ou alors un véritable cours d'initiation à la programmation, ici : http://rmdiscala.developpez.com/cours/


 
 
Règle d'or : developpez.com : A fuir comme la peste (maintes fois répété sur les newsgroups)
(ramassis de conneries, écrits par des gamins de 15 ans, etc...)

mood
Publicité
Posté le 15-10-2006 à 15:25:39  profilanswer
 

n°1457550
Emmanuel D​elahaye
C is a sharp tool
Posté le 15-10-2006 à 16:00:47  profilanswer
 

marctes a écrit :

Règle d'or : developpez.com : A fuir comme la peste (maintes fois répété sur les newsgroups)
(ramassis de conneries, écrits par des gamins de 15 ans, etc...)


Soit. Peux tu donner un exemple ou ne fais-tu que répeter bêtement ce que tu lis ?


Message édité par Emmanuel Delahaye le 15-10-2006 à 16:11:01

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1457552
FLK
Posté le 15-10-2006 à 16:07:59  profilanswer
 

les newsgroups, antre de l'objectivité  :lol:  
 
On trouve de tout, comme sur dev.com ... il y a des TRES bonne FAQs & Tutos pour ceux qui debutent, et même les autres.

n°1457584
Bad_Day
Posté le 15-10-2006 à 17:42:36  profilanswer
 

Pascal_974 a écrit :

Je ne possède aucune base en programmation, et j'aimerai apprendre le langage C ...


 
je te conseil de commencer par ca: http://www.pise.info/algo/introduction.htm
 
 
 
 
 
 :hello:

n°1457586
Paul JR
Posté le 15-10-2006 à 17:45:21  profilanswer
 

marctes a écrit :

Règle d'or : developpez.com : A fuir comme la peste (maintes fois répété sur les newsgroups)
(ramassis de conneries, écrits par des gamins de 15 ans, etc...)


C'est des conneries, www.developpez.com est devenu une référence et ce depuis des années, il y à juste sur la rubrique C et C++ ou effectivement il y à des manques, comme par exemple un bon cours pur C++, mais dans d'autres rubrique tout est nickel.
 
Ce type est sans doute un ancien banni du forum de developpez.com ou un webmaster d'un site concurrent qui essaye bêtement de calmonier le site, mais il aura beau calmonier et écrire toutes les conneries qu'il veux ca ne changera rien, car toute personnes qui va faire un tour sur www.developpez.com peu se rendre compte de lui même que c'est des conneries.
 
Quand à l'accusation comme quoi ca serais écrit pas des gamins c'est l'accusation la plus comique, developpez.com est fait par une équipe de rédaction de 200 bénévoles dont une majorité de professionels connus, certifiés, auteurs de livres etc...
 
Il y à de nombreux certifiés Oracle, environ 10 MVP (donc tous les professionels) : http://dotnet.developpez.com/equipe/ , des java champions, des auteurs de livres très connus (Frédéric Brouard, Olivier Dahan, etc...)
 
Donc la vérité c'est exactement le contraire de ce que ce pauvre type à écris
 
Le cours que j'ai cité par exemple : http://rmdiscala.developpez.com/cours/ n'à pas été écrit par un gamin de 15 ans comme le prétends ce pauvre type, mais par RM di Scala, un professeurs d'Université qui à plus de 40 ans, et ce cours à recu plusieurs prix, et il est référencé directement par l'éducation nationale.
 
Il y aura toujours des pauvres types qui vont essayer de calmonier developpez.com parce que comme ce sont des pauvres types ils se sont fait bannir du forum tout simplement... Mais ca n'est pas un pauvre type (probablement simplement un cas psychiatrique) qui va empècher les 900 000 lecteurs de developpez.com de poster des remerciements pour toutes les ressources et services proposés gratuitement depuis des années, c'est ici : http://club.developpez.com/temoignages/


Message édité par Paul JR le 15-10-2006 à 18:01:58
n°1458642
jesus_chri​st
votre nouveau dieu
Posté le 17-10-2006 à 12:22:38  profilanswer
 

Emmanuel Delahaye  : oui merci je sais qu'il manque les header c'était volontaire, c'était pas un code destiné à être compilé tel-quel. Et le return 0 dans le main c'est optionnel. Avec les header mon code compile. Sans prétendre être un dieu du C, je sais qd même écrire un hello world :sarcastic:

n°1458643
Emmanuel D​elahaye
C is a sharp tool
Posté le 17-10-2006 à 12:28:42  profilanswer
 

jesus_christ a écrit :

Emmanuel Delahaye  : oui merci je sais


Et le questionneur, tu crois qu'il sait ? On est censés poster du code opérationnel...

Citation :

qu'il manque les header c'était volontaire, c'était pas un code destiné à être compilé tel-quel.


C'est pas écrit dessus...

Citation :

Et le return 0 dans le main c'est optionnel.


En C99 uniquement.

Message cité 1 fois
Message édité par Emmanuel Delahaye le 17-10-2006 à 13:10:25

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1458681
++fab
victime du syndrome IH
Posté le 17-10-2006 à 13:43:20  profilanswer
 

Emmanuel Delahaye a écrit :

Citation :

Et le return 0 dans le main c'est optionnel.


En C99 uniquement.


En C++ aussi (puisqu'un exemple de main C++ a été donné).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Meilleur moyen d'apprendre le langage C ?

 

Sujets relatifs
Créer un langage/compilateurTraduction auto d'un algo en langage C
Live pour apprendre le HTML ou XHTML[SQL] Filtrage spécial quel moyen utilisé ?
cherche a apprendreOu apprendre le C et C++ ???
JAVA est-il un langage en voie de disparition?[PHP/Web]Moyen efficace pour retourner le contenu "statique"
quel langage pour creer un jeu?Meilleur script de gestion des membres
Plus de sujets relatifs à : Meilleur moyen d'apprendre le langage C ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR