Sfa 23 24 Algo Et C Agitel

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 87

INITIATION A L’ALGORITHMIQUE

ET A LA PROGRAMMATION
EN LANGAGE C

Licence 1 Mathématiques et informatique (MI)


2024 – 2025

Dr MAMBE Moïse
Objectifs et plan du cours
❑ Objectifs
- Apprendre les outils de base de l'algorithme et de la programmation;
- Être capable de mettre en œuvre ces outils pour analyser des problèmes
simples et écrire les programmes correspondants.

❑ Plan
Chapitre 1 : Généralités sur l’algorithmique
Chapitre 2 : Opérations de base
Chapitre 3 : Structures de décision
Chapitre 4 : Structures de répétition)
Chapitre 5 : Structures de données élémentaires : les tableaux
Chapitre 6 : Fonctions et procédures
Chapitre 7 : Bases de la programmation en Langage C
2
Chapitre 1
Généralités sur l’algorithmique
et la programmation

3
Démarche de programmation

Pour palier un problème dont la résolution peut être confiée à un ordinateur, il faut
une bonne démarche de programmation.

La démarche de programmation se déroule en quatre (04) phases:


➢ Identifier le problème : quelle(s) donnée(s), quel(s) résultat(s) ?
➢ On cherche par quel moyen, on pourra obtenir les résultats cherchés à partir des
données dont on dispose. C’est l’étape d’analyse du problème qui aboutit à un
procédé de résolution appelé algorithme;
➢ On traduit la solution dans un langage de programmation;
➢ Compiler le programme pour qu'il puisse soit exécutable par la machine.
4
Algorithmique
L’algorithmique désigne la discipline qui étudie les algorithmes et leurs
applications en Informatique. Une bonne connaissance de l’algorithmique permet
d’écrire des algorithmes exacts et efficaces.

L’algorithme vient du célèbre mathématicien et astronome perse


Muhammad ibn al-Khwarizmi, le père de l'algèbre, qui formalisa
au IXème siècle la notion d'algorithme.

L'algorithme le plus célèbre est l'algorithme d'Euclide (vers 300 avant J.-C.)
permettant de calculer le PGCD de deux nombres dont on ne connait pas la
factorisation.
5
Définition d’algorithme
Définition 1: Un algorithme est une suite d’instructions ayant pour but de résoudre
un problème donné. Ces instructions doivent être exécutées de façon automatique
par un ordinateur.

Définition 2: Un algorithme est un cheminement à suivre dans la résolution d’un


problème donné. C’est une procédure de calcul bien définie, qui prend en entrée
une valeur ou un le
L'algorithme ensemble de valeurs,
plus célèbre et qui produit
est l'algorithme en sortie,
d'Euclide (vers une
300 valeur ou un
avant J.-C.)
ensemble de valeur

Un algorithme peut par exemple, se comparer à une recette de cuisine


✓ Le résultat c’est comme le plat à cuisiner
✓ Les données sont comparables aux ingrédients de la recette
✓ Les règles sont les directives ou instructions de la recette
6
Propriétés d’un algorithme
Propriété 1: Un algorithme doit:
– avoir un nombre fini d’étapes;
– avoir un nombre fini d’opérations par étape;
– se terminer après un nombre fini d’opérations;
– fournir un résultat.

Propriété 2: Chaque opération doit être :


– définie rigoureusement et sans ambiguïté;
– effective, c-à-d réalisable par une machine.

Exemple d’opérations : Entrer votre nom ; calculer 3+9 ; saisir le numéro de


téléphone de ton correspondant; etc.

7
Représentation d’un algorithme
Historiquement, deux façons pour représenter un algorithme:
L’Organigramme :
- représentation graphique avec des symboles
(carrés, losanges, etc.)
- offre une vue d’ensemble de l’algorithme
- représentation quasiment abandonnée aujourd’hui

Le pseudo-code :
- représentation textuelle avec une série de conventions ressemblant
à un langage de programmation
- plus pratique pour écrire un algorithme
- représentation largement utilisée

NB : Pour ce cours, nous utiliserons le « pseudo-code)


8
Syntaxe générale de l’algorithme (en Pseudo code)
En tête
Algorithme Nom_de_lAlgorithme (donner un nom qui identifie
l’algorithme)

Déclaration de tous les objets dont on


a besoin pour décrire la méthode de Zone de déclaration
résolution (Variables, constantes, etc.) (déclarer tous les objets )

Début
instruction 1 Corps de l’algorithme
…………… (Description de la méthode de
instruction n résolution)
Fin

9
Partie déclarative

Dans la construction d’un raisonnement algorithmique on peut manipuler des


objets tel que des nombres, des noms de personne, des adresses mail, etc.

Avant d'utiliser n'importe quel objet algorithmique, il faut le déclarer au niveau de


la partie déclarative de l'algorithme.

Ces objets algorithmiques sont regroupés dans cette partie en plusieurs natures
on peut citer les constantes, les types, les fonctions, les procédures, les
variables, etc.

