Vous êtes sur la page 1sur 52

Ecole Nationale Supérieure


de Chimie de Kénitra

Module : Informatique 1

(S2)

Pr. Anass Nouri


Février 2020
(www.anassnouri.github.io)
Plan du cours

• Partie 1 : Algorithmique

• Partie 2 : Programmation en Python

“ 

” 

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Plan du cours

• 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

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Organisation du cours

• A noter !

La répartition horaire peut changer en fonction 



du rythme d’avancement. (+/- de TDs/TPs que prévu…). 


Consultez régulièrement votre messagerie.

Les comptes rendus des TPs deveront être déposés



dans votre Environnement Numérique de Travail (E.N.T) avant la séance qui suit.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Introduction

• Un peu d’histoire

• Le mot algorithme vient du nom du mathématicien perse du IXème siècle av. JC


Abu Abdullah Muhammad ibn Musa al-Khwarizmi
• Euclide (285 av. JC), Archimède (212 av. JC), Erastosthènes (276 av. JC),
Averroès (1198) ont utilisé ce concept pour leurs propres travaux
• Le nom Khwarizmi apparaissait sous sa forme latinisée comme Algorismus, qui fut
bientôt prise pour synonyme de «calcul décimal pour les opérations
fondamentales» (XIIème siècle)
• Depuis le milieu du XXème siècle environ, il désigne non seulement une recette de
calcul, mais toute méthode séparable en opérations isolées et pouvant en principe
être effectuée par une machine.
• Le terme d'algorithme recouvre aujourd'hui un programme informatique écrit sans
lien avec un logiciel ou un langage informatique particuliers. Le concept a été
formalisé en 1936 avec les machines d'Alan Turing.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Introduction

• Qu’est ce qu’un algorithme?

Un algorithme est un processus systématique de résolution, par le


calcul, d'un problème permettant de présenter les étapes vers le résultat
à une autre personne physique (un autre humain) ou virtuelle (un
calculateur). En d'autres termes, un algorithme est un énoncé d’une
suite d’opérations permettant de donner la réponse à un problème.

Wikipedia

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Introduction

• Différentes classes d’algorihmes

• 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


• Algorithme réparti ou distribué


• Les opérations s’exécutent sur un réseau de processeurs.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Introduction

• 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


Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Généralités

• Caractéristiques d’un algorithme (1)


• Lisible :
➢ L’algorithme doit être compréhensible pour tout le monde.

• 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é.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Généralités

• Caractéristiques d’un algorithme (2)


• Concis :
➢ Un algorithme ne doit pas dépasser une page. Si c’est le 

cas, il faut décomposer le problème en plusieurs sous- 

problèmes.

• Structuré :
➢ Un algorithme doit être composé de différentes parties 

facilement identifiées.

Un algorithme doit suivre un certain formalisme

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Formalisme et structure

• 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)


• Le corps est composé :


• Du mot clé « Début »
• D’une suite d’instructions indentées
• Du mot clé « Fin»

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Formalisme et structure

• Exemple et structure générale d’un algorithme


Nom : moyenneDeuxEntiers
Rôle : Calcule la moyenne de deux entiers a et b et met le résultat
dans m
Entrée : a,b : Entier
Sortie : m : Entier
Entrée/sortie : -
Déclaration : s
Début
s←a+b
m←s/2
Fin

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Notion d’une variable

• Une variable (1)

• 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, …)

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Notion d’une variable

• Une variable (2)


• Identifiant
• Définition :
• Un identifiant est une suite de caractères qui permet de nommer les choses.

• 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.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Notion d’une variable

• Une variable (3)


• Type de données
• Un type caractérise :
• L’ensemble des valeurs que peut prendre une variable.
• L’ensemble des actions que l’on peut effectuer sur une variable (addition,
soustraction, …)

• 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.

• Exemple : si a et b sont des entiers alors


• a et b ne pourront pas stocker des réels.
• a et b ne pourront pas changer de type.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Notion d’une variable

• Une variable (4)


• Type de données
• Il y a deux grandes catégories de types :
• Les types simples.
• Les types complexes/composites.

• Chaque type est caractérisé par :


• L’espace des valeurs.
• Les opérateurs que l’on peut utiliser avec les éléments de ce type.

• Type de données dénombrables


• Ce dont le nombre d’éléments est fini:
• Booléen, (True ou False)
• Intervalle
• Enuméré
• Caractères
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Notion d’une variable

• Une variable (5)


• Type de données indénombrables
• Ceux dont le nombre d’éléments est infini
• Entier (positifs et négatifs)
• Naturel (entiers positifs)
• Réel (ex: 2.0)
• Chaine de caractères (ex. "Bonjour")

• Exemples :
En C ou en Java :
int maVariable;
identifiant type
maVariable = 2;

déclaration maVariable : Entier En Python:


