Vous êtes sur la page 1sur 27

Exercice :

Exercice
Int a = 23 ; - Donner la valeur des variables après les instructions suivantes :
Int b Int
= 5i ;= 13;
Int jla=valeur
Affecter 5; de a à b et la valeur b à a.
i = i % 5; Programmation fondamentale
j = j * i + 2;
float k = (i * 71)
+ j)Introduction
/ 5;
i=? 2)? Concepts
j= k = ?et principes fondamentaux de la programmation

3) Constantes et variables
4) Typage
5) Opérateurs arithmétiques
6) Affectation
7) Algorithme
8) Mon premier programme
9) Lecture et Ecriture
10) Tester vos algorithmes (Algobox)
11) Instructions conditionnelles
12) Répétition conditionnelle d'instructions (Les boucles)
13) Les tableaux
14) Procédures et Fonctions
15) Travaux pratiques

Objectif du cours
Il s'agit de poser les notions de base de la programmation
- Concepts et principes fondamentaux de la programmation
- Algorithme
- Expressions et instructions.
- Constantes et variables, affectation.
- Types de données simples : nombres entiers ou non entiers, booléens, caractères et chaînes
de caractères.
- Expressions et instructions conditionnelles.
- Répétition conditionnelle d'instructions (boucle tant que). Répétition non conditionnelle
d'instructions (boucle pour).
- Fonctions et procédures. Paramètres formels, paramètres effectifs et autres.

1. Introduction
1.1 Informatique
1) Théorie et traitement de l'information à l'aide de programmes mis en œuvre sur
ordinateurs.

2) Domaine d'activité scientifique, technique, et industriel concernant le traitement


automatique de l'information numérique par l'exécution de programmes informatiques par
des machines : des systèmes embarqués, des ordinateurs, des robots, des automates, etc.

3) L'informatique regroupe tout ce qui traite autour du traitement automatique de


l'information : Internet, les ordinateurs, les télécommunications. Il existe des métiers très
distincts dans le domaine informatique : webmaster, technicien maintenance,
administrateur de serveur informatique...

4) Informatique est la compression entre information et automatique.

1.2 Programme informatique (Application -


Logiciel)
Un programme informatique est un ensemble d'opérations
destinées à être exécutées par un ordinateur.
Un programme source est un code écrit par un informaticien
dans un langage de programmation. Il peut être compilé vers
une forme binaire ou directement interprété.

1.3 Pourquoi utiliser un programme Informatique ?

Votre ordinateur est une machine bizarre, c'est le moins que l'on puisse dire. On ne peut
s'adresser à lui qu'en lui envoyant des 0 et des 1. Ainsi, si je traduis « Fais le calcul 3 + 5 » en
langage informatique, ça pourrait donner quelque chose comme (j'invente, je ne connais quand
même pas la traduction informatique par cœur) :
0010110110010011010011110
Ce que vous voyez là, c'est le langage informatique de votre ordinateur, appelé langage binaire
(retenez bien ce mot !). Votre ordinateur ne connaît que ce langage-là et, comme vous pouvez le
constater, c'est absolument incompréhensible.
Donc voilà notre premier vrai problème :
Comment parler à l'ordinateur plus simplement qu'en binaire avec des 0 et des 1 ?
Votre ordinateur ne parle pas l'anglais et encore moins le français. Pourtant, il est inconcevable
d'écrire un programme en langage binaire. Même les informaticiens les plus fous ne le font pas,
c'est vous dire !
Eh bien l'idée que les informaticiens ont eue, c'est d'inventer de nouveaux langages qui seraient
ensuite traduits en binaire pour l'ordinateur. Le plus dur à faire, c'est de réaliser le programme qui
fait la « traduction ». Heureusement, ce programme a déjà été écrit par des informaticiens et nous
n'aurons pas à le refaire (ouf !). On va au contraire s'en servir pour écrire des phrases comme : «
Fais le calcul 3 + 5 » qui seront traduites par le programme de « traduction » en quelque chose
comme : «0010110110010011010011110».
Le schéma suivante résume ce que je viens de vous expliquer.

2. Concepts et principes fondamentaux de la programmation


La programmation informatique peut se résumer à l’écriture de code informatique appelé code
source. Ce code source a un seul et unique objectif: vous permettre de communiquer avec la
machine qui doit l’exécuter. Cette machine peut être votre ordinateur ou encore votre
smartphone. Cet ensemble de code informatique constitue donc un programme informatique.
Comprendre ce qu’est la programmation informatique, c’est bien. Savoir pourquoi on fait de la
programmation informatique, c’est mieux. L’utilité première de votre programme informatique
sera de résoudre un problème. Vous pouvez chercher par exemple à identifier sur une carte tous
les restaurants de votre ville ou encore à créer un agenda en ligne.
Cela nous amène au point qu’avant d’écrire votre programme informatique, votre mission en tant
que développeur informatique sera de décomposer ce problème en plusieurs étapes. Ce sont ces
étapes que votre machine devra exécuter.
Dans le cas d’une carte affichant les restaurants, votre programme informatique devra ainsi
récupérer la carte à afficher, l’afficher sur l’écran de votre ordinateur et récupérer les adresses
des restaurants pour les situer sur votre carte. Vous y mettrez aussi des conditions disant par
exemple que si le restaurant est à plus de 5km de votre ville, de l’exclure de votre carte etc. Ces
actions et conditions constituent un algorithme. La création de cet algorithme sera donc la
première étape avant de vous jeter à corps perdu dans l’écriture de votre programme
informatique.
Il existe des milliers de manières de communiquer avec votre machine. Ces modes de
communication sont les langages informatiques . C’est donc en utilisant ces langages que vous
écrirez votre programme informatique. Apprendre la programmation informatique passe donc
aussi par l’apprentissage d’un ou plusieurs langages de programmation informatique.

2.2 Comment choisir votre langage de programmation ?


Votre choix de langage informatique dépendra de votre maîtrise de la programmation
informatique. Certains langages ont une syntaxe et une logique qui peuvent paraître complexes
lorsque l’on débute. Sur les forums dédiés à la programmation, chacun y va de son avis sur le
sujet. Les cours proposés aux réels débutants sur les sites de cours en ligne tel que le nôtre
peuvent aussi vous donner une bonne indication du ou des langages de programmation
considérés comme étant accessibles. Il ne vous restera plus qu’à essayer et c’est bien entendu là
le gros du travail.
Après la simplicité du langage informatique vient l’utilité de ce dernier. Si vous souhaitez
créer un site internet, vous n’opterez pas pour le même langage de programmation que la
personne souhaitant développer un jeu vidéo.
Prenons le cas où vous souhaitez lancer un site web. Votre point de départ sera probablement
l’apprentissage du HTML5 et du CSS3. Ces 2 langages sont à la base de tout site web et
disposent d’une syntaxe simple. Le premier vous permettra de créer la structure de votre page
web, d’insérer et d’afficher vos contenus textes et multimédia. Le CSS mettra tout votre contenu
en forme (couleur de texte, bordures, ombres, …).
Pour aller plus loin et rendre votre site web dynamique et interactive, apprendre le Javascript
peut être une bonne suite à la découverte du HTML et du CSS. Apprendre ce langage de
programmation dès le début présente plusieurs avantages. Le Javascript est un langage mobile.
Cela signifie qu’il vous permettra autant de développer un site web que de réaliser une
application mobile. La communauté de développeurs informatiques utilisant ce langage est très
importante. Cela vous permettra de trouver plus rapidement des réponses aux questions que vous
vous poserez nécessairement durant votre apprentissage.

