0% ont trouvé ce document utile (0 vote)
31 vues48 pages

Cours 2 Algorithm

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)
31 vues48 pages

Cours 2 Algorithm

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

Notion d’Algorithmique

Algorithme
• Algorithme vient du nom du mathématicien « Al-Khawarizmi » latinisé en
Algoritmi. Née en 780 et mort vers 850 à Bagdad
• Al-Khawarizmi a vécu au 9ème siècle et était membre de l’académie des sciences
à Bagdad.

• Définition : Un algorithme est :


• une suite finie d’instructions que l’on applique à un nombre fini de données
dans un ordre précis pour arriver à un résultat.
• une suite ordonnée d’instructions qui indique la démarche à suivre pour
résoudre une série de problèmes équivalents.
Algorithme
Rôle fondamental de l'Algorithme:
• Il prend des données en entrée.
• Il exprime un traitement particulier.
• Il fournit des données en sortie.
Comment trouver un algorithme ?
Questions préliminaires à se poser avant la conception d’un algorithme :

• Quel est le résultat recherché ?


• Quelles sont les données disponibles ou les informations d’entrée ?
• Quelles sont instructions à appliquer à ces données pour aboutir au résultat attendu ?
Algorithme
• Un algorithme ne peut pas être exécuté directement par une machine :
• il est écrit dans un langage abstrait et conceptuel,
• il n’est pas exprimé sous la forme de codes binaires que le processeur peut
interpréter.
• Un algorithme doit être traduit dans un langage de programmation
• Définition : Un programme est :
• la traduction d’un algorithme dans un langage informatique particulier et
parfaitement précis.
• une série d’instructions qui réalise (implémente) un algorithme
• Un programme n’est pas directement interprété par la machine, il doit être t
raduit en langage machine. Cette traduction est faite automatiquement par un
programme appelé « COMPILATEUR » ou « INTERPRETEUR »
Processus de résolution de problèmes

Problème Analyse Algorithme Implémentation Programme Exécution Résultats


Algorithme
• L’écriture algorithmique est un travail de programmation à visée universelle.
• Un algorithme ne dépend pas du langage dans lequel il est implanté.
• Un algorithme ne dépend pas de la machine qui exécutera le programme
correspondant.
• L'algorithmique permet d’expliquer comment faire un travail sans la moindre
ambiguïté, en utilisant un langage simple composé d'instructions élémentaires.
Propriétés et Qualités d’un Algorithme
Un algorithme doit obligatoirement :
• 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.
• Chaque opération doit être définie rigoureusement et sans ambiguïté.
• Chaque opération doit être effective (réalisable par une machine).
Algorithmique
L’algorithmique s’intéresse à l'art de construire des algorithmes et à caractériser
leurs qualités :
• Validité : Aptitude à réaliser exactement la tâche pour laquelle il a été conçu.
• Robustesse : Aptitude à se protéger des conditions anormales d’utilisation.
• Efficacité : Aptitude à utiliser de manière optimale les ressources du matériel qui
l’exécute.
• Réutilisabilité : Aptitude à être réutilisé pour résoudre des tâches équivalentes.
• Complexité : Le nombre d’instructions élémentaires à exécuter pour réaliser la
tâche. Cette notion s'intéresse à l'espace et au temps nécessaire pour que
l'algorithme atteigne le résultat escompté.
Structure générale d’un algorithme
La représentation d'un algorithme se fait
généralement en pseudo-code. Un
algorithme comporte trois parties
principales :
Algorithme Nom_algorithme L’entête de l’algorithme
• L’en-tête : Sert à donner un nom à
l’algorithme, précédé du mot Algorithme.
Constantes: déclaration des constantes La partie declaration
• La partie déclarative : On y déclare les Variables: Déclaration des variables
différents objets que l’algorithme utilise
(constantes, variables).
Début La partie traitement
• Le corps de l’algorithme : Contient les Bloc d’instructions
instructions. Il est délimité par les mots Fin
Début et Fin.
Structure générale d’un algorithme

Algorithme Nom_algorithme L’entête de l’algorithme Algorithme surface_cercle

Constantes: déclaration des constantes La partie declaration Constantes: pi ← 3,14


Variables: Déclaration des variables Variables: rayon,surface : Réel

Début La partie traitement Début


Bloc d’instructions Ecrire( " Veuillez saisir le rayon ")
Fin
Lire ( rayon)
surface ← rayon* rayon*pi
Ecrire(surface)
Fin
Variables
• Une variable est un emplacement mémoire (boîte étiquetée).
• Son contenu peut changer au cours d’un programme.
• Règle fondamentale : La variable doit être déclarée avant d’être utilisée.
Déclaration des Variables :
• Elle doit comporter le nom (identificateur) et le type.
• Syntaxe : Variable identificateur : type.
• Identificateur : Nom donné à une variable . Il doit obligatoirement commencer par une
lettre, suivie d’une suite de lettres et de chiffres, sans contenir d’espace.
• Type : L’ensemble des valeurs qu’une variable peut prendre (ex: le type logique/booléen
peut prendre Vrai ou Faux).
Variables
• Une variable est un emplacement mémoire (boîte étiquetée).
• Son contenu peut changer au cours d’un programme.
• Règle fondamentale : La variable doit être déclarée avant d’être utilisée.
Déclaration des Variables :
• Elle doit comporter le nom (identificateur) et le type:
Syntaxe : Variable identificateur : type

