0% ont trouvé ce document utile (0 vote)
53 vues58 pages

ALGORITHMIQUE

cours

Transféré par

falaqsoufiane1996
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
53 vues58 pages

ALGORITHMIQUE

cours

Transféré par

falaqsoufiane1996
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TECHNIQUE DE PROGRAMMATION

STRUCTUREE
L’ALGORITHMIQUE

12/4/2023 1

Réalisé par : Mr ZOUHIR TAIBI


[email protected]
Objectif:

- APPRENDRE LES CONCEPTS DE BASE DE L'ALGORITHMIQUE ET DE


LA PROGRAMMATION.
- Etre capable de mettre en œuvre
- Ces concepts pour analyser des les problemes simples et
écrire des rammes correspondants.

12/4/2023 2
Mr ZOUHIR TAIBI
DEFINITIONS :

Algorithme :séquence finie d'actions


permettant de résoudre un problème
donné.
Algorithmique :ensemble des méthodes
permettant de définir ou/et d'étudier des
algorithmes.

12/4/2023 3
Mr ZOUHIR TAIBI
STRUCTURE GÉNÉRALE D’UN ALGORITHME :

En général un algorithme s’écrit sous la forme:

Nom du programme
Déclaration de variables
Début
Liste des instructions
Fin

12/4/2023 4
Mr ZOUHIR TAIBI
VARIABLES :
Une variable sert à stocker la valeur d’une donnée
Une variable réserve un emplacement dans la mémoire, son contenu peut être
changé au cours d’un programme (c’est pourquoi le nom variable)
Règle : Les variables doivent être déclarées avant d’être utilisées, elles
doivent être caractérisées par :
un nom (Identificateur)
un type(entier, réel, caractère, chaîne de caractères, …)

12/4/2023 5
Mr ZOUHIR TAIBI
IDENTIFICATEURS:
Le choix des noms de variables est soumis à quelques règles variant selon le langage, mais en général:
Un nom doit commencer par une lettre alphabétique
valide: A1 invalide: 1A
doit être constitué uniquement de lettres, de chiffres et du soulignement _
valides: ATM2014, ATM_2014 invalides: ATM 2014,ATM 2014
doit être différent des mots réservés du langage
(par exemple en C :int, float, else, switch, case, default, for, main, return, …)

12/4/2023 6
Mr ZOUHIR TAIBI
TYPES DES VARIABLES:
Type numérique (entier ou réel)
Byte (codé sur 1octet) : de 0 à 255
Entier court (codé sur 2 octets) : -32 768 à 32 767
Entier long (codé sur 4 ou 8 octets) Réel simple
précision(codé sur 4 octets) Réel double
précision(codé sur 8 octets)
Type logique ou booléen : deux valeurs VRAI ou FAUX
Type caractère : lettres majuscules, minuscules, chiffres, symboles, …
exemples: ’A’, ’a’, ’1’, ’?’, …
Type chaîne de caractère : toute suite de caractères
exemples: " Nom, Prénom", "code postale: 1000", …

12/4/2023 7
Mr ZOUHIR TAIBI
COMMENT DÉCLARER LES VARIABLES
Rappel: toute variable utilisée dans un programme doit avoir fait
l’objet d’une déclaration préalable
pour la déclaration de variables:
Variables liste d'identificateurs : type
Exemple:
Variables i, j, k : entier
x, y : réel
OK: booléen
ch1, ch2 : chaîne de caractères
Remarque: pour le type numérique on va se limiter aux entiers et
réels sans considérer les sous types
12/4/2023 8
Mr ZOUHIR TAIBI
L’affectation
L’AFFECTATION CONSISTE À ATTRIBUER UNE
VALEUR À UNE VARIABLE
En pseudo code, l'affectation se note avec le signe ←
Var← e: attribue la valeur de e à la variable Var
Ex : i ←1 j ←i k ←i+j
x ←10.3 OK ←FAUX ch1 ←" ATM"

12/4/2023 9
Mr ZOUHIR TAIBI
EXERCICE SUR L’AFFECTATION:
Donnez les valeurs des variables A, B et C après l’exécution des instructions
suivantes?
Algorithme affectation
Variables A, B, C : Entier
Début
A ←3
B ←7
A ←B
B ←A+5
C ←A + B
C ←B –A
Fin
12/4/2023 10

