Vous êtes sur la page 1sur 17

Algorithmique et programmation

Chapitre I
: Algorithm
et program ique
mation
1- Types de variables – Affectation

Algorithme et notion de variable


Définition : Un algorithme est une suite finie d’instructions à appliquer dans un ordre
déterminé à un nombre fini de données pour arriver, en un nombre fini d’étapes, à un certain
résultat.
En informatique, pour stocker un résultat, on utilise une variable. On peut se représenter une
variable comme une « boîte », un emplacement de la mémoire d’un ordinateur…Pour pouvoir
accéder à son contenu, on lui donne un nom.

Exemple : La tirelire de Camille


Pour ses 7 ans, Camille reçoit une tirelire qui contient 10€. Pour ses 8 ans, il reçoit
20€ qu’il met dans sa tirelire. Pour ses 9 ans, il reçoit 40€ qu’il met dans sa tirelire.
On peut utiliser une variable que l’on nomme C, qui contient la somme présente
dans la tirelire après chaque anniversaire.

7 ans 8 ans 9 ans


Le contenu Le contenu Le contenu
est de 10€. est de 30€. est de 70€.
Définition : Une variable est désignée par un nom.
Elle contient une valeur. On utilise cette année quatre types de valeurs :
- entier (nombre relatif) ;
- flottant (nombre à virgule, appelé flottant en informatique) ;
- chaîne de caractères : suite ordonnée de caractères ;
- booléen : variable qui ne prend que deux valeurs : Vrai ou Faux. Sa valeur est en
général donnée par un test.

Exemples :
• La variable C de l’exemple contient un premier nombre, auquel on ajoute 20, puis
40 : C est une variable de type flottant.
• La variable T qui contient le mot tirelire est une variable de type chaîne de
caractères : « tirelire » est un chaîne de huit caractères ; on dit qu’elle est de
longueur 8.
• La variable b qui contient le test (5>4) est de type booléen ; sa valeur est Vrai.
Définition : La longueur d’une chaîne de caractères est son nombre d’éléments. Le k e
élément d’une chaîne de caractères L est donné par L[k-1].
Le premier caractère de la chaîne T est t, son deuxième caractère est i, son troisième est r.
On note T[0]=t, T[1]=i, T[2]=r.
Les chaînes de caractères peuvent « s’ajouter », c’est-à-dire se mettre bout-à-bout.
Par exemple, si X=« 10 » et Y=« euros  », alors la chaîne X+Y est « 10euros ».
L’affectation
Dans l’exemple donné plus haut, on met d’abord 10€ dans la tirelire : la variable C prend la
valeur 10. La valeur de C augmente ensuite de 20 : on dit que C prend la valeur C+20. La
valeur de C augmente enfin de 40 : elle prend donc la valeur C+40.
Définition : Lorsqu’on donne à une variable X une valeur b, on écrit l’instruction X←b.
On lit : « X reçoit la valeur b » ou bien « X prend la valeur b » ou « la valeur b est affectée à
X ».

Suite d’instructions Valeur de la variable C après


correspondant à l’exemple l’exécution de chaque instruction
C←10 La valeur de C est 10.
C←C+20 La nouvelle valeur de C est 10+20,
C←C+40 soit 30.
La nouvelle valeur de C est 30+40
soit 70.
2- Programmation en Python
Programmer un algorithme, c’est traduire dans un langage compréhensible par un logiciel
donné, sur un ordinateur ou une calculatrice.
Nous allons utiliser dans la suite le langage de programmation Python.
La console Python
La console Python est une fenêtre dans laquelle on peut effectuer des calculs, définir des
variables et calculer avec ces variables, écrire et exécuter un programme.
On importe le module
math pour avoir accès à
certaines fonctions
mathématiques
(comme sqrt).
L’éditeur de programmes
C’est la fenêtre où l’on saisit un programme et où on pourra l’enregistrer. On peut ensuite
exécuter le programme dans la console.
Les résultats
S’affichent
dans
La console.
Les commandes de base
• Créer un nouveau programme : dans Fichier, choisir Nouveau.
• Instruction d’affectation : c ← a s’écrit en code Python : c=a.
• Pour séparer deux instructions successives d’un programme, on peut soit aller à la ligne, soir
séparer ces deux instructions par un point virgule (;).
• Pour exécuter un programme, cliquer sur (ou F5 ou Exécuter).

Les instructions de calcul