• Identificateur : Nom donné à une variable . Il doit obligatoirement commencer par une
lettre, suivie d’une suite de lettres et de chiffres, sans contenir d’espace.
• Type : L’ensemble des valeurs qu’une variable peut prendre
Types de Variables
Cinq types de base:

• Le type entier (Positif et négatif)


• Le type réel
• Le type booléen (vrai, faux)
• Le type chaine de caractères
• Le type caractère ( une lettre, un chiffre ou un symbole)
Types de Variables

Type Description
Entier Désigne les nombres entiers positifs et négatifs.
Réel Désigne les valeurs numériques réelles.
Logique / Booléen (BOOLEEN) Vrai ou Faux (True ou False, 1 ou 0).
Caractère (CARACTERE) Un seul caractère.
Chaîne de Caractères (CHAINE) Séquence de caractères.
Les Constantes

• Une constante correspond aussi à un emplacement mémoire.


• Sa valeur stockée ne sera jamais modifiée au cours du programme.
• Syntaxe :
Constante NOM_DE_LA_CONSTANTE = valeur

• Exemple : Constante PI = 3.14.


Affectation
• L’affectation est l’opération la plus utilisée dans un algorithme, elle permet
d’attribuer une valeur à une variable ou une constante
• Elle est symbolisée en algorithmique par ←.

Syntaxe : Variable ← valeur

• À gauche de la flèche, un nom de variable, et uniquement cela


• À la droite de la flèche on trouve soit une valeur ou une expression
• Exemples:
• pi ← 3,14
• message ← " Bonjour " NB : En informatique, une variable possède à un
• rayon ← 5 moment donné une valeur et une seule.
• reponse ← Vrai
• Choix ← " N "
Exercice 1 :
• Trouver les valeurs des variables A, B et C après exécution des
instructions suivantes pour les deux algorithms suivants :

Variables: A, B, C : Entier
Début Variables: A, B :Entier
A←6 Début
A← 5
B←4
B ←A+ 4
C←A+B A←A+1
A ←3 B ←A– 4
C←B–A Fin
Fin
Exercice 2 :
• Trouver les valeurs des variables A et B après exécution des instructions suivantes :
Variables A, B :Entier
Début
A←5
B←2
A←B
B ←A
Fin
• Est-ce que les deux dernières instructions permettent-elles d’échanger les deux
valeurs de B et A?
Exercice 3:
• Ecrire un algorithme permettant d’échanger les valeurs des variables A, B,
et C, ce quel que soit leur contenu préalable:
Solution Exercice 3
Variables A, B :Entier
Début
C←A
A← B
B←C
Fin
Les opérateurs
Opérateurs arithmétiques
Symbole Opération
Exemple:
+ Addition Variables: A, B en Entier
- Soustraction Début
A←7
* Multiplication B←3
C ← A div B
/ Division
D ← A mod B
Div Quotient de la division entière. Fin
Mod Modulo (reste de la division euclidienne).
^ Puissance.

• Utiliser les parenthèses, avec les mêmes règles qu’en mathématiques.


• La multiplication et la division ont la priorité sur l’addition et la soustraction.
• Les parenthèses ne sont ainsi utiles que pour modifier cette priorité naturelle.
Opérateurs de comparaison –Relationnels-
Symbole Signification
= Égal
<> Différent
< Inférieur
<= Inférieur ou égal
> Supérieur
>= Supérieur ou égal

Le résultat d’une opération de comparaison est de type booleen


Opérateurs de concaténation -sur les Chaînes-
• L'opérateur & permet de concaténer deux chaînes de caractères

Algorithme concatener
Variables: nom,prenom,nom_prenom : chaine
Début
nom ← " Alice "
prenom ← " Bob "
nom_prenom ← nom&prenom
Fin
Opérateurs Logiques
ET , OU , NON , OU exclusif (XOR)
X Y X OU Y
X Y X ET Y
0 0 0 X Y X XOR Y
0 0 0
0 1 1 0 0 0
0 1 0
1 0 1 0 1 1
1 0 0
1 1 1 1 0 1
1 1 1
1 1 0

X NON X
0 1
1 0
Les fonctions d’entrées – sorties
“Lecture-écriture”
• Pour assurer la communication entre l’homme et la machine, les algorithmes ont
besoin de données à traiter qui seront communiquées au programme par
l’intermédiaire du clavier, Les résultats trouvés doivent être affiché à l’écran. à
Ces deux opérations sont assurées par les 2 fonctions: Lire et Ecrire
Instruction Lire
La fonction Lire permet au programme de lire les données à partir du clavier.
• Syntaxe:

Lire (variable1,variable2,….)

➢Dès que le programme rencontre une instruction lire, l’exécution s’arrête en


