Académique Documents
Professionnel Documents
Culture Documents
de Chimie de Kénitra
Module : Informatique 1
(S2)
• Partie 1 : Algorithmique
“
”
• Partie 1 : Algorithmique
• Organisation du cours
• Introduction
• Généralités
• Formalismes et structures
• Notion e variable
• Structures de contrôle
• Programmes et sous programmes
• Les fonctions
• Les procédures
• Exercices d’applications
• A noter !
• Un peu d’histoire
• Algorithme séquentiel
• Les opérations s’exécutent en séquence
• Algorithmes Parallèles
• Les opérations s’exécutent sur plusieurs processeurs en parallèle
• Un algorithme célèbre …
• Algorithme d’Euclide (vers 300 av. J.-C)
• Permet de calculer le Plus Grand Commun Diviseur (PGCD) de deux nombres
• De haut niveau :
➢ L’algorithme doit pouvoir être traduit en n’importe quel langage de
programmation, il ne doit donc pas faire appel à des notions techniques
relatives à un programme particulier ou bien à un système d’exploitation
donné.
• Précis :
➢ Chaque élément de l’algorithme ne doit pas porter à confusion, il est donc
important de lever toute ambiguïté.
• Structuré :
➢ Un algorithme doit être composé de différentes parties
facilement identifiées.
• Formalisme
• L’entête spécifie :
• Le nom de l’algorithme (Nom)
• Son utilité (Rôle)
• Les données “en entrée”, c’est-à-dire les éléments qui sont indispensables à
son bon fonctionnement (Entrée)
• Les données “en sortie”, c’est-à-dire les éléments calculés, produits, par
l’algorithme (Sortie)
• Les données “en entrée/sortie”, c’est-à-dire les éléments qui sont
indispensables et modifiés par l’algorithme (Entrée/Sortie)
• Les données locales à l’algorithmique qui lui sont indispensables (Déclaration)
• Caractéristiques :
• Identification (nom)
• Type de donnée (nature)
• Valeur (quantification)
• Emplacement mémoire (adresse et taille)
• Portée et accessibilité (comment les utiliser)
• Opérations réalisables :
• Affectation (notée ← … toujours de droite à gauche par convention)
• Comparaison ( =, >, <, ≥, ≤, ≠, ... )
• Opérations liées au type de donnée (+,*, AND, …) (entier, réel, booléen, …)
• Exemples :
• maVariable
• temperature
• MAX
• Remarque :
• Un identifiant doit être significatif (aide à la lisibilité de l’algorithme).
• Souvent l’utilisation d’une majuscule ou minuscule a une signification.
• Attention :
• Une fois qu’un type de données est associé à une variable, cette variable ne
peut plus en changer.
• Le contenu et le type de la variable doivent être du même type.
• Exemples :
En C ou en Java :
int maVariable;
identifiant type
maVariable = 2;
En Python la déclaration
est implicite gérée au
moment de l’affectation
• La séquence
• Les actions sont exécutées l’une après l’autre
• Notion de bloc d’instructions
Faire
…
…
Fait
• Actions possibles :
• Affectation : opérations arithmétiques ou logiques.
• Affectation : appels à une fonction.
• Appels à une procédure
• Opérations d’entrées/sorties (lire, écrire, imprimer, etc.)
Portion de l’organigramme
Organigramme complet
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Structures de controle
Portion de l’organigramme
Répéter
...
Tantque (condition ou valeur
booléenne)
Portion de l’organigramme
• Choix multiple
SelonQue
condition 1 faire
selon
...
Condition
fait ou
condition 2 faire valeur booléenne
… Condition
ou
fait valeur booléenne
Condition
sinon faire
… ou
valeur booléenne
…
fait …
Fin Selon
…
Portion de l’organigramme
• Application n°2
Veuillez remplir le tableau ci-contre contenant les évaluations
successives des variables i, j et s pour la ligne désignée.
Début
i!0 Iteration i j s
j!0 Init 0 0 0
s!0 #1
Pour i ! 1 a 3 par pas de 1 faire
#2
Evaluation des
variables à #3
j!3
cette ligne #4
TantQue j> i alors
j ! j-1 #5
s ! s+1 #6
finTantQue
FinPour
Programmes et sous-programmes
• Décomposer :
• « Diviser chacune des difficultés que j’examinerai en autant de parties qu’il se
pourrait et qu’il serait requis pour mieux les résoudre ». R. Descartes
• Combiner
• Résoudre le problème par combinaison d’abstractions.
• Comment ? (1)
• Ecrire un programme qui résout un problème revient toujours à écrire des
sous-programmmes qui résolvent des sous parties du problème initial.
• Comment ? (2)
• Lorsqu’un programme a été explicité (on a précisé son nom), son nom
devient alors une nouvelle instruction qui peut être utilisée dans d’autres
programmes.
• Les paramètres réels (ou effectifs) : sont les variables dont les
valeurs seront utilisées à l’exécution du programme .
• Exemple :
• Exemple :
programme exemple2 ( )
sous-programme somme2 ( E a,b : Entier, déclaration x,y, z, res : Entier
S c : Entier ) début
déclaration res : Entier x!1
début y!2
c!a+b somme( x, y, z)
fin somme2 res ! z
fin exemple2
• Exemple :
sous-programme carre( E/S x: Réel ) programme exemple3( )
début déclaration x0, x1: Réel
x ! x*x début
fin carre x0 ! 2
x1 ! x0
carre(x1)
fin exemple3
Les fonctions
• Définitions et caractéristiques
• Les fonctions sont des sous-programmes admettant des paramètres
formels et retournant un seul résultat comme les fonctions en maths :
y=f(x,y,…)
• Utilisation (appel)
Variable ! nom_fonction
( paramètres réels )
Une valeur du type spécifié pour la
fonction est renvoyée, et peut être
stockée dans une variable en retour
d’appel de fonction
Les procédures
• Définitions et caractéristiques
• Utilisation (appel)
Exercice 1