Cette année nous verrons les constantes, les variables, les types et les
fonctions.

10
Corps de l’algorithme

Contient l’ensemble des instructions applicables sur l’ensemble des objets


algorithmiques déjà déclarés au niveau de la partie précédente (déclarative). Ces
instructions se divisent essentiellement en trois catégories:
- Les instructions simples : Entrées de données (lecture), sorties de résultats ou
message (écriture) , affectations,…;
- Les structures décisionnelles (conditionnelles) : Ce sont des structures de
contrôle permettant d’exposer les solutions à prendre lorsque l’on est confronté à
des situations (traitements) ;
- Les structures itératives (répétitives) : Ce sont des structures de contrôle
permettant de répéter un ensemble de traitements autant de fois qu’on veut.
11
Un premier exemple d’algorithme

Algorithme NombrePair

Variables
nbre, res : entiers
Début
écrire (‘Quel nombre voulez-vous vérifier?’)
lire(nbre)
res ← nbre mod 2
Si (res = 0) alors
écrire (nbre, ‘ est pair. ’)
Sinon
écrire (nbre, ‘ est impair. ’)
Finsi

Fin 12
Séquence des instructions

Les opérations d'un algorithme sont habituellement exécutées les unes à la suite
des autres, de façon séquentielle (de haut en bas et de gauche à droite).

L'ordre est important.


On ne peut pas changer cette séquence de façon arbitraire.

Par exemple, enfiler ses chaussettes puis enfiler ses chaussures n’est pas pareil à
enfiler ses chaussures puis enfiler ses chaussettes.

Voilà pourquoi l’algorithme est aussi défini comme un ensemble d’opérations


ordonnées pour apporter une solution à un problème.
13
Programmation
Définition: Un programme correspond à la description d’une méthode de
résolution pour un problème donné. Cette description est effectuée par une suite
d’instructions d’un langage de programmation.

Exemples de programmes

14
Langage de programmation
Définition: Le langage de programmation est un code de communication,
permettant à un être humain de dialoguer avec une machine en lui soumettant des
instructions et en analysant les données matérielles fournies par le système.

➢ Le langage informatique est l’intermédiaire entre le programmeur et la machine.


➢ Il permet d’écrire des programmes (suite consécutive d’instructions) destinés à
effectuer une tache donnée.
➢ Deux types de langages
✓ Langages procéduraux : Fortran, Cobol, Pascal, C, Visual basic…
✓ Langages orientés objets : C++, Java, C#,…

15
Algorithme et programme
➢ L’élaboration d’un algorithme précède l’étape de programmation.
✓ Un programme est un algorithme (la réciproque est fausse).
➢ L'algorithme est indépendant du langage de programmation.
(Par exemple, on utilisera le même algorithme pour une solution en langage Java,
ou bien en C++ ou encore en Visual Basic).
➢ La rédaction d’algorithmes est un exercice de réflexion qui se fait généralement sur
du papier, mais il existe des applications informatiques pour les implémenter .
Par exemple :

Application Mobile (Android) Application PC

16
Chapitre 2
Les opérations de bases

17
Notion et définition de variable
➢ En algorithme, on peut définir une variable comme un objet algorithmique pour
représenter une entité du monde réel qui peut prendre plusieurs valeurs en des
instants différents, mais une seule à la fois.

➢ Une variable sert à stocker la valeur d’une donnée dans un langage de


programmation.

➢ En programmation, une variable désigne un emplacement mémoire dont le


contenu peut changer au cours d’un programme (d’où le nom de variable).

➢ Chaque emplacement mémoire a un numéro qui permet d'y faire


référence de façon unique : c'est l'adresse mémoire de cette cellule.

18
Identificateurs : règles
Un identificateur (le nom d’un objet algorithmique) est un mot constitué d’un
nombre quelconque de caractères pris dans la liste suivante :
❖ tous les caractères minuscules de a à z
❖ tous les caractères majuscules de A à Z
❖ tous les chiffres de 0 à 9
❖ le caractère _
Pour être valable, un identificateur ne doit pas contenir d’autres caractères
que cette liste, et ne doit pas commencer par un chiffre.
L’identificateur doit être différent des mots réservés du langage (par exemple en
langage C: int, float, double, switch, case, for, main, return, …).
La longueur du nom doit être inférieure à la taille maximale spécifiée par le
langage utilisé.
Remarque : Pour la lisibilité des algorithmes, il faut opter pour des identificateurs
simples et significatifs.
19
Par exemple, age est un meilleur choix que x pour désigner l'âge d’une personne.
Identificateurs : Exemple
- Les identificateurs suivants sont valables :
Hellow , Ma_Procedure, _1, Numero2

- Ceux-ci ne le sont pas :


1var (commence par un chiffre)
Question ? (caractère ? interdit)
Arrêt (commence ê interdit)
Demi-mot (caractère -interdit)
Deux mots (espace interdit)

20
Types des variables

