• Aucun résultat trouvé

PRINCIPES GÉNÉRAUX DE LA PROGRAMMATION .1 Choix du langage de programmation

3. MÉTHODOLOGIE DE PROGRAMMATION

3.1 PRINCIPES GÉNÉRAUX DE LA PROGRAMMATION .1 Choix du langage de programmation

Plusieurs possibilités :

 le langage peut être imposé à priori (disponibilité, stratégie d'entreprise, connaissance préalable du programmeur, etc.). La méthode de résolution choisie devra alors tenir compte de ces caractéristiques.

 le choix du langage est ouvert. Il devra être fait en fonction du type du problème (calcul scientifique, gestion , application système, etc.).

Un autre point de vue est qu'un langage de programmation n'est que le support de la pensée et le programme obtenu doit être, si possible, indépendant du langage choisi.

Dans tout ce qui suit, le langage utilisé pour illustrer les exemples sera le C++.

3.1.2 Méta langage

Un métalangage est un langage utilisé pour décrire un algorithme. Des conventions sont utilisées pour décrire les différentes opérations autorisées (affectation, boucle, etc.).

3.1.3 Commentaires

Un programme est destiné à être lu. C'est pourquoi il est indispensable de le commenter.

Exemple

// Ceci est un commentaire

Situation

Une analyse de la situation du programme est nécessaire. Dans tout ce qui suit, les situations seront décrites entre les délimiteurs // .

3.1.4 Règles d'or de la programmation

Clarté

La lisibilité d'un programme est essentielle à sa maintenance et à son développement. Il faut toujours se rappeler qu'un programme est destiné avant tout à être utilisé par d'autres et qu'il est appelé à évoluer.

Dans une entreprise, tout programmeur devra, en principe, être capable de comprendre sa structure et de le modifier.

Le programme devra être présenté de telle sorte qu'on puisse comprendre, rien qu'en le voyant, sa structure globale. Il doit être clair, lisible, bien présenté.

Contre-exemple x = a; y = b;

x = x-y; y = y-x; x = y-x; y = x-y; // que valent (x,y,z) après exécution de l'instruction

Nom des objets

Les noms des objets (variables, fonctions, procédures) doivent être appropriés.

Exemple

float r; // que représente r ? float rayon // c'est mieux

Identification des procédures

Chaque procédure ou fonction doit être identifiée par une en tête qui spécifie son action, ses arguments et leur domaine de validité, ses effets de bord et ses limitations. Ces entêtes doivent respecter un format uniforme permettant l'extraction automatique d'un manuel de référence à partir du texte du programme.

Les variables devront être regroupées par type, thèmes, etc.

Des commentaires devront indiquer :

 la méthode de résolution choisie,

 la description des conventions utilisées pour nommer les variables,

 les fonctions et les procédures utilisées,

 les bibliothèques appelées,

 les éventuelles astuces de programmation (à éviter en principe).

Exemple

// programme de résolution d'une équation du 2° degré // coefficients de l'équation a, b ,c à valeurs réelles // solution réelles et complexes

// Programmeur : tartempion le 10 Janvier 2018 // variables utilisées

// float a, b ,c ; // etc.

3.2 GRAMMAIRE

3.2.1 Langage et grammaire

Tout langage de programmation est défini par l'utilisation de règles très précises que le programmeur devra respecter de façon impérative. Certains langages sont très rigoureux de telle sorte que le programmeur n'ait aucun choix possible à part le bon (langage PASCAL).

D'autres sont plus permissifs (langage C).

Chaque langage a ses propres règles de grammaire.

3.2.2 Syntaxe et sémantique

Syntaxe

La syntaxe d'une instruction est son mode d'emploi. Elle est vérifiée par le compilateur ou l'interprète de commandes qui procède à une analyse syntaxique préalablement à toute exécution.

Sémantique

Sa sémantique correspond à l'action qu'elle exécute.

Pour qu'un programme fonctionne correctement, les deux conditions suivantes sont nécessaires et non suffisantes : il doit être correct sur les plans syntaxique et sémantique car certaines instructions peuvent être correctes sur le plan syntaxique et fausses sur le plan sémantique.

Exemple En C, l'instruction

if (i = 1)

est syntaxiquement correcte et sémantiquement fausse.

3.2.3 Mots clés

Le langage est constitué par un ensemble de mots clés qui représentent les instructions autorisées. Ils ont une syntaxe d'utilisation définie par sa grammaire.

Exemple

La liste ci-dessous récapitule pratiquement la totalité des mots clés du langage C.

Déclarations de type

char double enum float int long short signed sizeof struct typedef union unsigned void

Déclarations de la classe de mémorisation auto extern register static const volatile

Structures de contrôle

break case continue default do else for goto if return switch while

3.2.4 Représentation interne des objets

Les différents objets que l'on manipule peuvent être (liste non exhaustive) :

 des nombres (entiers, relatifs, réels, complexes),

 des caractères (français, allemand, russes, etc.),

 du son,

 de l'image,

 etc.

Ils ont une représentation digitale interne en fonction des déclarations de type qui la masquent.

3.2.5 Objets de base du langage

Tout langage de programmation permet de manipuler des objets dits "de base". Ainsi, le C permet de manipuler des objets scalaires (entiers, réels, caractères), des vecteurs sous forme de tableaux. A chacun de ces objets est associé un ou plusieurs types :

objet déclaration de type

entier naturel int, short, unsigned entier relatif int, short, signed rationnel float, double

réel float, double

caractère char

vecteur tableau

etc.

3.2.6 Construction d'objets complexes

A partir des objets de base, il est possible de construire des objets complexes, par exemple les tableaux.

Rappelons qu'un tableau est un ensemble d'objets de même type stockés consécutivement en mémoire dont chaque élément est accessible par un indice relatif au premier élément.

Exemple

int a[100]; // un tableau de 100 entiers

Il est également possible de construire des objets de types composites appelés enregistrements ou structures.

Exemple

La structure constituée des informations nom, prenom, adresse permet de définir un individu. D'autres informations peuvent être ajoutées.

struct individu {char nom[20] ; char prenom[20] ; char adresse[50] ;};

struct complexe {float x ; float y};

3.2.7 Opérations sur les objets de base

Les opérateurs du langage permettent de faire des opérations sur les objets de base. On distingue :

 les opérateurs arithmétiques +, -, *, /, % (opérateur modulo)

 les opérateurs logiques et, ou , non,

 les opérateurs relationnels, qui permettent de faire des comparaisons entres objets.

Certains langages permettent de redéfinir le comportement des opérateurs. Ainsi, il est possible en C++

de (re)définir l'opérateur + pour qu'il permette d'additionner des matrices. Ce principe est appelé la surcharge des opérateurs.