maVariable=2

En Python la déclaration
est implicite gérée au
moment de l’affectation

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Notion d’une variable

• Une variable (6) - Représentation dans la mémoire

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Notion d’une variable

• Une variable (7)


• L’affichage d’une variable dépend de la représentation 

choisie pour l’afficher
Type Valeur Valeur en binaire Valeur en Valeur en
variable décimale hexa caractère
Entier 90 0000 0000 0000 0000 0x0000005A Z
0000 0000 0101 1010
Caractère 99 0110 0011 0x63 c

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Notion d’une variable

• Une variable (8)

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Structures de controle

• 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.)

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Structures de controle

• La structure alternative (1)


• L’objectif est d’effectuer une action en fonction d’une valeur booléenne

Si (condition ou valeur booléenne) Alors


...
Sinon
...
Fin Si

Portion de l’organigramme

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Structures de controle
Début
• La structure alternative (2)
• Exemple Algo. teste si un nombre en entrée

est positif

Nom : Positif test


Rôle : test si un nombre es positif 

Entrée : nbr : Entier Entrée : nbr
Sortie : - 

Entrée/sortie : -
Début Non
Oui nbr > 0
si (nbr > 0)
alors ecrire("nbr est positif")

sinon
 Ecrire("nbr est positif" ) Ecrire("nbr est négatif")
ecrire("nbr est négatif ")
Fin si
Fin
Fin Fin

Organigramme complet
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Structures de controle

• La structure répétitive (boucle) (1)


• Répétition avec test en entrée
• L’objectif est de répéter une instruction tant que la valeur de la condition
(ou valeur booléenne) est vraie. L’instruction ne s’exécute la première fois
que si la condition est vraie.

Tant que (condition ou valeur booléenne)


faire
...
Fin tantque

Portion de l’organigramme

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Structures de controle

• La structure répétitive (boucle) (2)


• Répétition avec test en sortie
• L’objectif est de répéter une instruction tant que la valeur de la condition 

est vraie. L’instruction s’exécute obligatoirement la première fois étant 

donné qu’il n’y a pas de test de condition

Répéter
...
Tantque (condition ou valeur
booléenne)

Portion de l’organigramme

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Structures de controle

• La structure répétitive (boucle) (3)


• Répétition avec avec une variable compteur
• L’objectif est de répéter une instruction en fonction de la valeur du 

compteur parcourant un intervalle. Très utilisée pour le parcours des 

collections indéxées (par exemple les tableaux).

Pour (variable_compteur <- début à fin par pas de X)



faire
...
Fin Pour

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Structures de controle

• 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

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Structures de controle

• Application n°1 Combien vaut la variable taux en fin de programme si :

- Durée vaut 10 et montant vaut 12000 ?

- Durée vaut 1 et montant vaut 10000 ?

Déclaration durée: Entier


montant : Entier
taux : Reel
Début
Si duree < 5 alors
Si montant < 10000 alors
taux <— 1.5
Sinon
taux <— 2.5
FinSi
Sinon
Si duree > 15 alors
taux <— 4
Sinon
Si montant > 20000 alors
taux <— 3.5
Sinon
taux <— 3
FinSi
FinSi
FinSi
Fin

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Structures de controle

• 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éclaration i,j ,s : Entier

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

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Plan du cours

Programmes et sous-programmes

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Programmes et sous programmes

• Etapes majeures pour écrire un programme


• Abstraire :
• Retarder le plus longtemps l’instant du codage (mettre l’accent d’abord sur
l’algorithme !)

• 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.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Programmes et sous programmes

• 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.

• Le programme dans un contexte donné peu être un sous-programme dans


autre contexte.
• Tout programme est aussi un sous-programme.

Conseil : un sous-programme fait peu


de choses, mais le fait bien !!!

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Programmes et sous programmes

• Comment ? (2)

• Un programme est obligatoirement caractérisé par un nom unique.


• 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.


• Le programme qui utilise un sous-programme est nommé programme


appelant.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Programmes et sous programmes

• Le passage des paramètres (1)


• Il existe deux types de paramètres :
• Les paramètres formels : sont là pour la « forme », pour définir
l’emplacement et le type de ce qui est attendu en entrée ou sortie du
programme.


• Les paramètres réels (ou effectifs) : sont les variables dont les
valeurs seront utilisées à l’exécution du programme .

Programme-A ( paramètres formels) Sous-programme-B ( paramètres formels)


Debut Debut
sous-programme-B ( paramètres réels ) …
… Fin
Fin

#programme en python #programme en python


int x,y; def somme( int u, int v )
xe ty u= u + v;
Copie de
return( u );
x=1; y=2;
res = somme( x, y )

#x et y ne sont pas modifiés


Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Programmes et sous programmes

• Le passage des paramètres (2)