Le type d’une variable détermine l’ensemble des valeurs qu’elle peut


prendre. Les types de base sont :

➢ Type entier (numérique) : (ensemble des entiers relatifs)


➢ Type réel (numérique) : Ensemble des réels
➢ Type booléen (logique) : deux valeurs VRAI ou FAUX
➢ Type caractère : lettres majuscules, minuscules, chiffres, symboles,..
Exemple : ’A’, ’b’, ’1’, ’?’, …
➢ Type chaîne (Chaine de caractères) : toute suite de caractères
Exemple : " " , " Nom, Prénom", ‘code postale: 1000’, …

21
Déclaration des variables
La déclaration de variables est effectuée par la forme suivante :

Variable
liste d'identificateurs (séparé par des virgules) : type

Exemple:
Variable
age, i : entier
moyenne : réel
sexe : caractère
nom : chaine
Remarques
- Pour chaque type de variables, il existe un ensemble d'opérations correspondant.
- La déclaration d’une variable est l'association d'un nom avec un type,
permettant de mémoriser une valeur de ce type. 22
Variable particulière : La constante
Une constante est une variable particulière dont la valeur ne change pas au cours
de l'exécution du programme, elle peut être un nombre, un caractère, ou une
chaine de caractères.

La déclaration de variables est effectuée par la forme suivante :


Constante
identificateur = valeur

Exemple :
Pour calculer la surface des cercles, la valeur de pi est une constante mais le rayon est
une variable.

Constante
PI=3,14
23
Expressions et opérateurs
Une expression peut être une valeur, une variable ou une opération constituée de
variables reliées par des opérateurs.

Exemple : 1, b, a*2, a+ 3*b-c, …


L'évaluation de l'expression fournit une valeur unique qui est le,résultat de
l'opération

Les opérateurs dépendent du type de l'opération, ils peuvent être :


• des opérateurs arithmétiques: +, -, *, /, %(mod), ^(puissance)
• des opérateurs logiques: NON, OU, ET
• des opérateurs relationnels : =, <, >,<=, >=
• des opérateurs sur les chaînes : & (concaténation)

Une expression est évaluée de gauche à droite mais en tenant compte des priorités
des opérateurs. 24
Priorité des opérateurs
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant
(du plus prioritaire au moins prioritaire) :

➢ () : les parenthèses
➢ ^ : (élévation à la puissance)
➢ * , / (multiplication, division)
➢ % ou mod, exemple : 5%2 vaut 1, (ne concerne que les entiers)
➢ + , - (addition, soustraction) exemple: 9 + 3 * 4 vaut 21

En cas de besoin, on utilise les parenthèses pour indiquer les opérations à effectuer
en priorité
Exemple : (9 + 3) * 4 vaut 48
25
À priorité égale, l’évaluation de l’expression se fait de gauche à droite.
Opérations de base
Un algorithme est formé de cinq types d'opérations essentielles considérées comme
des petites briques de base pour sa construction :

• l’affectation (permet au concepteur de l’algorithme de donner une


valeur à une variable)
• la lecture (permet à un utilisateur de donner une valeur à une variable en
utilisant le clavier de l’ordinateur)
• l’écriture (permet à l’algorithme d’afficher le contenu d’une variable ou
d’afficher d’une expression ou commentaire)
• les décisions (permet de prendre une décision pour exécuter une ou un
ensemble d’opérations sous certaines conditions)
• les répétitions (permet de répéter une ou un ensemble d’opérations)

26
Affectation

L’affectation consiste à attribuer une valeur à une variable dans l’algorithme (dans le
code d’un programme)

L'affectation est notée par le signe ←


Exemple :
Soit age une variable, si on écrit age ← x
Cela veut dire que le concepteur de l’algorithme attribue la valeur de x à la variable
nom.

- x peut être une valeur, une autre variable ou une expression


- age doit être obligatoirement une variable
- age et x doivent être de même type ou de types compatibles

NB : L’affectation modifie le contenu de la variable qui reçoit


27
Affectation : exercices
Donnez les valeurs des variables A et B après exécution des instructions suivantes ?

Variable A, B : Entier
Début
A←6
B←2
A←B
B←A
Fin
Les deux dernières instructions permettent-elles d’échanger les valeurs de A et B ?
Affectation : échanges
Écrire un algorithme permettant d’échanger les valeurs de deux variables A et B ?
Réponse :
on utilise une variable auxiliaire C et on écrit les instructions suivantes :
C←A
A←B 28
L’opération d’entrée : la lecture
L’instruction ou l’opération de lecture permet à un utilisateur de votre algorithme de
communiquer une donnée à la machine.

➢ Syntaxe de l’opération de Lecture


lire(identificateur la variable) Exemple : lire(nombre)
→ la machine met la valeur entrée au clavier dans la variable nommée Q

Remarque : Le programme s'arrête lorsqu'il rencontre une instruction Lire et ne se