Mr ZOUHIR TAIBI
EXERCICE :
Ecrire un algorithme permettant d’échanger les valeurs de
deux variables A et B??

12/4/2023 11

Mr ZOUHIR TAIBI
LES OPÉRATEURS :
Les opérateurs dépendent du type de l'opération, ils
peuvent être:
des opérateurs arithmétiques : +, - , *, /, % (modulo),
^ (puissance)
des opérateurs logiques : NON, OU, ET
des opérateurs relationnels : =, , <, >, <=, >=
des opérateurs sur les chaînes : &(concaténation)
Remarque : n’oublier pas de tenir en compte la priorité

12/4/2023 12

Mr ZOUHIR TAIBI
PRIORITÉ DES OPÉRATEURS

Pour les opérateurs arithmétiques :


1 → ^ : (élévation à la puissance)
2 → * , / (multiplication, division)
3 → % (modulo)
4 → + , (addition, soustraction)
exemple: 2 + 2 * 7 vaut 16
Remarque : en cas de doute on utilise les parenthèses. exemple:
(2 + 2) * 7 vaut 28

12/4/2023 13
Mr ZOUHIR TAIBI
L’écriture

L'écriture : permet d'afficher des résultats à


l'écran (ou de les écrire dans un fichier)
En pseudo code, on note : écrire (var) la machine
affiche le contenu de la zone mémoire var

12/4/2023 14
Mr ZOUHIR TAIBI
LA LECTURE

L a lecture : permet d'entrer des données à partir du clavier


En pseudo code, on note: lire (var) la machine met la valeur entrée au clavier
dans la zone mémoire nommée var
Remarque : Le programme s'arrête lorsqu'il rencontre une instruction Lire et ne
se poursuit qu'après la frappe d’une valeur au clavier et de la touche Entrée

12/4/2023 15
Mr ZOUHIR TAIBI
EXERCICE :
Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui calcule et
affiche le double de ce nombre.

12/4/2023 16
Mr ZOUHIR TAIBI
LA SOLUTION :
Algorithme Calcul_double
variables A, B : entier
Début
écrire("entrer le nombre A")
lire(A)
B ← 2*A
écrire("le double de A =", A, "est : ", B)
Fin

12/4/2023 17
Mr ZOUHIR TAIBI
Exercice 2:

Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et


affiche le carré de ce nombre.

Mr ZOUHIR TAIBI 12/4/2023 18


Solution:

Variables nb, carr en Entier


Début
Ecrire ”Entrez un nombre :”
Lire nb
carr <-- nb * nb
Ecrire ”Son carré est : ”, carr
Fin

Mr ZOUHIR TAIBI 12/4/2023 19


EXERCICE:

On demande à l’utilisateur d’entrer la langueur et la largeur d’une espace


Sachant que le perimetre est:
P=2*(L+l)

12/4/2023 20
Mr ZOUHIR TAIBI
LA SOLUTION :

Algorithme perimeter
Variable :L,l,p:entier
Debut
ecrire(“donnez la largeur du surface”)
lire(L)
ecrire(“Donnez la longueur du surface”)
lire(l)
p  2*(L+l)
ecrire(“le perimetre est :”,p)
Fin

12/4/2023 21
Mr ZOUHIR TAIBI
Exercice
Ecrire un programme qui lit le prix HT d’un article.Le nombre d’articles et le
taux de TVA, et qui fournit le prix total TTC correspondant. Faire en sorte
que des libellés apparaissent clairement.

Mr ZOUHIR TAIBI 12/4/2023 22


Solution
Variables nb, pht, ttva, pttc en Numérique
Début
Ecrire ”Entrez le prix hors taxes :”
Lire pht
Ecrire ”Entrez le nombre d’articles :”
Lire nb
Ecrire ”Entrez le taux de TVA :”
Lire ttva
pttc <-- nb * pht * (1 + ttva)
Ecrire ”Le prix toutes taxes est : ”, pttc
Fin

Mr ZOUHIR TAIBI 12/4/2023 23


