Maths, Informatique, Jeux
Site Web réalisé par Frédéric et François WANG
Répertoire principalInformatiqueProgrammationLes bases de la programmation

Sommaire

Introduction

Les principes de la programmation

La particularité des ordinateurs est de pouvoir retenir en mémoire des données ainsi que les opérations à leur faire subir. Ces suites d'opérations sont appelées programme, et sont écrites en langage machine, qui est le seul langage directement compréhensible par l'ordinateur.

Cependant, la programmation en langage machine n'étant pas chose aisée, il a fallu créer des langages qui s'éloignent du langage machine comme les langages d'assemblage. Ils facilitent le travail du programmeur grâce à un codage symbolique des instructions. Par exemple les variables peuvent être désignées par un nom. Malgré cela, le programme, représentant exactement le langage machine de l'ordinateur, reste incompatible avec des machines différentes.

Pour remédier à cela, il a fallu inventer des langages de haut niveau qui sont eux, indépendants de la machine. Leurs programmes se présentent sous forme de texte appelé code source qui peut être lu par l'ordinateur de deux manières :

Quelques langages de programmation

Voici les deux langages que je vous conseille, car il ne sont pas réduit à des applications particulières, et que de nombreux autres langages en sont dérivés. Cependant, il faut savoir qu'il en existe beaucoup d'autres.

D'autres langages sont arrivés avec internet, pour les apprendre, vous pouvez aller voir sur le site que vous trouverez dans la partie Liens de notre site. Notons que à part pour Java, tous les autres ne nécessitent qu'un simple éditeur de texte pour être programmés. L'interpréteur du code source n'est alors tout simplement que votre navigateur...

Quelques conseils

Avant de commencer à programmer, réfléchissez toujours au moyen de résoudre le problème à traiter (à l'aide d'un algorithme par exemple), cela vous permettra d'éviter les erreurs inutiles et les pertes de temps. Vous en profiterez alors pour mettre des commentaires dans votre code source. Croyez-moi, même si cela peu semblez embêtant au début, cela facilite bien des choses pour vous y retrouver dans votre programme (mais aussi pour d'autres personnes qui pourraient y être intéressées).

Structure d'un programme

L'analyse descendante

Structurez votre programme à l'aide de la méthode dite d'analyse descendante. Celle-ci oblige à s'occuper d'abord de l'essentiel. Voici un schéma sur lequel le Problème à traiter est partagé en 3 tâches A, B et C elle-même partager en sous-tâches. On peut continuer ainsi jusqu'en bas, c'est-à-dire jusqu'aux petits détails.

Schéma danalyse descendante
Les principaux avantages de l'Analyse descendante sont :