• Les symboles opératoires +, -, x, /, s’écrivent respectivement en Python : +, -, *, /.
• x à la puissance n s’écrit : x**n.
• Le reste de la division euclidienne de a par b s’écrit : a%b, et le quotient entier de cette
division s’écrit : a//b.
Avec le module math :
• La racine carrée de x (x ≥ 0) s’écrit : sqrt(x) et le nombre π s’écrit : pi.

Chaînes de caractères et booléens


• Les chaînes de caractères se définissent à l’aide de guillemets doubles ou simples.
• La longueur de la chaîne de caractère C s’écrit : len(C).
• Le ke élément de a chaîne de caractères C est C[k-1].
• Le booléen Vrai est : True. Le booléen Faux est : False.
3- Les fonctions
Pour écrire un programme, on peut utiliser une fonction, sur le modèle des fonctions
numériques étudiées en mathématiques.
Exemple de fonction
La taille d’un cadre de vélo (en centimètres) peut être évaluée par la formule
deux points
t=0,66*e, où e est la longueur de l’entrejambe du cycliste exprimée en
centimètres.

La taille t est une fonction de la variable e.

Pour programmer ce calcul, on va ainsi définir une fonction, comme en


mathématiques : on lui donne un nom, tcadre et on dit qu’elle a pour
argument e. indentation

En langage Python, on définit cette fonction par la commande def suivi du


nom de la fonction, puis son argument e , entre parenthèses, suivi de deux
points.

Les autres instructions sont indentées par rapport à la première ligne.

Après le calcul de t, on renvoie le résultat par la commande return.


Pour calculer la taille d’un cadre de vélo pour un cycliste d’entrejambe 80
cm, on saisit tacdre(80) dans la console : on trouve 52,8 cm.
Définition : Une fonction est un bloc d’instructions qui a reçu un nom, dont le
fonctionnement dépend d’un certain nombre de paramètres (les arguments de la fonction)
et qui renvoie un résultat (au moyen de la commande return).
Programmation d’une fonction en langage Python
• La programmation d’une fonction commence toujours par
def, suivi du nom que l’on donne à la fonction, suivi des
arguments de la fonction : cette ligne se termine par deux
points (:).
• Les deux points marquent le démarrage du bloc
d’instructions définissant la fonction : toutes ces instructions
sont indentées, c’est-à-dire décalées vers la droite par rapport
à la première ligne.

On ajoute en tête de chaque ligne du bloc le même nombre


d’espaces.
• Le résultat est obtenu par l’instruction return.
• On peut utiliser une fonction dans la console en donnant des
valeurs aux arguments (dans le bon ordre).def nom_fonction (liste des
arguments) :
{bloc d’instructions}
return (résultat)
Propriétés : • Une fonction ne renvoie qu’un seul résultat (ce peut être un couple de
nombres).
• Une fonction peut n ’avoir aucun argument. Par exemple, la
fonction imp() ci-contre peut être utilisée dans un programme
où on résout des équations.
• Une fonction peut être appelée dans un autre programme : il suffit pour cela de l'insérer
dans une instruction en saisissant son nom et les valeurs des arguments. La valeur appelée
put être stockée dans un variable.

Exemple :
La fonction f est appelée dans le programme de la fonction rep. Ainsi, rep(5)
renvoir « lalalalala ».
Si C est une chaîne de caractères, 5*C est la chaîne C+C+C+C+C.
4- Séquence d’instructions
Instruction conditionnelle

Séquence d’instructions
Un algorithme est constitué d’instructions écrites l’une après l’autre : on dit qu’on écrit une
séquence d’instructions.
On va a la ligne après chaque instruction, ou bien on peut les séparer par un point-virgule.
Instruction conditionnelle : exemple et définition

Exemple :
Un producteur de pommes vend ses pommes 1,20€ au kg, mais, à partir de 30 kg
de pommes achetées, il vend ses pommes 0,90€ au kg. On veut créer une séquence
d’instructions qui, à partir d’une quantité donnée de pommes achetées, donne le
montant de la facture du client. Pour cela, on doit introduire une instruction
conditionnelle : si la quantité q de pommes est inférieure à 30 kg, la dépense est
égale, en euros à 1,2*q, sinon la dépense est égale, en euros à 0,9*q+9. On définit
deux variables de type flottant
Si q<30 Si :qlaestquantité q et
inférieur la dépense d.
à 30
|Alors d ←1,2*q Alors la dépense est 1,2*q
|Sinon d Sinon la dépense est
←0,9*q+9 0,9*q+9
Fin si

C’est la structure alternative « Si…Alors…Sinon…  » qui permet d’écrire l’instruction