LES INSTRUCTIONS CONDITIONNELLES :
Elles permettent d’exécuter une instruction (ou un bloc d’instructions) que si une
conditions est verifiée.
La forme générale d’une instruction conditionnelles:
Si condition alors
instruction ou suite d'instructions1
Sinon
instruction ou suite d'instructions2
Finsi
la condition ne peut être que vraie ou fausse
si la condition est vraie, les instructions1 qui seront exécutées
si la condition est fausse, les instructions2 qui seront exécutées

12/4/2023 24
Mr ZOUHIR TAIBI
LES INSTRUCTIONS CONDITIONNELLES :

On utilisera la forme simplifiée suivante:


Si condition alors
instruction ou suite d'instructions1
Finsi
Si on a pas besoin de sinon

12/4/2023 25
Mr ZOUHIR TAIBI
EXEMPLE :
Ecrire un algorithme qui retourne la valeur absolu d’un
nombre entré par l’utilisateur

12/4/2023 26
Mr ZOUHIR TAIBI
LA SOLUTION :
Algorithme ValeurAbsolue (méthode 1)
Variable x ,y: réel
Début
Ecrire("Entrez un réel: ")
Lire (x)
Si (x < 0) alors
yx * -1
Ecrire ("la valeur absolue de ", x, "est:", y)
Sinon
Ecrire ("la valeur absolue de ", x, "est:",x)
Finsi
Fin
12/4/2023 27
Mr ZOUHIR TAIBI
EXEMPLE :
Algorithme ValeurAbsolue (methode 2)

Variable x,y: réel Début


Ecrire("Entrez un réel: “)
Lire (x)
y← x
Si (x < 0) alors
y← -x
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y)
Fin
12/4/2023 28
Mr ZOUHIR TAIBI
EXERCICE :
Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste et
affiche s'il est divisible par 3

12/4/2023 29
Mr ZOUHIR TAIBI
LA SOLUTION:
Algorithme Divsible_3
Variable n : entier
Début
Ecrire ("Entrez un entier: ")
Lire (n)
Si (n%3=0) alors
Ecrire (n," est divisible par 3")
Sinon
Ecrire (n," n’est pas divisible par 3")
Finsi
Fin

12/4/2023 30
Mr ZOUHIR TAIBI
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,et NON
Exemples :
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)

12/4/2023 31
Mr ZOUHIR TAIBI
CONDITIONS IMBRIQUÉES :
Les conditions peuvent avoir un degré quelconque d'imbrications :
Si condition1 alors
Si condition2 alors
instructions A
Sinon
instructionsB
Finsi
Sinon
Si condition3 alors
instructionsC
Finsi
Finsi
12/4/2023 32
Mr ZOUHIR TAIBI
EXEMPLE (MÉTHODE 1):
Variable n : entier
Début
Ecrire ("entrez un nombre: ")
Lire (n)
Si (n < 0) alors
Ecrire("Ce nombre est négatif")
Sinon
Si (n = 0) alors
Ecrire ("Ce nombre est nul")
Sinon
Ecrire ("Ce nombre est positif")
Finsi
Finsi
Fin

12/4/2023 33
Mr ZOUHIR TAIBI
EXEMPLE (MÉTHODE 2):
Variable n : entier
Début
Ecrire ("entrez un nombre: ")
Lire (n)
Si (n < 0) alors
Ecrire("Ce nombre est négatif")
Finsi
Si (n = 0) alors
Ecrire ("Ce nombre est nul")
Finsi
Si (n > 0) alors
Ecrire ("Ce nombre est positif")
Finsi
Fin

12/4/2023 34
Mr ZOUHIR TAIBI
REMARQUES SUR LES TEST
IMBRIQUÉS:

Remarque : dans la version 2 on fait trois tests


systématiquement alors que dans la version 1, si le nombre
est négatif on ne fait qu'un seul test

Conseil :utiliser les tests imbriqués pour limiter le nombre de


tests et placer d'abord les conditions les plus probables

12/4/2023 35
Mr ZOUHIR TAIBI
EXERCICE 1:

Le prix de photocopies dans une reprographie varie


selon le nombre demandé: 0,5 DH la copie pour un
nombre de copies inférieur à 10, 0,4DH pour un
nombre compris entre 10 et 20 et 0,3DH au delà.
Ecrivez un algorithme qui demande à l’utilisateur le
nombre de photocopies effectuées, qui calcule et
affiche le prix à payer