poursuit qu'après la saisie de l’entrée attendue par le clavier et de la touche Entrée
(cette touche signale la fin de l’entrée).
Conseil : Avant de lire une variable, il est fortement conseillé d’écrire des messages à
l’écran, afin de prévenir l’utilisateur de ce qu’il doit frapper.

29
L’opération d’entrée : l’écriture

L’instruction ou l’opération d’écriture permet à votre algorithme de communiquer une


donner ou une information à l’utilisateur à l’affichant sur l’écran de votre appareil.

Syntaxe de l’opération d’écriture


écrire (spécifier la variable ou l’expression)
Exemple :
écrire( ʹ Entrez un nombre svp! ʹ)
écrire( ʹ Le double du montant est ʹ, 2*montant)
écrire( ʹ Vous avez ʹ, age , ʹ ans ʹ)

30
Exercice : lecture et écriture

Écrire un algorithme qui permet d’effectuer la saisie deux nombres entiers et de faire
la somme.

Solution
Algorithme Calcul
Variable
nbre1, nbre2, som : entier
Début
écrire(ʹEntrez le premier nombre ʹ)
lire(nbre1)
écrire(ʹEntrez le deuxième nombre ʹ)
lire(nbre2)
som ← nbre1 + nbre2
écrire(ʹ La somme est : ʹ, som)
31
Fin
Travail à faire
Exercice 1
A partir de la saisie de 3 nombres écrire l'algorithme permettant de calculer et
d’afficher à l’écran leur somme, leur produit et leur moyenne.

Exercice 2
Écrire un algorithme permettant de
1. Saisir la valeur de deux variables x et y
2. Afficher la valeur de leur différence (x-y)
3. Permuter leur valeur
4. Afficher encore la valeur de leur différence (x-y)

32
Algorithme CalculMath
Variable
nb1, nb2, nb3, som, pro, moy : réel
Début
écrire (''Entrer le premier nombre'')
lire (nb1)
écrire (''Entrer le deuxième nombre'')
lire (nb2)
écrire(''Entrer le troisième nombre'')
lire (nb3)
som ← nb1 + nb2 + nb3
pro ← nb1 * nb2 * nb3
moy ← som /3
écrire('' La somme est : '', som)
écrire('' Le produit est : '', pro)
écrire('' la moyenne est : '', moy)
Fin
33
Chapitre 3
Les structures de décision

34
Instructions de décision

Il arrive fréquemment dans notre raisonnement de la vie courante que notre


conduite soit déterminée par un choix entre un ou plusieurs possibilités.

Par exemple pour un conducteur au volant de sa voiture, à un feux tricolore il


a deux possibilités et doit obligatoirement choisir un :

Si (le feu est rouge) alors


le conducteur marque un arrêt
Sinon
le conducteur poursuit sa route

Cette situation est courante en algorithmique. L’instruction conditionnelle exprime


cette possibilité de choix. Elle est liée à l’idée qu’une instruction ne s’exécute que
si une condition est vérifiée.
35
Tests: instructions conditionnelles
Définition : Une condition est une expression écrite entre parenthèse à valeur
booléenne qui ne peut prendre que deux valeurs : Vrai ou Faux.

Les instructions conditionnelles servent à n'exécuter une instruction ou une séquence


d'instructions que si une condition est vérifiée.
• le résultat d’une condition ne peut être que vraie ou fausse

Structure conditionnelle à un seul choix

si (condition) alors
séquence d’instructions
finsi

36
Instructions conditionnelles

Structure conditionnelle à deux choix

si (condition) alors
séquence d’instruction 1
sinon
séquence d’instruction 2
finsi

• si la condition est vraie alors seule l’action 1 est exécutée


• si la condition est fausse alors seule l’action 2 est exécutée

37
Exemple de Si…Alors…Sinon

Algorithme ValeurAbsolue1
Variable
x : réel
Début
écrire(" Entrez un réel ")
lire(x)
si x < 0 alors
écrire("la valeur absolue de ", x, " est ",-x)
sinon
écrire("la valeur absolue de ", x, " est ",x)
finsi
Fin

38
Exemple de Si…Alors
Algorithme ValeurAbsolue2
Variable
x, y : réel
Début
écrire(" Entrez un réel : " )
lire(x)
y← x
si x < 0 alors
y ← -x
finsi
écrire("la valeur absolue de ", x, " est ",y)
Fin

39
Exercice (tests)
Écrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste et
affiche s'il est divisible par 7 ou non

Algorithme Divsible_par7
Variable
n : entier
Début
écrire(" Entrez un entier : ")
lire(n)
si (n%7=0) alors
écrire(n," est divisible par 7")
Sinon
écrire(n," n'est pas divisible par 7")
Finsi
Fin 40
Conditions composées
Une condition composée est une condition formée de plusieurs conditions simples
reliées par des opérateurs logiques :
ET, OU, OU exclusif (XOR) et NON

Exemple :
• x compris entre 2 et 6 : (x >= 2) ET (x <= 6)
• n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0)

L'évaluation d'une condition composée se fait selon des règles présentées