conditionnelle : un test est effectué sur une condition C, et le résultat du test décide de
l’exécution de la phase de traitement.
Si {condition C} Si la condition C est vérifiée, seules les instructions A
|Alors {instructions A} sont exécutées.
|Sinon {instructions B} Si la condition C n’est pas vérifiée, seules les instructions
Fin si B sont exécutées.

Remarque : On peut aussi utiliser la structure incomplète : Si {condition C}


« Si…Alors…  » : dans ce cas, si la condition C n’est pas |Alors {instructions A}
vérifiée, l’exécution de l’algorithme continue après le Fin si. Fin si
Programmation en Python
• En langage Python, il n’y a pas d’instructions pour indiquer la fin de l’instruction
conditionnelle : c’est l’indentation qui décale vers la droite les instructions A et B.
• Les deux points situés en première ligne après la condition C marquent le début du bloc
d’instruction A et les deux points situés après le « else » marquent le début du bloc
d’instructions B.
• Le fait de taper les deux points puis Entrée pourifpasser à la ligne
{condition C} : provoque l’indentation
automatique dans l’éditeur (si l’éditeur est ainsi paramétré).
{instructions A}
else :
{instructions B}

Tests en Python
a==b : a est-il égal à b ? a!=b : a est-il différent de b ?
a>=b : a est-il supérieur ou égal a<=b : a est-il inférieur ou égal à
àb? b?
a>b : a est-il supérieur à b ? a<b : a est-il inférieur à b ?

Exemple :
On saisit dans la console c=3, puis c==5. On affecte à c la valeur 3, puis on teste si c
contient 5 : c==5 est un booléen. Puisque c n’a pas la valeur 5, son affichage
donnera : False.
5- Boucle bornée et boucle non bornée
Boucle bornée (for)

Exemple :
Emma dépose 100€ sur un compte, puis chaque mois, elle dépose 20€. On veut
connaître le solde du compte n mois plus tard.
On définit une variable s : on affecte d’abord à celle-ci la valeur 100, puis on répète n
fois l’opération consistant à ajouter 20 à s. Le nombre de répétitions (ou itérations)
est connu au départ puisque c’est le nombre de mois.
s ←100 La variable s est initialisée à 100.
Pour k variant de 1 à n faire Début de la boucle : k prend le valeur 1.
|s ← s+20 On ajoute 20 à s pour avoir la nouvelle valeur
Fin pour de s.
Fin de la boucle : si k est inférieur à n, k
augmente de 1, sinon on sort de la boucle.
Définition : La boucle bornée « Pour k variant de…à… » permet d’exécuter un nombre de
fois fixé un même bloc d’instructions dans un algorithme.
Pour k variant de d à n faire En Python :
|{instructions}
Fin pour

D et n sont deux entiers. La variable k prend successivement toutes les valeurs entières de d
à n, et le bloc d’instructions sera exécuté à chaque fois que k prend une de ces valeurs.
Remarques :
• L’instruction for k in range(n) fait parcourir à la variable k tous les entiers de 0 à n-1 (soit
n valeurs).
• Dans le cas ci-dessus, l’augmentation des valeurs de k est constante, égale à 1 : c’est le
« pas ». On peut obtenir une augmentation constante avec un pas égal à p (entier) avec
l’instruction for k in range(d,n,p).
Boucle non bornée (while)

Exemple :
Cette fois-ci, après son premier dépôt de 100€, Emma dépose 20€ chaque mois tant
que la somme reste inférieure à 500€.
On cherche au bout de combien de mois elle stoppe ses dépôts d’argent.
On doit répéter la même opération qu’avant, tant que s reste inférieur à 500.
Pour cela, on teste si s est inférieur à 500 en début de boucle et le traitement dans la
boucle est réalisé tant que cette condition est vérifiée.
Pour compter le nombre de mois, on introduit un « compteur » c, initialisé à 0, et dont
la valeur augmente d’une unité à chaque parcours de la boucle.
En sortie de la boucle, c contient le nombre de mois cherché.

c ←0
s ←100 La variable s est initialisée à 100.
Tant que s<500 faire Début de la boucle : si s est supérieur ou égal à 500, on sort de
|s ←s+20 la boucle.
|s ←c+1 On ajoute 20 à s pour avoir la nouvelle valeur de s.
Fin Tant que On incrémente le compteur c d’une unité.
Fin de la boucle.
Définition : La boucle bornée « Tant que…» permet d’exécuter un même bloc
d’instructions tant qu’une condition reste vraie ; celle-ci est testée en début de boucle.

En Python :
Tant que {condition c} faire
|{instructions}
Fin Tant que

Vous aimerez peut-être aussi