12/4/2023 36
Mr ZOUHIR TAIBI
EXERCICE 2 :
É crivez un algorithme qui permet de discerner une mention à un
étudiant selon la moyenne de ses notes :
"Très bien" pour une moyenne comprise entre 16 et 20 (16<= moyenne <=20)
"Bien" pour une moyenne comprise entre 14 et 16 (14<= moyenne <16)
"Assez bien" pour une moyenne comprise entre 12 et 14 (12<= moyenne <14)
"Passable" pour une moyenne comprise entre 10 et 12 (10<= moyenne <12)

12/4/2023 37
Mr ZOUHIR TAIBI
Mr ZOUHIR TAIBI 12/4/2023 38
Mr ZOUHIR TAIBI 12/4/2023 39
EXERCICES 3 ET 4:
Ecrire Un programme devant donner l’état de l’eau selon sa température
doit pouvoir choisir entre trois réponses possibles (solide, liquide ou
gazeuse).
Test normal
Test imbriqué
Ecrivez un algorithme qui donne le maximum de trois nombres saisis au
clavier. Effectuez des tests pour 2 5 8, 3
6 7, 1 2 3 et indiquez le nombre d'instructions.

12/4/2023 40
Mr ZOUHIR TAIBI
EXERCICE 5 ET 6:

Ecrivez un algorithme qui demande deux nombres à l’utilisateur et


l’informe ensuite si leur produit est négatif, positif ou nul
(attention : on ne doit pas calculer le produit des deux nombres).

Écrivez un algorithme qui permet de résoudre une équation du


second degré (ax²+bx+c=0 avec a ≠ 0)

12/4/2023 41
Mr ZOUHIR TAIBI
EXERCICE 7 :
Les étudiants ayant passé l'examen d’algorithmique en session
de Juin ont été classés selon leurs notes en trois catégories :
pour une note inférieure strictement à 5, l'étudiant est éliminé,
pour une note supérieure ou égale à 5 et inférieur strictement
à 10, l'étudiant passe la session de rattrapage,
pour une note supérieure ou égale à 10, l'étudiant valide le
module
Ecrivez un algorithme qui demande à l’utilisateur d’entrer la note du module, puis
affiche la situation de l'étudiant selon sa note (on suppose que l'utilisateur entre une note
valide entre 0 et 20).

12/4/2023 42
Mr ZOUHIR TAIBI
Mr ZOUHIR TAIBI 12/4/2023 43
Mr ZOUHIR TAIBI 12/4/2023 44
Mr ZOUHIR TAIBI 12/4/2023 45
Mr ZOUHIR TAIBI 12/4/2023 46
STRUCTURE À CHOIX MULTIPLES SELON QUE
La structure SELONQUE permet d'effectuer tel ou tel
traitement en fonction de la valeur des conditions 1 ou 2 ou ..n
Syntaxe :
SELONQUE
<condition 1>:<action 1>
<condition 2>:<action 2>
...
<condition n>:<action n>
SINON:<action_sinon>
FINSELONQUE

Mr ZOUHIR TAIBI 12/4/2023 47


STRUCTURE À CHOIX MULTIPLES SELON QUE

Fonctionnement :
1. La condition 1 est évaluée:
Si la condition 1 est vraie, alors on exécute l'action
correspondante et on quitte la structure selon que
Si la condition 1 est fausse, on évalue la condition
2...et ainsi de suite.

2. Si aucune n'est vraie on effectue l'action sinon (au cas où l'action sinon
n'existe pas alors aucune action n'est exécutée).