généralement dans ce qu'on appelle tables de vérité.
41
Tests imbriqués
Les tests peuvent avoir un degré quelconque d'imbrications
Si condition1 alors
Si condition2 alors
instructions A
Sinon
instructions B
Finsi
Sinon
Si condition3 alors
instructions C
Finsi
Finsi

42
Tests imbriqués : exemple 1
Algorithme test_imbrique1
Variable
n : entier
Début
écrire("entrez un nombre : ")
Lire (n)
si n < 0 alors
écrire("Ce nombre est négatif")
sinon si n = 0 alors
écrire("Ce nombre est nul")
sinon
écrire("Ce nombre est positif")
finsi
finsi
Fin

43
Tests imbriqués : exemple 2
Algorithme test_imbrique2
Variable
Remarque : dans l’exemple 2
n : entier
on fait trois tests
Début
systématiquement alors que
écrire("entrez un nombre : ")
dans l’exemple 1, si le nombre
lire (n)
est négatif on ne fait qu'un seul
si (n < 0) alors
test
écrire("Ce nombre est négatif")
finsi
Conseil : utiliser les tests
si (n = 0) alors
imbriqués pour limiter le
écrire("Ce nombre est nul") nombre de tests et placer
finsi d'abord les conditions les plus
si (n > 0) alors probables
écrire("Ce nombre est positif")
finsi
Fin 44
L'instruction SELON (AVEC ou CAS)
Lorsque l’on doit comparer une même variable avec plusieurs valeurs,
comme par exemple :

si a=1 alors
instruction1
sinon si a=2 alors
instruction2
sinon si a=4 alors
instruction4
sinon . . .
finsi
finsi
finsi
On peut remplacer cette suite de si par l’instruction selon 45
L'instruction Selon : Sa syntaxe
Selon v
v1 : action 1
v2 : action 2
...
vn : action n
autre : action par défaut
Fin Selon

v1,. . . ,vn sont des constantes de type scalaire (entier naturel,


énuméré, ou caractère)

action i est exécutée si v = vi (on quitte ensuite l’instruction selon)


action autre est exécutée si quelquesoit i, v ≠ vi 46
Chapitre 4
Les structures de répétition ou
itératives ou les boucles

47
Structures itératives ou de répétitions : les
boucles
Ces structures servent à répéter l'exécution d'un groupe d'instructions un certain
nombre de fois. Pour les utiliser il faut respecter trois conditions (l’initialisation de
la variable condition, la condition d’arrêt et l’incrémentation ou relance). On
distingue trois sortes de boucles en langages de programmation :

• La boucle tant que : on y répète des instructions tant qu'une la condition est vrai et
si la condition est fausse on arrête.
• La boucle répéter … jusqu'à : on y répète des instructions tant que la condition soit
fausse et c’est on arrête si la condition est vraie.
• La boucle pour ou avec compteur : on y répète des instructions en faisant évoluer
un compteur (variable particulière) entre une valeur initiale et une valeur finale. Tant
que le compteur est dans l’intervalle on répète sinon on arrête.
48
La boucle Tant que
Initialisation de la condition
TantQue (condition) faire
instructions
Relance
FinTantQue

La condition (dite condition de contrôle de la boucle) est évaluée avant chaque


itération. Si la condition est vraie, on exécute les instructions (corps de la
boucle), puis, on retourne tester la condition. Si elle est encore vraie, on
répète l'exécution. Si la condition est fausse, on sort de la boucle et on
exécute l'instruction qui est après FinTantQue.

