Conseils de programmation
[le guide du mieux-programmeur(euse)]

Contenu

  1. Avant-propos
  2. Ce qu'il vaut mieux savoir
  3. Comment résoudre l'exercice 4 de la série...
  4. Quelques recommendations pour l'écriture du code


Avant-propos

L'unique but de ce petit guide consiste à énumérer quelques petits trucs utiles vous évitant le suicide après quelques séances (ça permet également aux assistants d'aller boire une bière travailler ardemment, mais évitons des polémiques inutiles).

Je vous recommande également de lire la rubrique « Comment résoudre l'exercice 4 de la série...»  écrite par un de mes chers confrères assistants.

Attention ! C'est un peu long et fatiguant à lire sur un écran, donc je vous conseille d'imprimer cette page, ou du moins de lire en priorité les paragraphes marqués d'un « en clair »

[..]


Ce qu'il vaut mieux savoir sur l'ordinateur

Voici quelques postulats (pour les physiciens) ou axiomes (pour les mathématiciens) de base à propos d'un ordinateur.
  1. Un ordinateur est obtus

    On peut se convaincre aisément de cette affirmation en se rappelant qu'un ordinateur est un automate programmable, comme vous la dit le Prof. [..] dans son cours.
    C'est-à-dire qu'il ne va comprendre ou faire que ce qu'on lui a dit de comprendre ou de faire, ni plus ni moins. C'est pas gagné, mais on va lui expliquer lentement et clairement, histoire qu'il comprenne.

    Pour la programmation, cela signifie que même si vous trouvez que remplacer les points virgules à la fin de chaque instruction par des W majuscules est la plus importante innovation artistique depuis le cubisme, l'ordinateur risque malgré lui d'étouffer dans l'oeuf votre immense potentiel créatif.

    en clair
    Respectez toujours la syntaxe au signe et à la lettre près quand vous programmez.
    Il suffit d'un espace en trop, ou d'un « n » à la place du « m » dans « main » par exemple, pour qu'il y ait une erreur à la compilation.
    Beaucoup d'erreurs sont de ce type lorsqu'on débute en programmation et qu'on ne connaît pas encore bien « l'orthographe » du langage.

en clair
  1. Quand vous ne trouvez pas d'où vient l'erreur, demandez à votre voisin de regarder à votre place. Un autre regard sur votre problème peut parfois faire des miracles.
    Et comme on [=les assistants] vient de finir notre bière de tout à l'heure de répondra aux questions d'un autre étudiant, on peut aussi venir y mettre notre grain de sel.
  2. Regardez la ligne qui précède celle où le compilateur a détecté l'erreur et vérifiez s'il ne manque pas un point-virgule, une parenthèse, un crochet ou autre chose d'anormal.
    Si vous ne trouvez rien, remontez plus haut, etc.
    Servez-vous également de l'indentation et de la mise en évidence syntaxique d'(X)Emacs pour détecter le problème.
  3. Essayer de comprendre ce que le compilateur vous dit, en vous aidant au besoin de votre voisin, ou d'un assistant (s'il en reste un pas trop assoifé surchargé).

On signalera aussi que certaines erreurs dépendent les unes des autres. Certaines d'entres elles peuvent d'ailleurs en entraîner toute une cascade : quand vous oubliez ou quand vous faîtes une erreur dans la syntaxe de la déclaration des bibliothèques au début du programme par exemple.
Si la bibliobliothèque est mal déclarée (i.e. mal inclue) -> le compilateur ne la trouve pas -> quand ensuite, il rencontre des commandes définies dans la biblio et utilisées dans votre programme, il ne les comprend pas, car elles n'ont pas été définies dans votre programme, et, en vertu du postulat 1), il ne sait pas où les chercher.

Exemple : l'oubli de «#include <iostream>» dans le programme entraînera une erreur sur quasiment chaque appel à cin, cout, endl, ...

[Texte originel de Jérôme Kopp]


Comment résoudre l'exercice 4 de la série 3...

Voilà une petite marche à suivre, qui peut être appliquée non seulement pour réaliser l'exercice 4 de la série 3, mais aussi la plupart des exercices et séries qui viennent ensuite.

Rappel de l'énoncé :

Écrivez un programme age.cc qui :
  1. demande son âge à l'utilisateur ;
  2. lit la réponse de l'utilisateur et l'enregistre dans une variable age de type entier ;
  3. calcule l'année de naissance (à un an près) de l'utilisateur et l'enregistre dans la variable annee de type entier ;
  4. affiche l'année de naissance ainsi calculée.
Compilez et exécutez votre programme.
  1. Squelette de base

    Commencez systématiquement votre programme en écrivant le squelette suivant : #include <iostream> using namespace std; int main() { } Naturellement, si votre programme ne comporte pas d'entrées/sorties (ce qui est rare pour un programme, mais arrive fréquemment en compilation séparée), il n'est pas nécessaire d'include <iostream>.
    Par ailleurs, si vous savez déjà que vous devrez utiliser des fonctions de la bibliothèque mathématique, des chaînes de caractères, des vectors, etc. vous pouvez également préciser les autres bibliothèques dont vous aurez besoin (<cmath>, <string>, <vector>, ...).
Ce sont les seules variables utiles pour ce programme.
Remarque :
Comme il n'y a pas de valeurs initiales pertinentes pour ces variables, (c'est l'utilisateur qui, lors du fonctionement du programme, précisera ce qui peut tenir lieu de valeurs initiales), et qu'il n'y a pas de raison d'utiliser ces variables avant leur première affectation, il n'est pas obligatoire de les initialiser lors de la déclaration (bien que cela soit tout de même conseillé).
Le programme devient alors (rappel : entier -> int) : #include <iostream> using namespace std; main() { int age; // variable identifiée en (1), non initialisée ! int annee(0); // variable identifiée en (2), initialisée à 0 /* * ATTENTION: PAS D'ACCENTS DANS LES NOMS DE VARIABLES, * DE FONCTIONS, DE TYPES, ..., ETC. */ }
[Texte originel de Grégoire Krähenbühl]


[merci aux assistants, à l'origne de ces informations]
Dernière mise à jour : $Date: 2006/10/03 11:16:30 $   ($Revision: 1.1.1.1 $)