12/4/2023 48
Mr ZOUHIR TAIBI
EXEMPLE SELONQUE :
Ecrire un algorithme qui attribue les mentions aux étudiants en
utilisant SelonQue.
SELONQUE
Note ≥ 16 : ECRIRE (‘'TB‘’)
Note ≥ 14 : ECRIRE (‘'B‘’)
Note ≥ 12 : ECRIRE (‘'AB‘’)
Note≥ 10 : ECRIRE (‘'Passable‘’)
SINON: ECRIRE (‘'ajourné‘’)
FINSELONQUE

12/4/2023 49
Mr ZOUHIR TAIBI
EXERCICE
Ecrire un algorithme calculatrice .

12/4/2023 50
Mr ZOUHIR TAIBI
La solution

Algo calculatrice
Varaibles a,b:reel
operation :caractere
Debut
Ecrire(“saisir a et b”)
lire(a,b)
Ecrire(“Choisir l’operation que vous voulez(+,-,*,/)”)
lire(operation)
Selon que(operation)
operation=’+’:ecrire(a,”+”,b“=”,a+b)
operation=’-’:ecrire(a,”+”,b“=”,a-b)
operation=’*’:ecrire(a,”+”,b“=”,a*b)
operation=’/’:si (b=0) alors
ecrire(“attention ,division sur 0”)
sinon
ecrire(a,”/”,b“=”,a/b)
finsi
Sinon:Ecrire(“operation n’est pas possible”)
Finselonque
51
fin
Mr ZOUHIR TAIBI 12/4/2023
La solution avec
Algo calculatrice
Les boucles
Varaibles a,b:reel
recalculer:entier
operation :caractere
Debut
recalculer=1
Tantque(recalculer=1)
Ecrire(“saisir a et b”)
lire(a,b)
Ecrire(“Choisir l’operation que vous voulez(+,-,*,/)”)
lire(operation)
Selon que(operation)
operation=’+’:ecrire(a,”+”,b“=”,a+b)
operation=’-’:ecrire(a,”+”,b“=”,a-b)
operation=’*’:ecrire(a,”+”,b“=”,a*b)
operation=’/’:si (b=0) alors
ecrire(“attention ,division sur 0”)
sinon
ecrire(a,”+”,b“=”,a/b)
finsi
Sinon:Ecrire(“operation n’est pas possible”)
Finselonque
Fin tant que
fin
Mr ZOUHIR TAIBI
INSTRUCTIONS ITÉRATIVES: LES BOUCLES
Les boucles servent à répéter l'exécution d'un groupe d'instructions un certain
nombre de fois
On distingue trois sortes de boucles en langages de programmation :
Les boucles tant que: on y répète des instructions tant qu'une certaine condition
est réalisée
Les boucles jusqu'à: on y répète des instructions jusqu'à ce qu'une certaine
condition soit réalisée
Les boucles 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

12/4/2023 53
Mr ZOUHIR TAIBI
LES BOUCLES POUR

Pour compteur allant de initiale à finale par pas valeur du pas


instructions
FinPour

12/4/2023 54
Mr ZOUHIR TAIBI
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. Paspeut 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
Initiale et 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
12/4/2023 55
Mr ZOUHIR TAIBI
DÉROULEMENT DES BOUCLES POUR
1) La valeur initiale est affectée à la variable compteur
2) On compare la valeur du compteur et la valeur de finale : Si la valeur
du compteur est > à la valeur finale dans le cas d'un pas positif (ou si compteur est <
à finale pour un pas négatif), on sort de la boucle et on continue avec l'instruction
qui suit FinPour
Si compteur est <= à finale dans le cas d'un pas positif (ou si compteur est >= à finale pour un
pas négatif), instructions seront exécutées
i. Ensuite, la valeur de compteur est incrémentée de la valeur du pas si pas est positif (ou
décrémenté si pas est négatif)
ii. On recommence l'étape 2 : La comparaison entre compteur et finale est de nouveau
effectuée, et ainsi de suite …

12/4/2023 56
Mr ZOUHIR TAIBI
BOUCLE POUR : EXEMPLE
Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul
Variables x, puiss: réel
n, i : entier
Début
Ecrire (" Entrez la valeur de x ")
Lire (x)
Ecrire (" Entrez la valeur de n ")
Lire (n)
puiss← 1
Pour i allant de 1 à n
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin

12/4/2023 57
Mr ZOUHIR TAIBI
BOUCLE POUR : REMARQUE
Il faut éviter de modifier la valeur du compteur (et de 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 allant de1 à 5


i  i+1
écrire(" i = ", i)
i i+1
Finpour

12/4/2023 58
Mr ZOUHIR TAIBI

Vous aimerez peut-être aussi