NB: Il est possible que les instructions à répéter ne soient jamais exécutées.
49
Les boucles Tant que : remarques
Le nombre d'itérations dans une boucle Tant Que n'est pas connu au moment
d'entrée dans la boucle. Il dépend de l'évolution de la valeur de la condition
Une des instructions du corps de la boucle doit absolument changer la valeur de la
condition de vrai à faux (après un certain nombre d'itérations), sinon le programme va
tourner indéfiniment

NB: Attention aux boucles infinies

Exemple de boucle infinie : correction


i←1 i←1
TantQue i > 0 Faire TantQue i <100 Faire
i ← i+1 i ← i+1
FinTantQue FinTantQue

50
Boucle Tant que : remarques

L’Initialisation de la condition consiste à donner une valeur de départ à la variable


de condition. C’est parce que cette variable prend différentes valeurs à chaque
relance que si au départ la condition est vraie elle peut être fausse après.

Pour initialiser la variable condition on doit avoir recours à l’une des actions
suivantes :

▪ Une opération affectation


▪ Une opération de lecture

La relance est très importante et obligatoire dans le corps de la boucle tant que

51
Tant que : exemple 1

En investissant chaque année 10 000 Cfa à intérêts composés de 7%, après


combien d’années serons-nous millionnaires ?

Variables
capital :réel
nbAnnees : entier
Début
capital ←0.0 ; { initialisation de la variable condition}
nbAnnees ←0
Tantque (Capital < 1000000) Faire
capital ← 1.07*capital + 10000 ; { la relance}
nbAnnees ← nbAnnees +1 ;
FinTantque
écrire (nbAnnees)
Fin
52
Boucle Tant que : exemple 2

Un algorithme qui détermine le premier nombre entier N tel que la


somme de 1 à N dépasse strictement 100
version 1

Variables
som, i : entier
Début
i←0
som← 0
TantQue (som <= 100) Faire
i ← i+1
som ← som+i
FinTantQue
écrire (" La valeur cherchée est N = ", i)
Fin
53
Boucle Tant que : exemple3
Un algorithme qui détermine le premier nombre entier N tel que la somme de 1 à N
dépasse strictement 100
Forme 2: attention à l'ordre des instructions et aux valeurs initiales

Variables
som, i : entier
Début
som ← 0
i←1
TantQue (som <= 100) Faire
som ← som + i
i ← i+1
FinTantQue
écrire (" La valeur cherchée est N= ", i-1)
Fin 54
Les boucles Répéter … jusqu’à …
Initialisation de la condition
Répéter
instructions
Relance
Jusqu'à (condition)

Condition est évaluée après chaque itération. Les instructions entre Répéter et
jusqu’à sont exécutées au moins une fois et leur exécution est répétée jusqu’à ce
que la condition soit vraie (tant qu'elle est fausse)

exemple de la Boucle Répéter ….. jusqu’à

Un algorithme qui détermine le premier nombre entier N tel que la somme de 1 à N


dépasse strictement 100
55
Solution de l’exemple Répéter … jusqu’à …

Algorithme calcul
Variables
som, i : entier
Debut
som ← 0
i←0
Répéter
i ← i+1
som ← som+i
Jusqu'à ( som > 100)
écrire(" La valeur cherchée est N= ", i)
Fin
56
Les boucles Tant que et Répéter jusqu’à
Différences entre les boucles Tant que et Répéter jusqu'à :

- la séquence d'instructions est exécutée au moins une fois dans la


boucle Répéter jusqu'à, alors qu'elle peut ne pas être exécutée dans le
cas du Tant que.

- la séquence d'instructions est exécutée si la condition est vraie pour


Tant que et si la condition est fausse pour Répéter jusqu'à.

- Dans les deux cas, la séquence d'instructions doit nécessairement faire


évoluer la condition, faute de quoi on obtient une boucle infinie.

57
Les boucles Pour
Pour compteur ← Valeur initiale à Valeur finale par pas Faire
instructions
FinPour

Si Pas < 0 alors Valeur initiale > Valeur finale


Si Pas > 0 alors Valeur initiale < Valeur finale

58
Les boucles Pour
Remarque : le nombre d'itérations dans une boucle Pour est connu
avant le début de la boucle

Compteur est une variable de type entier (ou caractère). Elle doit être
déclarée

Pas est un entier qui peut être positif ou négatif. Pas peut ne pas être
mentionné, car par défaut sa valeur est égal à 1. Dans ce cas, le nombre
d'itérations est égal à finale - initiale+ 1

Valeur Initiale et Valeur finale peuvent être des valeurs, des variables
définies avant le début de la boucle ou des expressions de même type
que compteur 59
Principe de fonctionnement de la boucle POUR

La variable compteur reçoit la valeur initiale au moment d’accès à la


boucle, puis à chaque parcours, il passe automatiquement à la valeur
suivante dans son domaine jusqu’à atteindre la valeur finale.

Remarques
Une boucle pour peut être exécutée 0,1 ou n fois.
On ne peut utiliser la boucle POUR que si on connaît au préalable
combien de fois le traitement sera répété.

60
Boucle Pour : exemple (forme 1)
Calcul de x à la puissance n où x est un réel non nul et n un entier
positif ou non nul

Variables
x, puiss : réel
n, i : entier
Début
écrire(" Entrez respectivement les valeurs de x et n ")
Lire (x, n)
puiss ← 1
Pour i ← 1 à n faire
puiss← puiss*x
FinPour
écrire (x, " à la puissance ", n, " est égal à ", puiss)
61
Fin
Boucle Pour : exemple (forme 2)
Calcul de x à la puissance n où x est un réel non nul et n un entier
positif ou nul (forme 2 avec un pas négatif)

Variables
x, puiss : réel
n, i : entier
Debut
écrire (" Entrez respectivement les valeurs de x et n ")
lire (x, n)
puiss ← 1
Pour i ← n à 1 par pas -1 faire
puiss← puiss*x
FinPour
écrire (x, " à la puissance ", n, " est égal à ", puiss)
62
Fin
Boucle Pour : remarques

Il faut éviter de modifier la valeur du compteur (et de valeur finale) à


l'intérieur de la boucle. En effet, une telle action :
• perturbe le nombre d'itérations prévu par la boucle Pour
• rend difficile la lecture de l'algorithme
• présente le risque d'aboutir à une boucle infinie

Exemple :

Pour i ← 1 à 5 faire
i ←i -1
écrire (" i = ", i)
Finpour
63
Travail à faire

Exercice 1
Ecrire un algorithme qui permet d’entrer 10 notes au
clavier et de calculer leur somme et leur moyenne

Exercice 2
Écrire un algorithme qui permet de calculer n!, avec n
un entier saisi au clavier

64
Algorithme somme_moyenne
Variable
note, moyenne, somme : réel
i : entier
Début
somme ← 0
Pour i ← 1 à 10 faire
Lire(note)
somme ← somme+note
Finpour
écrire ("la somme est", somme)
moyenne ← somme/10
écrire ("la moyenne est", moyenne)
Fin 65
Lien entre Pour et TantQue
La boucle Pour est un cas particulier de Tant Que (cas où le nombre
d'itérations est connu et fixé) . Tout ce qu'on peut écrire avec Pour peut
être remplacé avec Tant Que (la réciproque est fausse)

Pour compteur ← valeur initiale à valeur finale par pas faire


instructions
Fin Pour
peut être remplacé par (cas d'un pas positif) :
compteur ← valeur initiale
Tant Que compteur ≤ valeur finale faire
instructions
compteur ← compteur + pas
66
FinTant Que
Lien entre Pour et TantQue: exemple 1
Calcul de x à la puissance n où x est un réel non nul et n un entier
positif ou nul (forme avec TantQue)

Variables
x, puiss : réel
n, i : entier
Début
Ecrire (" Entrez respectivement les valeurs de x et n ")
Lire (x)
Lire (n)
puiss ← 1; i ← 1
TantQue (i≤n) faire
puiss← puiss*x
i ← i+1
FinTantQue
écrire (x, " à la puissance ", n, " est égal à ", puiss)
67
Fin
Boucles imbriquées
Les instructions d'une boucle peuvent être des instructions itératives.
Dans ce cas, on aboutit à des boucles imbriquées

Exemple: Exécution

Pour i allant de 1 à 5 faire


Pour j allant de 1 à i faire
écrire("O")
FinPour
écrire("K")
FinPour

68
Choix d'un type de boucle
▪ Si on peut déterminer le nombre d'itérations avant l'exécution
de la boucle, il est plus naturel d'utiliser la boucle Pour

▪ S'il n'est pas possible de connaître le nombre d'itérations avant


l'exécution de la boucle, on fera appel à l'une des boucles TantQue ou
répéter jusqu'à

Pour le choix entre TantQue et Répéter :


▪ Si on doit tester la condition de contrôle avant de commencer les
instructions de la boucle, on utilisera TantQue
▪ Si la valeur de la condition de contrôle dépend d'une première
exécution des instructions de la boucle, on utilisera répéter jusqu'à
69
Chapitre 5
Les structures de données
élémentaires : les tableaux

70
Tableaux : introduction
Supposons que l'on veut calculer le nombre d’étudiants ayant une note
supérieure à 10 pour une classe de 20 étudiants.
Jusqu’à présent, le seul moyen pour le faire, c’est de déclarer 20
variables désignant les notes N1, …, N20:
• La saisie de ces notes nécessite 20 instructions lire.
• Le calcul du nombre des notes >10 se fait par une suite de tests de 20
instructions Si :
nbre ← 0
Si (N1 >10) alors nbre ←nbre+1 FinSi

Si (N20>10) alors nbre ←nbre+1 FinSi
cette façon n’est pas très pratique
C’est pourquoi, les langages de programmation offrent la possibilité de
rassembler toutes ces variables dans une seule structure de donnée 71
appelée tableau qui est facile à manipuler
Tableaux
Un tableau est un ensemble d'éléments de même type désignés par
un identificateur unique Une variable entière nommée indice permet
d'indiquer la position d'un élément donné au sein du tableau et de
déterminer sa valeur

La déclaration d'un tableau s'effectue en précisant le type de ses


éléments et sa dimension (le nombre de ses éléments)
Syntaxe
variable
identificateur : tableau[dimension] de type
• Exemple :
variable
notes : tableau[20] de réel
72
Les tableaux
Les tableaux à une dimension ou vecteurs :
variable
tab : tableau[10] de entier
Ce tableau est de longueur 10, car il contient 10 emplacements.
Indice 1 2 3 4 5 6 7 8 9 10
tab 45 54 1 -56 22 13 4 -26 3 2
Valeur
Chacun des dix nombres du tableau est repéré par son rang, appelé
Indice. Pour accéder à un élément du tableau, il suffit de préciser entre
crochets l'indice de la case contenant cet élément.

Pour accéder au 5ème élément (22), on écrit : tab[5]


Pour accéder au ième élément, on écrit tab[i] (avec 1 ≤ i ≤ 10 ) 73
Tableaux : accès et modification

Les instructions de lecture, écriture et affectation s'appliquent aux


tableaux comme aux variables.

Exemples :
x ← tab[1]
La variable x prend la valeur du premier élément du tableau (45 selon le
tableau précédent)

tab[6] ← 43
Cette instruction a modifiée le contenu du 6ème élément du tableau (43
au lieu de 13)
74
Tableaux : exemple 1
Pour le calcul du nombre d'étudiants ayant une note supérieure à 12
avec les tableaux, on peut écrire :

Constante N=10
Variables i ,nbre : entier
notes : tableau[N] de réel
Début
nbre ← 0
Pour i ← 1 à N faire
Si (notes[i] >12) alors
nbre ←nbre+1
FinSi
FinPour
écrire ("le nombre de notes supérieures à 12 est : ", nbre)
75
Fin
Tableaux : exemple 2

Un algorithme qui calcul la moyenne de 20 notes d’un étudiant.

Solution
Etape 1 : déclarer un tableau de 20 éléments de type réel
Etape 2 : Entrer les notes dans le tableau
Etape 3 : Calculer la somme des notes
Etape 4 : Calculer la moyenne en divisant la somme des notes
par 20
Etape 5 : Afficher la moyenne

Je peux déclarer une constante pour mettre le chiffre 20, car il ne


change pas. Je travail sur 20 notes 76
Algorithme Calcul_moyenne
Constante
Max = 20
variables
Notes : tableau [Max] de réel
somme, moyenne : réel
i : entier
Début
somme  0
écrire("Entrer les notes de l’étudiant : ")
pour i  1 à Max faire
lire(Notes[ i ])
finpour
pour i  1 à Max faire
somme  somme + Notes[ i ]
finPour
moyenne  somme / Max
écrire ("la moyenne des notes est : " ,moyenne) 77
fin
Chapitre 6
Les fonctions et les
procédures

78
Intérêts

▪ Diviser pour mieux régner


▪ Méthode modulaire de conception utilisant le découpage d’un problème en
sous problèmes distincts
▪ Permet de réutiliser des programmes (sousprogrammes) déjà développés et
surtout validés

79
Environnement d’un sous-programme

▪ L’environnement d’un sous-programme est l’ensemble des variables


accessibles et des valeurs disponibles dans ce sous-programme, en
particulier celles issues du programme appelant.
▪ Trois sortes de variables sont accessibles dans le sous-programme :
– Les variables dites globales
– Les variables dites locales
– Les paramètres formels

80
Environnement d’un sous-programme

➢ Les variables dites globales


▪ Celles définies dans le programme appelant et considérées comme
disponibles dans le sous-programme;
▪ Elles peuvent donc être référencées partout dans le programme appelant
et dans le sous-programme appelé;
▪ Leur portée est globale

81
Environnement d’un sous-programme

➢ Les variables dites locales


▪ Celles définies dans le corps du sous-programme, utiles pour son
exécution propre et accessibles seulement dans ce sous-programme
▪ Elles sont donc invisibles pour le programme appelant.
▪ Leur portée est locale.
➢ Les paramètres formels
▪ Les variables identifiées dans le sous-programme qui servent à l’échange
d’information entre les programmes appelant et appelé;
▪ Leur portée est également locale.

On distingue deux types de sous-programmes : Les procédures


et les fonctions.
82
Syntaxe générale d’une procédure

Procédure Nom_procédure (Liste de paramètres formels) En tête


Les paramètres ne
sont pas obligatoires

Variable …. Déclaration des variables locales

Début

instructions Corps de la procédure

Fin

83
Syntaxe générale d’une fonction En tête

Fonction Nom_fonction (Liste de paramètres formels) : Type_valeur_retournée

Déclaration des variables locales


Variable ….

Début
instructions Corps de la fonction
Retourner valeur

Fin

84
Procédures

Il s’agit de sous-programmes nommés qui représentent une ou plusieurs actions, et


qui peuvent calculer et afficher une ou plusieurs valeurs.

Une procédure « P » doit être définie une seule fois dans un algorithme « A » et peut
être appelée plusieurs fois par « A » ou par une autre procédure de « A ».

85
Exemple
Algorithme avec procédure permettant d’élever un nombre entier au carré.
Algorithme Elevation_au_carre
Variable nbre : entier
Procédure Carre(n:entier)
Début
Ecrire(" Le carré de ",n, " est ",n*n )
Fin
Début
Ecrire(" Veuillez entrer un entier svp! ")
Lire(nbre)
Carre(nbre)
86
Fin
Fonction
Une fonction est un sous-programme qui calcule, à partir de paramètres éventuels,
une valeur d’un certain type utilisable dans une expression du programme appelant.
Il s’agit donc de sous-programmes nommés et typés qui calculent et retournent une
et une seule valeur.
✓ Le type de cette valeur est celui de la fonction.

Les fonctions sont comparables aux procédures à deux exceptions près :


✓ Leur appel ne constitue pas à lui seul une instruction, mais figure dans une
expression ;
✓ Leur exécution produit un résultat qui prend la place de la fonction lors de
l’évaluation de l’expression.

87

Vous aimerez peut-être aussi