attendant la saisie d’une valeur au clavier
Instruction Ecrire
• Elle permet d’afficher des informations à l'écran.
• Il est conseillé d’écrire des libellés à l’écran avant de lire une variable, pour
prévenir l’utilisateur de ce qu’il doit saisir.

Syntaxe : Ecrire (expression)

• expression : peut être une valeur, un résultat, un message, ou le contenu d'une


variable
Exercice
• Ecrire un algorithme qui demande un nombre à l’utilisateur, puis qui
calcule et affiche le carré de ce nombre.
Solution
Algorithme calcul_carre
Variables: nb,carre : Réel
Début
Ecrire( " Veuillez saisir un nombre ")
Lire ( nb)
carre ← nb* nb
Ecrire( " le carré de ", nb, " est : ", carre )
Fin
Les structures conditionnelles:
Si
• La structure conditionnelle Si permet d’exécuter certaines instructions
uniquement si une condition donnée est vraie. Elle peut éventuellement inclure
une partie Sinon pour exécuter d’autres instructions lorsque la condition est
fausse.
• Structure de base :
Si condition Alors
instructions_si_vrai
Sinon
instructions_si_faux
FinSi
• condition : expression qui peut être vraie ou fausse.
• instructions_si_vrai : exécutées si la condition est vraie.
• instructions_si_faux : exécutées si la condition est fausse.
Exemple 1
• Ecrire un algorithme qui affiche la valeur absolue d’un réel x
Solutions
Algorithme valeur_absolue Algorithme valeur_absolue
Variables: x,y : Reel Variables: x,y : Reel
Début Début
Ecrire( " Veuillez saisir un nombre") Ecrire( " Veuillez saisir un nombre")
Lire ( x) Lire ( x )
Si (x > 0) alors
y←x
y←x
Si (x<0) alors
Sinon
y←-x
y←-x
Finsi Finsi
Ecrire( " La valeur absolue de " , x , " est " , y) Ecrire( " La valeur absolue de " , x , " est" , y)
Fin Fin
Exemple 2
• Ecrire un algorithme qui affiche le max de deux réel x et y.
Solution
• Algorithme max_valeur
• Variables: x , y, max : Reel
• Début
• Ecrire( " Veuillez saisir 2 nombres")
• Lire ( x , y )
• Si (x >= y) alors
• max ← x
• Sinon
• max ← y
• Finsi
• Ecrire( " le max est " , max)
• Fin
Autre forme de SI

Si (Condition 1) alors
Si (Condition 2) alors
Bloc d’instructions A
Sinon
Bloc d’instructions B
Finsi
Sinon
Si (Condition 3) alors
Bloc d’instructions C
Finsi
Finsi
Exemple
• Ecrire un algorithme qui demande à l’utilisateur de saisir un chiffre et affiche
ensuite, si le nombre est positif, négatif ou nul
Algorithme signe
Variables: x: Réel
Solution Début
Ecrire( " Veuillez un nombre")
Lire ( x )
Si (x > 0 ) alors
Ecrire( " Positif")
Sinon
Si (x = 0 ) alors
Ecrire( " Nul")
Sinon
Ecrire( " Négatif")
Finsi
Finsi
Fin
Exercice
• Ecrire un algorithme qui affiche le max de 3 réel x , y et z
Algorithme max_valeur
Variables: x , y, z , max : Reel
Début
Solution Ecrire( " Veuillez saisir 3 nombres")
Lire ( x , y , z )
Si (x >= y) alors
Si (x >= z) alors
max ← x
Sinon
max ← z
Finsi
Sinon
Si (y >= z) alors
max ← y
Sinon
max ← z
Finsi
Finsi
Ecrire( " le max est " , max)
Fin
Structure conditionnelle Selon
• comparer une seule variable à une liste de valeurs connues à l'avance
• La variable de la structure de selon ne peut pas être de type Réel
• Syntaxe :
Selon Variable
Valeur 1 : Instruction1
Valeur 2 : Instruction2
…………………………………
…………………………………
…………………………………
Valeur n : Instruction n
Autrement : autre instruction
Finselon
Exemple
• Ecrire un algorithme qui demande à l’utilisateur de saisir un entier
compris entre 1 et 7 et affiche ensuite le jour correspondant
Solution:
Algorithme Jour_semaine
Variables: x: entier
Début
Ecrire( " Veuillez saisir un nombre compris entre 1 et 7")
Lire ( x )
Selon x
1 : Ecrire( " Lundi")
2 : Ecrire( " Mardi")
3 : Ecrire( " Mercredi")
4 : Ecrire( " Jeudi")
5 : Ecrire( " Vendredi")
6 : Ecrire( " Samedi")
7 : Ecrire( " Dimanche")
Autrement : Ecrire( " Le nombre doit etre compris entre 1 et 7")
Finselon
Fin
Organigramme
• Un organigramme est une représentation graphique de l’algorithme.
• La norme adoptée dans ce cours est : ISO5807
Symboles de l’organigramme
Organigramme de la valeur absolu

Vous aimerez peut-être aussi