La structuration permet de présenter un programme bien ordonné (ce n'était pas vraiment le cas de nos premiers programmes QBASIC...), et cela est, au même titre que les commentaires, très important pour s'y retrouver dans son programme.

Les sous-programmes

Intéressons-nous maintenant aux sous-tâches du programme. Ces sous-parties sont appelés sous-programmes. Le programme peut donc être construit ainsi (exemple BASIC) :

'Programme principal CLS PRINT "Choisissez un sport :" PRINT PRINT "1 Foot" PRINT "2 Tennis" PRINT "3 Basket" PRINT PRINT "0 Quitter" PRINT WHILE INSTR("0123", tt$) = 0 OR tt$ = "": tt$ = INKEY$: WEND IF tt$ = "1" THEN GOSUB Foot IF tt$ = "2" THEN GOSUB Tennis IF tt$ = "3" THEN GOSUB Basket PRINT "A bientôt !" END ' Sous-programme Foot Foot: PRINT "Jouons au foot !" SLEEP RETURN ' Sous-programme Tennis Tennis: PRINT "Jouons au Tennis !" SLEEP RETURN ' Sous-programme Basket Basket: PRINT "Jouons au Basket !" SLEEP RETURN

Ce programme illustre ce qui a été dit dans l'analyse descendante, on a d'abord programmé le module principal, puis il faut s'occuper des sous-programmes. On pourra partager ce travail : des programmeurs s'occuperont du Sous-programme Foot, un autre groupe du Sous-programme Tennis et enfin un dernier pour le Sous-programme Basket.

L'instruction GOSUB appelle les sous-programmes et RETURN retourne au module principal en continuant à partir de l'instruction GOSUB qui a appelé le sous-programme. Ces constructions avec GOSUB...RETURN forment un programme structuré contrairement à l'instruction GOTO qui a tendance à désordonner le programme.

Il est aussi intéressant de pouvoir transmettre des informations aux sous-programmes. Ainsi, lorsque l'on doit souvent répéter les même actions dans un programme, on peut demander à un sous-programme de faire l'action selon certains paramètres. Par exemple en QBASIC :

'Programme principal DECLARE SUB Aff (Texte$, x%, y%, Couleur%) CLS CALL Aff("Salut", 10, 10, 15) CALL Aff("Yahoo !", 25, 5, 10) CALL Aff("Ouaf !", 45, 20, 5) CALL Aff("Snif !", 55, 10, 14) END ' Sous-programme Aff SUB Aff (Texte$, x%, y%, Couleur%) LOCATE y%, x%: COLOR Couleur%: PRINT Texte$ END SUB

La Procédure Aff permet d'éviter de répéter LOCATE y%, x%: COLOR Couleur%: PRINT Texte$. On peut aussi imaginer que l'on ne transmet pas de paramètre à la SUB et les structures du type GOSUB...RETURN deviennent inutiles.

On peut encore faire mieux : imaginons un sous-programme qui renvoie une valeur en fonction des paramètres qu'on lui envoie. Cela conduit au concept des FUNCTION du QBASIC. Les procédures deviennent alors à leur tour inutiles, puisqu'on peut considérer qu'une SUB est une FUNCTION qui ne renvoie rien. Ainsi, en C ou encore en javascript, tous les sous-programmes sont des fonctions.

/* Fonction C qui retourne le carré de nombre */ unsigned short carre(char nombre) { return nombre*nombre; }

Le codage des données

La base binaire

L'unité d'information la plus simple de l'ordinateur est le Bit, qui peut prendre deux valeurs (0 ou 1). A partir de ces bits, on peut fabriquer des nombres en base 2. C'est le même principe qu'en base 10, celle que nous utilisons :

Base 10

Base 2

 

Un ordinateur peut manipuler plusieurs bits en même temps pour former des Mots. Ainsi le premier microprocesseur (intel 4004) ne pouvait manipuler que des mots de 4 bits, alors que la plupart des microprocesseurs actuels peuvent maintenant lire des mots de 32 bits (voir plus). Un mot de 8 bits est appelé Octet et correspond à un « caractère » (Attention, en anglais un octet se dit Byte, il ne faut pas confondre avec Bit !). D'une manière générale, avec un mot de N bits, on peut écrire 2N symboles différents.

Nombres et chaînes de caractères

Sur un octet, on peut former 28 = 256 entiers différents : de 0 à 255 pour les entiers non signés et de -128 à 127 pour les entiers signés. De la même manière, sur deux octets, on formera 216 = 65536 entiers différents.

Mais si l'on ne veut pas se limiter à des nombres entiers, on doit construire des variables flottantes en simple/double précision, se codant respectivement sur 32 et 64 bits :

Pour garder en mémoire du texte, on utilise une chaîne de caractères qui est une suite d'octets. Il y a deux manières de les coder :

Conditions et opérateurs logiques

Les conditions sont constamment utilisées en programmation. Il est donc nécessaire de pour relier plusieurs conditions entre elles de connaître les opérateurs logiques qui permettent de faire des opérations entre les propositions (conditions).

ABNON AA ET BA OU BA OU exclusifA IMPLIQUE B
vraivraifauxvraivraifauxvrai
vraifauxfauxfauxvraivraifaux
fauxvraivraifauxvraivraivrai
fauxfauxvraifauxfauxfauxvrai
Voici comment se lit la première ligne de la table. Si A est vrai et que B est vrai, alors :

Par convention, chaque fois que A est faux, alors "A IMPLIQUE B" est vrai. Pour plus d'informations, voir le calcul propositionnel.

En programmation, les opérations logiques peuvent s'effectuer de deux manières différentes :

Cette page est conforme aux normes du W3C - Auteur : Frédéric WANG - Dernière mise à jour : jeudi 29 décembre 2005
Valid XHTML 1.1 Valid MathML 2.0 Valid SVG Valid CSS Amaya, the W3C browser/editor Déclaration qualité Opquast Foxkeh banners for Firefox 2