• On appelle passage des paramètres, l’association que l’on fait entre
les paramètres formels et les paramètres réels.


• Il existe 3 types d’association :


• Le passage de paramètre en entrée


• Le passage de paramètre en sortie
• Le passage de paramètres en entrée/sortie

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Programmes et sous programmes

• Le passage des paramètres en entrée

• Exemple :

sous-programme somme ( E a,b: Entier ) programme exemple ( )


déclaration res : Entier déclaration a,b,res : Entier
début début
res ! a + b a!1
afficher res b!2
fin somme somme( a, b)
fin exemple

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Programmes et sous programmes

• Le passage des paramètres en sortie

• 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

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Programmes et sous programmes

• Le passage des paramètres en entrée/sortie

• 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

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Plan du cours

Les fonctions

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


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,…)


• Le passage des paramètres est (presque) toujours en entrée (les


variables sont précédées par Entrée ou E): c’est pour cela qu’il n’est
pas toujours précisé.


• Lors de l’appel, on peut donc utiliser comme paramètre


• Des variables.
• Des constantes (si passage de paramètres en entrée)
• Des résultats de fonction (si passage de paramètres en entrée)


• La valeur de retour est spécifiée par l’instruction retourner.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les fonctions

• Définitions et caractéristiques (2)


• Exemple : différence entre programme et fonction

Programme addition ( E a, b : Entier, S s : fonction addition ( E a, b : Entier) : Entier


Entier ) Déclaration s : Entier
Déclaration somme : Entier Début
début s ! a+b
s ! a+b retourner (s)
fin addition fin addition

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les fonctions

• Définitions et caractéristiques (3)


• Déclaration
fonction nom_fonction ( paramètres formels ) : type de la
variable de retour
début
...
retourner (valeur)
fin nom

• 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

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les fonctions

• Exemple : fonction + programme l’appelant

fonction addition ( E a, b ) : Entier programme exemple ( )


Déclaration somme : Entier Déclaration nombre1, nombre2, resultat : Entier
début début
somme ! a + b nombre1 ! 4
retourner (somme) nombre2 ! 3
fin addition resultat ! addition(nombre1, nombre2)
fin exemple

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Plan du cours

Les procédures

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les procédures

• Définitions et caractéristiques

• Les procédures sont des sous-programmes qui ne retournent aucun


résultat.


• Elles admettent des paramètres avec des passages :


• en entrée, préfixés par Entrée (ou E)
• en sortie, préfixés par Sortie (ou S)
• en entrée/sortie, préfixés par Entrée/Sortie (ou E/S)

Nous verrons en S3 que les « fonctions » du langage C peuvent


être à la fois des fonctions et des procédures

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les procédures

• Définitions et caractéristiques (2)


• Déclaration
procédure nom ( E param_entree : type ;
S param_sortie : type ;
E/S : param_entree_sortie : type )
début
...
fin nom

• Utilisation (appel)

nom ( paramètres réels )

aucune information n’est fournie



en retour d’appel

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Les procédures

• Exemple : procédure + programme l’appelant


programme exemple ( )
Déclaration nombre1, nombre2, resultat : Entier
début
nombre1 ! 4
nombre2 ! 3
addition(nombre1, nombre2, resultat)
afficher resultat
fin exemple

procédure addition ( E a, b : Entier, S c : Entier)


Déclaration somme : Entier
début
somme ! a + b
c ! somme
fin addition

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Plan du cours

Exercice 1

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Exercice 1

Proposez l'algorithme d'une fonction nommée abs (sous forme de


pseudo-langage) permettant de calculer la valeur absolue d'un réel
x. Ecrivez également un exemple de programme principal appelant
cette fonction et affichant le résultat. On pourra utiliser le
programme afficher(E x : Réel)

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Exercice 2

Proposez un sous-programme nommé nombresPairs (sous forme


de pseudo-langage) permettant d’afficher les nombres entiers pairs
inférieurs à n. Ecrivez également un exemple de programme
principal appelant le sous-programme pour une valeur de n égale à
10. Exemple : si n = 10 -> 0, 2, 4, 6, 8

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Exercice 3

Proposez l'algorithme d'une fonction nommée factorielleF (sous forme


de pseudo-langage) permettant de calculer la factorielle d'un entier
naturel n. Ecrivez également un exemple de programme principal
appelant cette fonction pour une valeur de n égale à 4 et affichant le
résultat.

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri


Exercice 3

Un magasin de reprographie facture 10 dhs les dix premières


photopcies, 9 dirhams les vingts suivantes, et 8 dhs au delà. Ecrivez
une fonction nommée calculPrix qui calcul le prix de n photocopies.
Ecrivez aussi le programme principal qui appelle la fonction pour n=55
et qui affiche le résultat

Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri

Vous aimerez peut-être aussi