2.3 Programmer, c'est quoi ?


Programmer signifie réaliser des « programmes informatiques ». Les programmes demandent à
l'ordinateur d'effectuer des actions.
Votre ordinateur est rempli de programmes en tous genres :
• La calculatrice est un programme ;

• Votre traitement de texte est un programme ;


• Votre logiciel de « chat » est un programme ;
• Les jeux vidéo sont des programmes.
En bref, les programmes sont partout et permettent de faire a priori tout et n'importe quoi sur un
ordinateur. Vous pouvez inventer un logiciel de cryptage révolutionnaire si ça vous chante, ou
réaliser un jeu de combat en 3D sur Internet, peu importe. Votre ordinateur peut tout faire.

2.4 Programmer, c'est dur ?


Voilà une question qui doit bien vous torturer l'esprit. Alors : faut-il être un super-mathématicien
qui a fait 10 ans d'études supérieures pour pouvoir commencer la programmation ?
La réponse, que je vous rassure, est non. Non, un super-niveau en maths n'est pas nécessaire. En
fait tout ce que vous avez besoin de connaître, ce sont les quatre opérations de base :
• L'addition ;

• La soustraction ;
• La multiplication ;

• La division.

Notez qu'un programmeur a aussi besoin de certaines qualités comme :


• La patience : un programme ne marche jamais du premier coup, il faut savoir persévérer !
• Le sens de la logique : pas besoin d'être forts en maths certes, mais ça ne vous empêchera
pas d'avoir à réfléchir. Désolé pour ceux qui pensaient que ça allait tomber tout cuit sans
effort !
• Le calme : non, on ne tape pas sur son ordinateur avec un marteau. Ce n'est pas ça qui fera
marcher votre programme.
En bref, et pour faire simple, il n'y a pas de véritables connaissances requises pour programmer.
Un nul en maths peut s'en sortir sans problème, le tout est d'avoir la patience de réfléchir. Il y en
a d'ailleurs beaucoup qui découvrent qu'ils adorent ça !
2.5 En résumé
• Pour réaliser des programmes informatiques, on doit écrire dans un langage que
l'ordinateur « comprend ».
• Il existe de nombreux langages informatiques que l'on peut classer par niveau. Les langages
dits de « haut niveau » sont parfois plus faciles à maîtriser au détriment souvent d'une
perte de performances dans le programme final.
• Le code source est une série d'instructions écrites dans un langage informatique.
• Le compilateur est un programme qui transforme votre code source en code binaire, qui
peut alors être exécuté par votre processeur.
• La programmation ne requiert pas en elle-même de connaissances mathématiques poussées
(sauf dans quelques cas précis où votre application doit faire appel à des formules
mathématiques, comme c'est le cas des logiciels de cryptage). Néanmoins, il est
nécessaire d'avoir un bon sens de la logique et d'être méthodique.

3. Constantes et variables

3.1 Constantes
La manière la plus simple de manipuler des valeurs dans un programme est d’écrire directement
ces valeurs. Ainsi, on pourra écrire 24 pour désigner un nombre entier, 176.54 pour désigner le
12
nombre réel correspondant, 2.54E+12 pour désigner le nombre 2.54 × 10 , ’a’ pour indiquer un
caractère, "Jean-Paul" pour désigner une chaîne de caractères, et true pour indiquer la valeur
booléenne «vrai ».
Toutes ces valeurs sont des constantes. Je peux par exemple demander à un programme
d’afficher le résultat de l’opération 1+1. Le seul problème est bien entendu que si je souhaite
effectuer une autre opération, il faudra modifier le programme, par exemple en écrivant 1+2. Or
l’un des intérêts de la programmation est justement de pouvoir décrire une démarche opératoire
qui reste la même alors que les données du problème peuvent changer. Par exemple, il est clair
que l’opération «créditer un compte bancaire » correspond au même algorithme et au même
programme, quels que soient le solde initial du compte et le montant dont on doit le créditer.
Il est donc indispensable de ne pas rester limité à l’emploi de constantes dans les programmes
informatiques.

3.2 Variables
Le but d'un programme est de faire quelque chose avec des données ou, en d'autres termes, avec
les choses que vous mettez dans votre programme. Souvent, votre programme utilisera une ou
plusieurs variables pour manipuler les données. Plus précisément, une variable est un conteneur
utilisé pour stocker un élément de données dont votre programme pourrait avoir besoin.
Comme mentionné dans la vidéo, une variable peut être vue comme une boîte qui contient une
valeur. Cette boîte est stockée sur une étagère dans un entrepôt gigantesque. L'emplacement de
chaque boîte de cet entrepôt est soigneusement enregistré, tout comme votre ordinateur
enregistre l'emplacement de votre variable en mémoire.
La programmation est basée sur ces deux concepts nécessaires, les variables et les instructions.
Sans eux, rien ne serait possible.
Les variables correspondent aux récipients utilisés dans une recette et les instructions aux
différentes étapes de la recette. En suivant les étapes de la recette, les instructions du programme,
nous manipulons des aliments dans les récipients, ce qui correspond aux données que nous
mettons dans les variables. Ces manipulations vont faire évoluer les aliments en quelque chose
de nouveau.
Dans les recettes, la chimie permet de transformer les aliments en un produit fini tout nouveau,
avec une texture et un comportement spécifique. En programmation, ce sont les mathématiques
qui vont jouer ce rôle de transformateur sur les données dans les variables. À vous de choisir vos
instructions avec soin pour obtenir les bonnes transformations et aller vers le résultat attendu.

Ces boites sont stockées dans la


mémoire vive de l’ordinateur, c’est-
à-dire les barrettes de RAM.
RAM signifie Rapide Access
Memory, ou Mémoire à Accès
Rapide en français.

Une donnée placée dans une variable s'appelle une valeur. En utilisant l'analogie des boîtes,
différentes boîtes peuvent stocker différentes valeurs. Par exemple, vous pouvez utiliser une
boîte pour ranger de l'argent pour vos dépenses courantes et une autre pour économiser en vue
d'une occasion particulière, comme un voyage. Vous pouvez également vider les boîtes ou
changer leur contenu quand vous ajoutez ou retirez de l'argent.
Pour savoir à quoi sert chaque boîte, vous devez les étiqueter. Avec la programmation, c'est la
même chose : vous attribuez un nom à votre variable.
Le nom d'une variable doit refléter la signification de son contenu, comme des étiquettes sur une
boîte. Voici quelques recommandations générales pour la création de noms :
• utilisez des noms descriptifs tout au long de votre code.
Ça risque d'être un peu long ! Cependant, les noms descriptifs sont bien pratiques à long
terme pour vous et pour votre équipe, car ils offrent une meilleure lisibilité et facilitent
ainsi la compréhension du code pour les autres développeurs. Par exemple, si vous voulez
stocker des cookies sans sucres, l'utilisation d'un nom descriptif comme
cookiesSansSucres est bien plus précis que, disons, cookies ou cookiesSains.
• Soyez complet.
Évitez si possible d'abréger ou de raccourcir les mots, même si une version plus courte
semble évidente. Par exemple, chiffreDAffairesAnnuel est préférable à chifAfAnn.
• Suivez une convention d'appellation commune.
L'une des conventions d'appellation les plus populaires est le Camel Case : une phrase
composée de plusieurs mots sans espaces ni ponctuation. Le premier mot est écrit en
minuscules et tous les autres mots commencent par une majuscule. Par exemple,
monBudget.

• son nom c'est-à-dire sous quel nom est déclarée la variable ;


• son type, c'est la convention d'interprétation de la séquence de bits qui constitue la variable.
Le type de la variable spécifie aussi la longueur de cette séquence (8 bits, 32 bits, 64
bits) ;
• sa valeur, c'est la séquence de bits elle-même, elle ne peut varier au cours du temps si on
utilise le mot-clef const ;
• son adresse, c'est l'endroit dans la mémoire où elle est stockée ;
• sa portée, c'est la portion de code source où elle est accessible, par exemple, la portée d'une
variable (non globale) en C s'entend de sa définition à la fin du bloc où elle est définie.
• sa visibilité,
c'est un ensemble de règles qui fixe qui peut utiliser la variable (exemple :
mots-clefs public, private, protected, ou le masquage d'une variable par une autre) ;
• sa durée de vie, c'est le temps d'exécution pendant laquelle la variable existe. En C et en
C++ une variable contenue dans un bloc de code limité par des accolades "{}" possède la
durée de vie correspondant au temps d'exécution de ce bloc. Il ne faut pas confondre la
durée de vie d'une variable locale et sa visibilité, ou sa portée : une variable hors de
portée (ex : masquée par une autre), existe toujours.
Toutefois on peut trouver des langages qui restreignent ces caractéristiques :
• le PHP ne possède pas un typage fort, comme une grande partie des langages scripts ;
• le Prolog ne permet pas qu'une variable change de valeur au cours du temps une fois la
première identification faite ;
• la visibilité de la variable est public par défaut en C ;
• la notion de pointeur en C++ est remplacée par la notion de référence en Java, en Prolog
l'adresse d'une variable n'est pas accessible au programmeur.

4. Typage
En programmation, il est nécessaire de stocker des données. Les données sont stockées en
mémoire. Les emplacements de mémoire qui stockent des données sont appelés variables.
le type de variable est un peu comme le type des récipients. Chaque récipient appartient à une
grande famille. Il y a les saladiers, les poêles, les faitouts, etc.
Chaque famille de récipient s’utilise d’une manière qui lui est propre, offre des services
spécifiques.
Retenez qu’une variable va être limitée en fonction de son type tout comme un récipient est
limité en fonction de sa famille.
De même, je peux additionner des nombres, pas des caractères.
Enfin, dans les faits cela dépend du langage que vous utilisez. J’entre plus dans les détails ci-
dessous.
Il y a 4 grands types en programmation :
• les nombres entiers
• les nombres flottants, c’est-à-dire les nombres avec une virgule, Reel
• les chaines de caractères
• les booléens
Sachez qu’il existe une certaine diversité pour chacun de ces types, pour chaque langage. Vous
devez regarder les caractéristiques de votre langage pour connaitre les types existants et leurs
caractéristiques.
Chaque emplacement de mémoire peut stocker un type de données spécifique. La taille de la
mémoire pour chaque type de données est différente. Dans les langages de programmation tels
que Python, le programmeur n'a pas besoin de déclarer le type de la variable. Dans les langages
de programmation tels que Java, le programmeur doit déclarer le type de variable. Il existe un
certain nombre de types de données tels que char, int, float et double. Le type de données char est
utilisé pour stocker une valeur de caractère unique. Le type de données int est utilisé pour stocker
des valeurs numériques sans points décimaux. Les types de données float et double sont utilisés
pour stocker des valeurs numériques avec des points décimaux.
– boolean : booléen, peut valoir true ou false
– byte : entier sur 8 bits [-128, 127]
– char : caractère Unicode codé sur 16 bits
– short : entier codé sur 16 bits [-32 768, 32 767]
– int : entier codé sur 32 bits
– long : entier codé sur 64 bits
– float : réel codé sur 32 bits, au format IEEE
– double : réel double précision codé sur 64 bits, au format IEEE
NB : Le float nécessite moins de mémoire que le double.

4.2 comment peut-on nommer les variables


Les noms possibles dépendent du langage que vous utilisez. Je vous laisse regarder la
documentation de votre langage pour en savoir plus.
En général les noms des variables doivent respecter les règles suivantes :
• commencer par un caractère ou le signe _
• contenir des caractères, des chiffres ou des signes _
• ne pas contenir de caractère spécial, notamment pas d’espace
• ne pas être un mot réservé
Pour utiliser une variable, nom commençons par lui donner un nom et un type, cela s’appelle une
déclaration.
4.2 comment lire et modifier les variables
Nous savons maintenant ce qu’est une variable et à quoi cela sert : une zone mémoire avec un
nom, capable d’être lue et modifiée à l’envie.
Comment mettre une valeur dans une variable ? Cela s’appelle une affectation.
En pseudo-code, nous mettons une valeur avec la ligne suivante :
Age = 16, Nom = Appolon , prix =25.5 , result = true, style = A etc….

Voici quelques exemples de déclarations et d’initialisations valides :


boolean b = true; int i = 3; b = (i != 0); char c = ’A’; char newline = ’\n’; char apostrophe = ’\’’;
char delete = ’\377’; char aleph = ’\u05D0’; long somme = 456L; float val = -87.56; float cumul
= 76.3f; double pi = 3.14159; double large = 456738.65D; double veryLarge = 657E+234;

4.3 En pratique
Bon, c’est bien beau, je vous dis que la programmation n’est pas possible sans variable, mais
pour le moment ce n’est pas forcément si clair. Je vous propose donc un petit exemple
Calculer l’âge moyen d’une famille de 4 personnes
Réfléchissez à l’algorithme vous permettant de calculer l’âge moyen d’une famille de 4
personnes. Faites une pause et tentez, là tout de suite, d’écrire cet algorithme.
• Entier ageMere;
• Entier agePere;
• Entier ageEnfant1;
• Entier ageEnfant2;
• Reel ageMoyenFamille;

Pourquoi la variable ageMoyenFamille est-elle de type Réel ?


Nous aurions pu garder le type entier pour la variable ageMoyenFamille. Seulement le résultat de
la division d’un entier par un autre est rarement un nombre entier.
En effet, si vous divisez 4 par 2 ou 15 par 3, vous obtenez des entiers, 2 et 5 respectivement. Par
contre, si vous diviser 5 par 2 ou 16 par 3, vous obtenez des nombres réels, 2,5 et 5,33333333…
respectivement. Logiquement, en divisant par 4, vous avez 1 chance sur 4 d’obtenir un nombre
entier. Pour les 3 autres cas, vous aurez un nombre décimal, c’est-à-dire un nombre avec une
virgule.
Si vous mettez le type entier pour la variable ageMoyenFamille, vous allez perdre de
l’information, vous ne conserverez que la partie entière et perdrez tous les chiffres après la
virgule. En indiquant que la variable ageMoyenFamille est de type réel, c’est-à-dire que c’est un
nombre avec virgule, vous allez conserver cette information et vous pourrez donc l’afficher à la
fin du programme.
Ce n’est ici qu’une question de choix. Vous pouvez très bien vous satisfaire d’une moyenne
tronquée. Encore faut-il en être conscient.

Utiliser des variables

Après l'exécution de ce code :


Entier x = 5;
Quelle est la valeur de x ?

Après l'exécution de ce code :


Entier A = 7;
Entier B = 3;
Reel C = 3.12;
Entier D = B ;
Reel E = D + C
Reel F = E – A + 5 ;

Quelle est la valeur de F ?


Défi
On a
Entier A = 12
Reel B = 2.5
Changer la valeur de A en 2.5 et B en 12

Facile

En résumé
Voici ce que nous avons découvert dans ce module sur les variables :
Une variable est un moyen de stocker des valeurs. Pour utiliser une variable, on doit à la fois la
déclarer pour permettre au programme de la connaître puis on doit lui "affecter" une valeur pour
permettre au programme de savoir quelle valeur nous avons stockée dans la variable.
Voici comment déclarer une variable appelée Age
Entier Age,
Maintenant, on peut lui affecter la valeur 10 :
Age = 10,
Si on veut (et on le veut souvent ! ), on peut déclarer et affecter une variable en une seule
instruction :
Entier Age = 10,
Si, pour une raison quelconque, on veut modifier la valeur d'une variable, on peut lui réaffecter
une valeur :
Age = 20,

Comment choisir les noms de nos variables ?


• Les noms des variables peuvent commencer avec des lettres
• Ilsne peuvent pas commencer par un chiffre. "maVariable", "page_1", et "money3" sont des
exemples de noms de variables valides.
• Les noms des variables sont sensibles à la casse, ce qui signifie que "Age" est différent de
"age". Faites bien attention à cela.
• Les noms des variables doivent être clairs et significatifs. Par exemple, au lieu de "nt",
utilisez "noteEtudiant".
• Les noms des variables doivent utiliser le camel case (c'est-à-dire que la première lettre des
mots liés est en majuscule lorsqu'une variable est constituée de plusieurs mots), comme "
noteEtudiant " au lieu de "noteetudiant" ou "note_etudiant".

5. Opérateurs arithmétiques
Un jeu riche d’opérateurs pour écrire toutes sortes d’expressions arithmétiques et logiques est
disponible. Des règles de priorité entre opérateurs permettent d’écrire les expressions de la
manière la plus «naturelle » possible; par exemple, a + b * c équivaut à a + (b * c) et non à (a +
b) * c. Ceci étant, en cas de doute, rien ne vous empêche de parenthéser vos expressions.
Les opérateurs arithmétiques binaires sont présentés dans le tableau ci-après.
Op. Exemple Description / remarques

+ a+5 addition – ou concaténation de chaînes dans le cas particulier


de String

- b-c soustraction

* 13 * x multiplication

/ a/b Division

% 12 % 5 modulo (reste de la division euclidienne)

5.2 Opérateurs logiques et relationnels


Un opérateur relationnel compare deux valeurs. Les opérateurs logiques permettent d’opérer sur
des valeurs logiques, habituellement obtenues grâce à l’application d’opérateurs relationnels. Les
opérateurs relationnels sont les suivants :

Op. Exemple Description / remarques

> a>0 a Plus grand que 0

>= b >= c b Plus grand ou égal à c

< a<0 a Plus petit que 0

<= a <= b a Plus petit ou égal à b

== a == b test d’égalité a = b attention, ne pas confondre avec


l’affectation d’une valeur à une variable. C’est une
source d’erreur fréquente, qui peut avoir des
conséquences catastrophiques !

!= a != b test d’inégalité a différent de b

Les opérateurs logiques disponibles sont les suivants :

Op. Exemple Description / remarques

&& (a>0) && (b<0) et logique – le deuxième opérande n’est évalué que si le
premier opérande est vrai
|| (a>0) || (b<0) ou logique – le deuxième opérande n’est évalué que si
le premier opérande est faux

! !(b >= c) non logique

& (a>0) & (b<0) et logique – les deux opérandes sont toujours évalués –
Utilisation déconseillée

| (a>0) | (b<0) ou logique – les deux opérandes sont toujours évalués –


Utilisation déconseillée

Je vous conseille de prendre l’habitude d’utiliser par défaut les versions && et || des opérateurs
et/ou.

6 L’affectation
L’affectation est une opération fondamentale dans les langages de programmation impératifs.
Elle consiste à changer la valeur d’une variable, c’est-à-dire à stocker une nouvelle valeur à
l’emplacement désigné par la valeur de la variable. De manière conceptuelle, on la note
habituellement x ? y , qui signifie qu’on stocke la r-valeur de y à l’adresse désignée par la l-
valeur de x. En Java, cette opération s’écrit x = y .

Il est très fréquent d’ajouter ou de soustraire une valeur à une variable, par exemple d’écrire a =
a + 3; .Vous avez donc la possibilité d’écrire la même chose de manière raccourcie;
de même pour les autres opérations arithmétiques, ainsi que les opérations bit à bit :
a += 3; // équivaut à a = a + 3
a -= 3; // équivaut à a = a – 3
a *= 3; // équivaut à a = a * 3
a /= 3; // équivaut à a = a / 3
a %= 3; // équivaut à a = a % 3 a
etc.
Parmi ces opérations, le cas particulier de l’incrémentation et de la décrémentation est assez
fréquent pour justifier d’une notation particulière :

a++; // équivaut à a += 1 ou à a = a +1

++a; // équivaut à a++, sauf pour la valeur rendue

Exercice 1 : Moyenne
Faire la moyenne de 3 notes 16, 11, 20
Afficher le resultat

Exercice 2 : Calcul de repas


Vous mangez 12 semaines par an à la cantine, le prix
par repas est de 6$, sachant que vous mangez 3 fois par semaine.
Combien devez-vous payer à la fin de chaque année ?
Algorithme Cantine
Constante Semaine = 12 entier
Constante prix = 6 entier
Constatnte Quantite = 3 entier
Variable total reel
Début
Total = Semaine * prix * Quantite
Ecrire « Le resultat est : + Total«
Fin
Ecrire un programme qui permet de calculer la moyenne d’un étudiant à partir de trois notes.
Algorithme Moyenne
Variable note1 reel
Variable note2 reel
Variable note3 reel
Variable Total reel
Variable moyenne
Début
Ecrire “Entrer note 1”
Lire note1
Ecrire « Entrer note 2«
Lire note2
Ecrire «Entrer note 3 «
Lire note3
Total = note1 + note2 + note3
moyenne = Total / 3
Ecrire « Moyenne + moyenne«
Fin

Exercice 3 : Les abonnés youtube


Vous avez 8500 abonnés sur youtube au mois de mars, sachant
que vous gagnez exactement 700 abonnés par mois, combien d'abonnés
aurez vous au mois d'octobre ?

exercice 1 : 15,67
exercice 2 : 216 euros
exercice 3 : 13400 abonnée
7. Algorithme
Un algorithme est une manière de résoudre un problème.
Un algorithme est la description précise, sous forme de concepts simples, de la manière dont on
peut résoudre un problème.
Dans la vie de tous les jours, nous avons souvent besoin de résoudre des problèmes. Surtout si on
considère la notion de "problème" au sens large.
7.2 Omniprésence des algorithmes
Un exemple de problème qui nous concerne tous (oui, même vous) est celui de la cuisine : vous
êtes dans une cuisine, vous trouvez du riz, comment le cuire ? Voici une marche à suivre simple :
• remplir une casserole d'eau ;
•y ajouter une pincée de sel ;
• la mettre sur le feu ;
• attendre l'ébullition de l'eau ;
• mettre le riz dans la casserole ;
• le laisser cuire 10 à 15 minutes ;
• égoutter le riz.
J'ai décrit une solution au problème "il faut faire cuire du riz", sous forme de concepts simples.
Vous remarquerez qu'il y a pourtant beaucoup de choses implicites : j'ai précisé que vous étiez au
départ en possession du riz, mais il faut aussi une casserole, de l'eau, etc. On peut se trouver dans
des situations spécifiques où tous ces objets ne sont pas disponibles, et il faudra alors utiliser un
autre algorithme (ou commencer par construire une casserole...).
Les instructions que j'ai utilisées sont "précises", mais on pourrait préciser moins de choses, ou
plus. Comment fait-on pour remplir une casserole d'eau, plus précisément ? Si le cuisinier à qui
la recette est destinée ne sait pas interpréter la ligne "remplir une casserole d'eau", il faudra
l'expliquer en termes plus simples (en expliquant comment utiliser le robinet, par exemple).
De même, quand vous programmez, le degré de précision que vous utilisez dépend de nombreux
paramètres : le langage que vous utilisez, les bibliothèques que vous avez à disposition, etc.
Notion de structure de données
En plus de manipuler l'information, il faut aussi la stocker. La manière dont on organise cette
information stockée peut avoir des conséquences très importantes sur leur manipulation.
Concrètement, prenez par exemple un dictionnaire : on peut définir un dictionnaire comme "un
ensemble de mots et leur définition". Cependant, pourrait-on utiliser correctement un
dictionnaire dont les mots sont placés dans le désordre ? Certainement pas, parce qu'il serait très
difficile de trouver la définition d'un mot que l'on cherche (c'est encore possible, il suffit de lire le
dictionnaire page par page jusqu'à ce qu'on trouve le mot). L'ordre alphabétique est clairement
une solution très efficace pour pouvoir retrouver rapidement le mot que l'on cherche.
Il y a des liens forts entre les algorithmes (qui décrivent des méthodes) et les structures de
données (qui décrivent une organisation). Typiquement, certaines structures de données sont
indispensables à la mise en place de certaines méthodes, et à l'inverse certains algorithmes sont
nécessaires aux structures de données : par exemple, si on veut rajouter un mot dans un
dictionnaire classé alphabétiquement, on ne peut pas juste l'écrire dans l'espace libre sur la
dernière page, il faut utiliser un algorithme pour l'ajouter au bon endroit. L'étude des structures
de données est donc inséparable de celle des algorithmes.

7.3 Structure d’un algorithme


Un algorithme est composé de trois parties principales:
L’en-tête : cette partie sert à donner un nom à l’algorithme. Elle est précédée par le mot
Algorithme ;
La partie déclarative : dans cette partie, on déclare les différents objets que l’algorithme utilise
(constantes, variables, etc.) ;
Le corps de l’algorithme : cette partie contient les instructions de l’algorithme. Elle est
délimitée par les mots Début et Fin.

Algorithme Nom de l’Algorithme


Variables, Constantes etc…
Début
Instructions 1…
Instructions 2…
Instructions 3…
Fin

Nom de l’algorithme :
• Il permet tout simplement d’identifier un algorithme parmi d’autres.
• La partie entête d’un
algorithme permet tout simplement de donner un nom à notre
algorithme. Ce nom n’influence en rien le bon déroulement de l’algorithme.
• En générale il faut donner des noms parlants à nos algorithmes, ceci pour permettre au
lecteur d’avoir une idée de ce que fera l’algorithme qu’il lira.
Les déclarations :
C’est une liste exhaustive de variables utilisées et manipulées dans le corps de I ‘algorithme.
c’est une liste exhaustive des objets, grandeurs utilisés et manipulés dans le corps de
l’algorithme. Cette liste est placée en début d’algorithme.
Les Constantes :
Elles représentent des chiffres, des nombres, des caractères, des chaînes de caractères. … dont la
valeur ne peut pas être modifiée au cours de l’exécution de l’algorithme.
Une constante c’est une partie de l’algorithme qui permet de déclarer des constantes.
Une constante est un objet dont le contenu reste invariant lors de l’exécution d’un algorithme.
Les Variables :
Elles peuvent stocker des chiffres des nombres, des caractères, des chaînes de caractères,… dont
la valeur peut être modifiée au cours de l’exécution de l’algorithme.
Une variable est un objet dont le contenu peut changer au cours de l’exécution de l’algorithme.
Les Structures :
Elles permettent de rassembler plusieurs variables ou constantes sous un même identificateur, on
parle également d’entités ou d’objets.
Les constantes et les variables sont définies dans la partie déclarative par deux caractéristiques
essentielles, à savoir :
L’ identificateur :
Il représente le nom de la variable, de la constante ou de la structure. Il est composé
généralement de lettres mais peut également contenir et de chiffres. Il ne doit pas commencer par
des chiffres Il ne doit pas contenir d’espaces, de caractères de ponctuation ou de caractères
accentués (il existe des langages qui acceptent des caractères accentues au niveau de
l’identificateur).
Le type :
Il représente la nature de la variable ou de la constante (entier, réel, booléen, chaîne de
caractères…)
Exemples : var age : réel ; var sexe, adresse, ville : chaine ; var nbr_enfants , etage : entier ;
Le corps de l’algorithme :
Dans cette partie de l’algorithme sont placées les tâches (instructions opérations …) à exécuter
par notre algorithme.
Les commentaires :
• Pour permettre une lecture plus aisée et plus compréhensive de l’algorithme
• Remarque rend la ligne non-exécutable

•… // rend le reste de la ligne non-exécutable

Syntaxe
Algorithme nomAlgorithme
// Déclarations
Début
// Liste des instructions
Fin

8. Mon premier Algorithme


Exemple : Le plus petit algorithme
Voici le plus petit algorithme qui ne fait rien.
Algorithme monpremieralgorithme
Début
Fin

Algorithme moyenneEtudiantCetinfo
Variable note1 réel,
Variable note2 réel,
Variable note3 réel,
Variable noteTotal réel,
Variable moyenne réel
Début
ère
Ecrire « Entrer la 1 note »
Lire note1
Ecrire « Entrer la 2ème note«
Lire note2
ème
Ecrire « Entrer la 3 note«
Lire note3
noteTotal = note1 + note2 + note3,
moyenne= noteTotal / 3 ,
Ecrire « Moyenne : moyenne «
Fin

Algorithme Age
Variable Age entier
Début
Ecrire “ Entrer age ”
Lire Age
Si Age < 18
Ecrire “Mineur”
Sinon
Ecrire « Majeur«
Fin

9. Lecture et Ecriture
Trifouiller des variables en mémoire vive par un chouette programme, c’est vrai que c’est très
marrant, et d’ailleurs on a tous bien rigolé au chapitre précédent. Cela dit, à la fin de la foire, on
peut tout de même se demander à quoi ça sert.

En effet. Imaginons que nous ayons fait un programme pour calculer le carré d’un nombre,
mettons 12. Si on a fait au plus simple, on a écrit un truc du genre :

Variable A Reel
Début
A ← 12^2
Fin

D’une part, ce programme nous donne le carré de 12. C’est très gentil à lui. Mais si l’on veut le
carré d’un autre nombre que 12, il faut réécrire le programme. Bof.

D’autre part, le résultat est indubitablement calculé par la machine. Mais elle le garde
soigneusement pour elle, et le pauvre utilisateur qui fait exécuter ce programme, lui, ne saura
jamais quel est le carré de 12.

C’est pourquoi, heureusement, il existe des d’instructions pour permettre à la machine de


dialoguer avec l’utilisateur.

Dans un sens, ces instructions permettent à l’utilisateur de rentrer des valeurs au clavier pour
qu’elles soient utilisées par le programme. Cette opération est la lecture.

Dans l’autre sens, d’autres instructions permettent au programme de communiquer des valeurs à
l’utilisateur en les affichant à l’écran. Cette opération est l’écriture.

Remarque essentielle : A première vue, on peut avoir l’impression que les informaticiens
étaient beurrés comme des petits lus lorsqu’ils ont baptisé ces opérations ; puisque quand
l’utilisateur doit écrire au clavier, on appelle cette instruction la lecture, et quand il doit lire sur
l’écran on l'appelle l’écriture. Mais avant d’agonir d’insultes une digne corporation, il faut
réfléchir un peu plus loin. Un algorithme, c’est une suite d’instructions qui programme la
machine, pas l’utilisateur ! Donc quand on dit à la machine de lire une valeur, cela implique que
l’utilisateur va devoir écrire cette valeur. Et quand on demande à la machine d’écrire une valeur,
c’est pour que l’utilisateur puisse la lire. Lecture et écriture sont donc des termes qui comme
toujours en programmation, doivent être compris du point de vue de la machine qui sera chargée
de les exécuter, et non de l'utilisateur qui se servira du programme. Et là, tout devient
parfaitement logique. Et toc.

Les instructions de lecture et d’écriture

Tout bêtement, pour que l’utilisateur entre la (nouvelle) valeur de Titi, on mettra :

Lire Titi

Dès que le programme rencontre une instruction Lire, l’exécution s’interrompt, attendant la
frappe d’une valeur au clavier. L'interruption peut durer quelques secondes, quelques minutes ou
plusieurs heures : la seule chose qui fera exécuter la suite des instructions, c'est que la touche
Entrée (Enter) ait été enfoncée.

Aussitôt que c'est le cas, il se passe deux choses. Pour commencer, tout ce qui a été frappé avant
la touche Entrée (une suite de lettres, de chiffres, ou un mélange des deux) est rentré dans la
variable qui suit l'instruction Lire (ici, Titi). Et ensuite, immédiatement, la machine exécute
l'instruction suivante.

Lire est donc une autre manière d'affecter une valeur à une variable. Avec l'instruction
d'affectation, c'est le programmeur qui choisit à l'avance quelle doit être cette valeur. Avec
l'instruction Lire, il laisse ce choix à l'utilisateur.

Dans le sens inverse, pour écrire quelque chose à l’écran, c’est aussi simple que :

Ecrire Toto

Parenthèse : « les bonnes manières du programmeur » : avant de Lire une variable, il est très
fortement conseillé d’écrire des libellés à l’écran, afin de prévenir l’utilisateur de ce qu’il doit
frapper (sinon, le pauvre utilisateur passe son temps à se demander ce que l’ordinateur attend de
lui… et c’est très désagréable !) :

Ecrire "Entrez votre nom : "


Lire NomFamille

Lecture et Ecriture sont des instructions algorithmiques qui ne présentent pas de difficultés
particulières, une fois qu’on a bien assimilé ce problème du sens du dialogue (homme →
machine, ou machine ← homme).

Et ça y est, vous savez d’ores et déjà sur cette question tout ce qu’il y a à savoir…

Exercice
1. Ecrire un programme qui demande un nombre à
l’utilisateur, puis qui calcule et affiche le carré de ce
nombre.

2. Ecrire un programme qui demande son prénom à


l'utilisateur, et qui lui réponde par un charmant
« Bonjour » suivi du prénom.

3. Ecrire un programme qui lit le prix HT d’un article, le


nombre d’articles et le coût du transport, et qui fournit
le prix de revient correspondant. Faire en sorte que des
libellés apparaissent clairement.

4. Ecrire un programme qui lit le prix d’achat de 3


produits puis calcul 10% de tax et 5% de rabais et
affiche le résultat final à l’ecran.

Algorithme prixDachat
Variable produit1 reel
produit2 reel
produit3 reel
resultat reel
tax reel
rabais reel
resultatFinal
Debut
Ecrire ‘’’entrer produit1’’
Lire produit1
Ecrire ‘’’ entrer produit2’’
Lire produit2
Ecrire ‘’entrer produit3’’
Lire produit3
Resultat= produit1 + produit2+ produit3
Tax = resultat *1 0/100
Rabais= resultat *5/100
resultatFinal= resultat + tax - rabais
Ecrire ‘’ le resultat est + resultatfinal’’
fin

Algorithme carreNombre
variable nombre reel
Variable resultat reel
Début
Ecrire « Entrer un nombre«
Lire nombre
Resultat = nombre * nombre
Ecrire « Le resultat est Resultat «
Fin

Algorithme Salutation
Variable prenom chaine de caractere
Début
Ecrire «Entrer votre prenon «
Lire prenom
Ecrire « Bonjour + prenom «
Fin

Algorithme prix
Variable prixarticle
Variable nombrearticle
Variable couttransport
Variable prixderevient
Debut
Ecrire <Entrez prixarticle>
Lire prixarticle
Ecrire <entrez nombrearticle>
Lire nombrearticle
Ecrire <Entrez couttransport>
Lire couttransport
Prix de revient=prixarticle*nombrearticle+couttransport
Ecrire <Le prix de revient est +prixderevient>
Fin

10. Instructions conditionnelles


En informatique, une instruction conditionnelle, (aussi appelé expression conditionnelle), est
une fonction d'un langage de programmation, qui effectue différents calculs ou actions, en
fonction de l'évaluation d'une condition booléenne, à savoir vraie ou fausse.
Elles permettent de faire des choix dans un programme . Elles permettent d'altérer le
déroulement du programme en fonction de la valeur de conditions.
Selon qu’une certaine condition est vérifiée, on fera un certain traitement et si la condition n’est
pas réalisée on ne fera rien ou un autre traitement.

Algorithme Age
Variable age reel
Début
Ecrire “Votre Age”
Lire age
Si age > 17
Ecrire “Majeur”
Sinon
Ecrire “Mineur”
Fin

De 0 à 12 enfant
De 12 à 17 Ado
De 18 à 35 Jeune
De 36 à x Adulte
► Exemple du lancer de dé
Le principe
Choisir un nombre entier compris entre 1 et 6, l’indiquer à la machine.
Lancer un dé (utiliser le simulateur de tirage aléatoire).
Si le nombre affiché par la face supérieure correspond au nombre choisi afficher « Gagné »,
sinon afficher « Perdu ».
En langage naturel, une condition peut se formuler ainsi : « si… alors… sinon… ». En anglais et
dans plusieurs langages de programmation : « if… then… else… ». Éventuellement, une
instruction de fin de condition est ajoutée.

Si alors (sinon)
La structure si–alors (parfois appelé si–alors–sinon) est commune à de nombreux langages de
programmation. Bien que la syntaxe varie quelque peu selon le langage, la structure de base
(sous forme de pseudocode) ressemble à ceci :

If (condition booléenne) Then


(conséquent)
Else
(alternative)
End If

Quand un interprète trouve un Si, il attend une condition booléenne – par exemple, x > 0, ce qui
signifie « la variable x contient un nombre qui est supérieur à zéro » – et évalue cette condition.
Si la condition est vraie, les instructions suivant le alors sont exécutées. Dans le cas contraire,
l'exécution se poursuit jusqu'au branchement suivant – soit au niveau du block sinon (qui est
usuellement optionnelle), ou s'il n'y a pas de branchement sinon, alors après le fin Si.
Après qu'un branchement a été exécuté, le contrôle revient au point après fin Si.

Exercice 1 (Saison)
Écrivez un programme qui demande de taper «p» pour printemps, «e» pour été, «a» pour
automne, «h» pour hiver et affiche le nom de la saison correspondante. Le programme retournera
un message d’erreur si la lettre tapée ne correspond pas à une saison.
Exercice 2 (Rabais)
Un client achète N pommes. Chaque pomme a le même
prix. S’il achète plus que 5 pommes il obtient un rabais de
5%. S’il achète entre 3 et 5 pommes, il obtient un rabais
de 3%. S’il achète moins que 3 pommes, il n’y a pas de
rabais. Écrivez un programme qui calcule le prix total.
Exercice 3 (Moyenne de notes)
Écrivez un programme qui lit et calcule trois notes d’examens,
en précisant« éliminé » de 0 à 49, « ajournée » de 50 et 64 «
admissible » de 65 à 89 et « Excellent » de 90 à 100.
Exercice 4 (Moyenne de notes)
Ecrire un algorithme qui demande l’âge d’un
enfant à l’utilisateur. Ensuite, il l’informe de sa
catégorie :
• ”Bebe” de 0 à 5 ans

• ”Poussin” de 6 à 7 ans

• ”Pupille” de 8 à 9 ans

• ”Minime” de 10 à 11 ans

• ”Cadet” après 11 ans

Peut-on concevoir plusieurs algorithmes équivalents menant à ce résultat ?

11. Répétition conditionnelle d'instructions (Les boucles)

Dans certains cas, il est nécessaire d'exécuter les mêmes instructions un nombre de fois variable
selon les valeurs d'entrée de l'algorithme. Plus précisément, on répétera ces instructions tant
qu'une condition est remplie. Dans ce cas, on utilisera une boucle

Une boucle permet de répéter un traitement un certain nombre de fois.

Imaginez que vous ayez un bloc de code que vous devez répéter plusieurs fois. Vous pouvez
l'inclure dans une fonction et appeler cette fonction autant de fois que vous le voulez. Cela
pourrait faire l'affaire. Pourtant, la plupart du temps, vous ne savez même pas à l'avance combien
de fois vous devrez l'appeler.
Les boucles permettent de résoudre ce problème !
En programmation, une boucle est une technique qui permet de répéter une ou plusieurs
instructions sans avoir à retaper le même ensemble d'instructions plusieurs fois. Elle est parmi les
plus basiques et les plus puissantes des concepts de programmation. Une boucle dans un
programme d’ordinateur est une instruction qui se répète jusqu’à ce qu’une condition spécifiée
soit atteinte. Dans une structure en boucle, elle pose une question,et si la réponse exige une autre
action, elle sera exécutée automatiquement. La même question est posée successivement jusqu’à
ce qu’aucune action supplémentaire ne soit nécessaire. Cette action est communément appelée
itération.
9*1=9
9 * 2 = 18
Les boucles énumérées (Pour) sont des boucles qui sont utilisées si vous savez à l'avance
combien de fois vous voulez faire une boucle.

Les boucles conditionnelles sont également appelées boucles (Tant que).

Dans ce cas, la boucle doit continuer pendant que ("while") ou « aussi longtemps que ». Le
nombre de répétitions n'est pas défini par les limites inférieure et supérieure d'un énumérateur,
mais par une condition telle que celle d'une instruction "si".
Elle peut être interprétée comme « tant que l'expression logique est vraie, répétez les
instructions ».
Voilà comment cela fonctionne en détail :

1. Le programme vérifie que la condition est vrai (true).


2. Si l’expression est fausse (false) : les instructions sont ignorées. Vous n'entrez même pas
dans le corps de la boucle située entre { et }.

3. Si c'est true : la liste des instructions à l'intérieur de { et } sont exécutées.


4. Une fois les instructions exécutées, vous revenez à la première étape.

12. Les tableaux

En informatique, un tableau est une structure de données


représentant une séquence finie d'éléments auxquels on peut
accéder efficacement par leur position, ou indice, dans la
séquence. C'est un type de conteneur que l'on retrouve dans un
grand nombre de langages de programmation.

Imaginons que dans un programme, nous ayons besoin


simultanément de 12 valeurs (par exemple, des notes pour
calculer une moyenne). Evidemment, la seule solution dont nous
disposons à l’heure actuelle consiste à déclarer douze variables,
appelées par exemple Notea, Noteb, Notec, etc. Bien sûr, on
peut opter pour une notation un peu simplifiée, par exemple N1,
N2, N3, etc. Mais cela ne change pas fondamentalement notre
problème, car arrivé au calcul, et après une succession de douze
instructions « Lire » distinctes, cela donnera obligatoirement une
atrocité.
C’est tout de même bigrement laborieux. Et pour un peu que nous soyons dans un programme de
gestion avec quelques centaines ou quelques milliers de valeurs à traiter, alors là c’est le suicide
direct.

Cerise sur le gâteau, si en plus on est dans une situation on l’on ne peut pas savoir d’avance
combien il y aura de valeurs à traiter, là on est carrément cuits.
C’est pourquoi la programmation nous permet de rassembler toutes ces variables en une seule, au
sein de laquelle chaque valeur sera désignée par un numéro. En bon français, cela donnerait donc
quelque chose du genre « la note numéro 1 », « la note numéro 2 », « la note numéro 8 ». C’est
largement plus pratique, vous vous en doutez.

Un ensemble de valeurs portant le même nom de variable et


repérées par un nombre, s’appelle un tableau, ou encore une
variable indicée.
Le nombre qui, au sein d’un tableau, sert à repérer chaque
valeur s’appelle l’indice.
Chaque fois que l’on doit désigner un élément du tableau, on
fait figurer le nom du tableau, suivi de l’indice de l’élément,
entre parenthèses.
Dans notre exemple, nous créerons donc un tableau appelé Note. Chaque note individuelle
(chaque emplacement du tableau Note) sera donc désignée Note[0], Note[1], etc. Eh oui,
attention, les indices des tableaux, par convention, commencent généralement à 0, et non à 1.
Un tableau doit être déclaré comme tel, en précisant le nombre et le type de valeurs qu’il
contiendra (la déclaration des tableaux est susceptible de varier d'un langage à l'autre. Certains
langages réclament le nombre d'éléments, d'autre le plus grand indice... C'est donc là aussi une
affaire de conventions).
En nous calquant sur les choix les plus fréquents dans les langages de programmations, nous
déciderons ici arbitrairement et une bonne fois pour toutes que :
• les "cases" sont numérotées à partir de zéro, autrement dit que le plus petit indice est zéro.

On peut créer des tableaux contenant des variables de tous types : tableaux de
numériques, bien sûr, mais aussi tableaux de caractères, tableaux de booléens, tableaux
de tout ce qui existe dans un langage donné comme type de variables. Par contre, hormis
dans quelques rares langages, on ne peut pas faire un mixage de types différents de
valeurs au sein d’un même tableau.
L’énorme avantage des tableaux, c’est qu’on va pouvoir les traiter en faisant des boucles. Par
exemple, pour effectuer notre calcul de moyenne, cela donnera par exemple :
13. Procédures et Fonctions

Une application, surtout si elle est longue, a toutes les chances de devoir procéder aux mêmes
traitements, ou à des traitements similaires, à plusieurs endroits de son déroulement. Par
exemple, la saisie d’une réponse par oui ou par non (et le contrôle qu’elle implique), peuvent être
répétés dix fois à des moments différents de la même application, pour dix questions différentes.
La manière la plus évidente, mais aussi la moins habile, de programmer ce genre de choses, c'est
bien entendu de répéter le code correspondant autant de fois que nécessaire. Apparemment, on ne
se casse pas la tête : quand il faut que la machine interroge l'utilisateur, on recopie les lignes de
codes voulues en ne changeant que le nécessaire, et roule Raoul. Mais en procédant de cette
manière, la pire qui soit, on se prépare des lendemains qui déchantent...
D'abord, parce que si la structure d'un programme écrit de cette manière peut paraître simple, elle
est en réalité inutilement lourdingue. Elle contient des répétitions, et pour peu que le programme
soit joufflu, il peut devenir parfaitement illisible. Or, le fait d'être facilement modifiable donc
lisible, y compris - et surtout - par ceux qui ne l'ont pas écrit est un critère essentiel pour un
programme informatique ! Dès que l'on programme non pour soi-même, mais dans le cadre d'une
organisation (entreprise ou autre), cette nécessité se fait sentir de manière aiguë. L'ignorer, c'est
donc forcément grave.
En plus, à un autre niveau, une telle structure pose des problèmes considérables de maintenance :
car en cas de modification du code, il va falloir traquer toutes les apparitions plus ou moins
identiques de ce code pour faire convenablement la modification ! Et si l'on en oublie une,
patatras, on a laissé un bug.
Il faut donc opter pour une autre stratégie, qui consiste à séparer ce traitement du corps du
programme et à regrouper les instructions qui le composent en un module séparé. Il ne restera
alors plus qu'à appeler ce groupe d'instructions (qui n'existe donc désormais qu’en un exemplaire
unique) à chaque fois qu’on en a besoin. Ainsi, la lisibilité est assurée ; le programme devient
modulaire, et il suffit de faire une seule modification au bon endroit, pour que cette modification
prenne effet dans la totalité de l’application.
Le corps du programme s’appelle alors la procédure principale, et ces groupes
d’instructions auxquels on a recours s’appellent des fonctions et des sous-procédures.

Mauvaise Structure :

...
Ecrire "Etes-vous marié ?"
Rep1 ← ""
TantQue Rep1 <> "Oui" et Rep1 <> "Non"
Ecrire "Tapez Oui ou Non"
Lire Rep1
FinTantQue
...
Ecrire "Avez-vous des enfants ?"
Rep2 ← ""
TantQue Rep2 <> "Oui" et Rep2 <> "Non"
Ecrire "Tapez Oui ou Non"
Lire Rep2
FinTantQue
...

On le voit bien, il y a là une répétition quasi identique du traitement à accomplir. A chaque fois,
on demande une réponse par Oui ou Non, avec contrôle de saisie. La seule chose qui change,
c'est l'intitulé de la question, et le nom de la variable dans laquelle on range la réponse. Alors, il
doit bien y avoir un truc.
La solution, on vient de le voir, consiste à isoler les instructions demandant une réponse par Oui
ou Non, et à appeler ces instructions à chaque fois que nécessaire. Ainsi, on évite les répétitions
inutiles, et on a découpé notre problème en petits morceaux autonomes.

NB : Une fonction retourne un résultat à partir de données,


une procédure accomplit une tâche. Dans un cas on met
l'accent sur la transformation des données en résultat, dans
l'autre sur le traitement.

Vous aimerez peut-être aussi