« Langage C/Introduction au C » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (- l'ordre + l’ordre )
m Robot : Remplacement de texte automatisé (- c'est + c’est )
Ligne 10 :
=== Esprit et but du tutoriel ===
 
Ce tutoriel a été écrit dans un seul but : vous enseigner le langage C de la manière la plus complète, la plus rigoureuse et la plus instructive possible. Pour ce faire, le tutoriel combinera beaucoup de théorie, de connaissances importantes, de détails et de recherches en profondeur avec de la pratique par des exemples concrets, des exercices pratiques et des TP. Cette approche va réclamer de votre part des efforts puisque le tutoriel semblera parfois complexe, néanmoins il est important de passer tout le temps nécessaire à l'assimilation de chaque connaissance abordée. Pour s'assurer d’avoir bien assimilé une notion, il est fortement conseillé de se façonner ses propres programmes tout au long du cours, et ce en plus des exercices proposés au sein de celui-ci, c'estc’est en vous exerçant que vous prendrez conscience de vos faiblesses, et que vous pourrez progresser.
 
Nous avons choisi cette méthode d’apprentissage, car c’est celle que nous jugeons la plus payante. Elle s’oppose à d'autres méthodes qui privilégient un cours beaucoup plus théorique, qui permettent certes d’acquérir des connaissances rapidement, mais qui s’avère bien souvent peu payante sur le long terme. Beaucoup de programmeurs débutants se sont retrouvés perdus lorsqu’ils se sont lancés dans la création d'un projet pour la première fois à la sortie d’un cours purement théorique, n’ayant pas acquis de bonnes pratiques et de la rigueur. Ce cours illustrera donc chaque notion abordée d'exemples et d'exercices, afin de vous enseigner non seulement un langage de programmation, mais aussi de bonnes méthodes de travail.
Ligne 25 :
* De la '''logique''' : réaliser un programme nécessite un esprit logique développé, bien sûr, ce tutoriel vous guidera dans votre réflexion tout au long de votre apprentissage, mais il faut néanmoins savoir réfléchir par soi-même et être capable de trouver des solutions inventives pour résoudre chaque problème rencontré. En effet, on ne peux pas se contenter d'apprendre par cœur la syntaxe du langage et de simplement recopier mot pour mot plusieurs morceaux de code trouvés par-ci par-là tout au long du cours. Pour obtenir un programme fonctionnel complet, il est nécessaire de réfléchir préalablement à la structure que vous allez donner à celui-ci, ainsi qu'aux nombreuses décompositions que vous serez contraints d'effectuer.
* De la '''patience''' : vous vous apprêtez à apprendre un langage de programmation, et l'assimilation de nombreuses notions plus ou moins complexes vous sera demandée pour la réalisation de programmes qui auraient pu vous paraître très simples de prime abord. Il va donc falloir de la patience pour apprendre, comprendre, s’entraîner, faire des erreurs et les corriger pour enfin pouvoir réaliser les logiciels de vos rêves.
* De la '''rigueur''' : cette qualité est très importante en programmation. Un travail sérieux et régulier tout au long de l'apprentissage du C est primordial, c'estc’est tout ce qui fera la différence entre un bon et un mauvais programmeur.
* De la '''passion''' : le plus important pour suivre ce tutoriel, c'estc’est de prendre plaisir à programmer. Amusez-vous en codant, c'estc’est le meilleur moyen de progresser !
 
Je tiens aussi à préciser qu’un niveau acceptable en anglais est très fortement recommandé. En effet, beaucoup de cours, de forums, de documentations et autres seront en anglais. Tôt ou tard, vous serez confronté à l'anglais, il faut vous y préparer. Si vous êtes encore étudiant, cela ne vous sera que bénéfique ! Si vraiment l’anglais n’est vraiment pas votre fort, vous pouvez toujours utiliser un dictionnaire pour vous aider.
Ligne 46 :
Créer un programme, c’est tout simplement assembler une suite d’instructions de base qui permettront de faire ce que l’on veut. Tous les programmes sont créés ainsi : votre système d'exploitation donne toutes les instructions nécessaires à votre ordinateur, votre logiciel de discussion instantanée donne les instructions nécessaires à l'ordinateur pour discuter avec d'autres gens sur le réseau, votre lecteur multimédia donne des instructions à l’ordinateur pour écouter de la musique ou lire des vidéos, etc.
 
Petite remarque : on ne peut pas créer d’autres instructions que celles déjà mises en place. Notre ordinateur est conçu, câblé, et peut traiter certaines instructions de bases, préconçues dans ses circuits, sans possibilité d’en inventer d’autres (sauf cas particulier vraiment tordus). Notre ordinateur contient un composant électronique spécialement conçu pour effectuer ces instructions : il s’agit du '''processeur'''. Ce qu’il faut retenir, c’est que notre ordinateur contient un circuit, le processeur, qui permet d’effectuer de petits traitements de base qu’on appelle instructions et qui sont la base de tout ce qu’on trouve sur un ordinateur, et que c'estc’est en assemblant tous ces petits traitements de manière très précise que l'on peut obtenir des programmes complexes.
 
''Pour les curieux, il existe [http://www.siteduzero.com/tutoriel-3-509203-fonctionnement-d-un-ordinateur-depuis-zero.html un cours sur le fonctionnement d'un ordinateur] expliqué depuis zéro.''
Ligne 555 :
Le C possède aussi une caractéristique qui peut-être considérée à la fois comme un avantage et comme un défaut : c’est un langage de '''bas niveau'''. C'est-à-dire qu’il permet de programmer en étant proche de sa machine, en cherchant à vraiment comprendre ce que l’on fait. C’est à double tranchant : c’est plus difficile et plus long, mais on en apprend beaucoup sur sa machine et on a un grand contrôle sur ce que l’on fait. Cette notion de bas niveau est à opposer aux langages de '''haut niveau''', qui permettent de programmer en faisant abstraction d’un certain nombre de notions primordiales dans le cas d'un langage de bas niveau. Le développement est souvent plus facile et plus rapide, mais en contrepartie on voit moins bien le fonctionnement de la machine. Ces notions de haut et bas niveau sont néanmoins à nuancer, car elles dépendent du langage utilisé et du point de vue du programmeur.
 
Même si c'estc’est un langage qui ne sera pas abordé au long de ce cours, il me semble important d'évoquer le C++, dont vous avez peut-être déjà entendu parler. C’est un langage de programmation qui a été inventé dans les années 1980 par Bjarne Stroustrup, un collègue de Dennis Ritchie, qui souhaitait rajouter des éléments au C. Bien que très ressemblants à l’époque de sa création, ces deux langages sont aujourd’hui très différents (on ne programme pas et on ne réfléchit pas de la même façon en C qu’en C++). Ne croyez pas qu’il y a un langage meilleur que l’autre. Ils sont simplement différents. Si d’ailleurs votre but est d’apprendre le C++, je vous encourage à le faire directement. Contrairement à ce que l’on pense et dit souvent, il est tout à fait possible d'apprendre le C++ sans passer par l'apprentissage du C.
 
=== La norme ===
Ligne 573 :
L'intérêt principal des algorithmes est qu’ils sont très utiles lorsqu’ils sont en relation avec des ordinateurs. En effet, ces derniers peuvent exécuter plusieurs millions d'instructions à la seconde, et donc effectuer des calculs très complexes extrêmement rapidement. Illustrons : imaginez que vous deviez trier une liste de 10 nombres dans l’ordre croissant. C'est assez facile et faisable en quelques secondes. Et pour plusieurs milliards de nombres ? C'est parfaitement impossible pour un humain, alors qu'un ordinateur s'en occupera sans aucun problème.
 
Ce qu’il faut retenir, c'estc’est qu'un algorithme est une suite d'opérations destinée à résoudre un problème donné. Nous aurons l’occasion d'utiliser quelques algorithmes dans ce cours, mais nous ne nous concentrerons pas dessus. Si vous voulez en savoir plus, lisez le tutoriel sur [http://www.siteduzero.com/tutoriel-3-51781-algorithmique-pour-l-apprenti-programmeur.html l'algorithmique pour l'apprenti programmeur].
 
=== Le pseudo-code ===