Vous êtes sur la page 1sur 47

Organisation du module

§ Élément 1 : Algorithmique
o Chapitre 1: éléments de base
o Chapitre 2: les structures conditionnelles et les structures répétitives
o Chapitre 3: Les tableaux
o Chapitre 4 : Les fonctions et les procédures
o Chapitre 5: Algorithmes avancés
§ Élément 2 : Programmer en Python

o Chapitre 1: éléments de base


o Chapitre 2: Les fonctions, les procédures et les modules
o Chapitre 3: les structures de données
o Chapitre 4: Gestion des exceptions
o Chapitre 5: Les interfaces graphiques
Modalités d’enseignement

§ Algorithmique : Présentiel enrichi

§ Python : Classe inversée

3
Plate-forme adoptée

§ Moodle: http://ead.uit.ac.ma

§ La clé d’inscription au cours : ALGO-PYTHON

4
Evaluation du module
Devoirs 15%

Contrôle continu 35%

Contrôle final 50%

5
Chapitre 1:
Eléments de base

6
Plan du chapitre 1
1. Introduction

2. Structure générale d’un algorithme

3. Variables

o Déclaration

o Affectation
4. Opérateurs

5. Fonctions d’entrées-sorties

7
1- Introduction

8
Définition
§ Le mot algorithme vient du nom du mathématicien « Al-Khawarizmi »

latinisé en Algoritmi. Née en 780 et mort vers 850 à Bagdad


Définition :
§ Un algorithme est une suite d’instructions qui une fois exécutée

correctement, conduit à un résultat donnée

9
Exemples
o Vous avez déjà préparé une recette à partir d’un livre de recettes de
cuisine?

o Avez-vous déjà monté une table achetée chez kitea?

à Vous avez déjà exécuté des algorithmes.

Encore plus fort :

o Avez-vous indiqué un chemin à un touriste égaré?

à Vous avez déjà conçu des algorithmes


Comment trouver un algorithme?
§ Questions à se poser:

1. Quel est le résultat recherché?


2. Quelles sont les données dont on dispose?
3. Quels sont les instructions que nous devons
appliquer aux données pour trouver le résultat?

11
Exemple : résolution de l’équation ax+b=0
§ Le résultat recherché : la valeur de x
§ Les données : a et b entiers
§ Les instructions
Écrire( " résolution de l ’équation : ax+b=0 ")
lire(a)
lire(b)
Si a est non nul alors
Ecrire( -b/a)
sinon
si b est non nul alors
Ecrire ("l'équation est insoluble")
sinon
Ecrire (" tout réel est solution)")
Définition
§ Remarque : l’algorithme ne peut être exécuté par une machine! (qui ne

comprend que des 0 et des 1)


à l’algorithme doit être traduit dans un langage de programmation

§ Un programme est la traduction d’un algorithme dans un langage

informatique particulier et parfaitement précis.


Processus de résolution de problèmes

Problème Algorithme Codage ou Programme Exécution


Résultats
Analyse
Implémentation

14
Processus de résolution de problèmes
§ Écrire formellement la solution (algorithme) sur papier

o utiliser un pseudo langage

o Utiliser des algorigrammes

§ Vérifier votre solution sur un exemple


§ Traduire dans un langage de programmation
§ Tester le programme sur différents jeux de tests
o le jeux de tests doit être « suffisant »
o ne pas oublier les cas particuliers, …
Remarque
§ Un programme n’est pas directement interprété par la machine, il

doit être traduit en langage machine. Cette traduction est faite


automatiquement par un programme appelé « COMPILATEUR »
ou « INTERPRETEUR »

16
Traduction de l’algorithme en pascal
Algorithme Resoultion_Equation
Début
Ecrire( " Entrer la valeur de a : ")
Lire (a)
Ecrire( " Entrer la valeur de b : ")
Lire (b)
Si a <>0 alors
Ecrire( " la solution est :" , -b/a)
sinon
si b=0 alors
Ecrire ("l'équation est insoluble")
sinon
Ecrire (" tout réel est solution")
Finsi
Finsi
Fin 17
Traduction de l’algorithme en Python
Algorithme Equation_Premier_Degre
Début
Ecrire( " Entrer la valeur de a : ")
Lire (a)
Ecrire( " Entrer la valeur de b : ")
Lire (b)
Si a <>0 alors
Ecrire( " la solution est :" , -b/a)
sinon
si b=0 alors
Ecrire ("l'équation est insoluble")
sinon
Ecrire (" tout réel est solution")
Finsi
Finsi
Fin 18
Pourquoi apprendre l’algorithmique pour apprendre à programmer ?

èParce que l’algorithmique exprime les instructions résolvant un problème

donné indépendamment des particularités de tel ou tel langage.

èApprendre l’algorithmique, c’est apprendre à manier la structure logique

d’un programme informatique. Cette dimension est présente quelle que


soit le langage de programmation, plus précisément : Apprendre
l’algorithmique de manière séparée, c’est donc sérier les difficultés pour
mieux les vaincre.
2- Structure générale d’un
algorithme

20
Structure générale d’un algorithme
Algorithme Nom_algorithme L’entête de l’algorithme

Constantes: déclaration des constantes


La partie déclaration
Variables: Déclaration des variables

Début

Bloc d’instructions La partie traitement

Fin

21
Exemple
Algorithme surface_cercle
Constantes: pi ← 3,14
Variables: rayon,surface : Réel
Début
Ecrire( " Veuillez saisir le rayon ")
Lire ( rayon)
surface ← rayon* rayon*pi
Ecrire(surface)
Fin
3- Variables

23
Définition
§ Les variables sont des emplacements réservés dans la mémoire auxquels

on attribut une étiquette (un identificateur)


§ Déclarer une variable c’est indiquer le nom et le type de valeurs que peut

stocker cette variable


§ Pour employer une image, une variable est une boîte, que le programme
(l’ordinateur) va repérer par une étiquette. Pour avoir accès au contenu
de la boîte, il suffit de la désigner par son étiquette.

Valeur de la
variable

Nom de la variable 24
Le nom d’une variable
§ Le nom de la variable (l’étiquette de la boîte) obéit à des

impératifs changeant selon les langages:

o Un nom de variable correct commence impérativement par


une lettre.

o comporte des lettres et des chiffres, mais qui exclut la plupart


des signes de ponctuation, en particulier les espaces.

25
Types de variables
§ On distingue 5 types de base:

o Le type entier (Positif et négatif)

o Le type réel

o Le type booléen (vrai, faux)

o Le type chaine de caractères

o Le type caractère ( une lettre, un chiffre ou un symbole)

26
L’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


Syntaxe :

Objet ← valeur
Exemple:
pi ← 3,14
message ← " Bonjour "
rayon ← 5
reponse ← Vrai
Choix ← " N " 27
L’affectation
§ dans une instruction d’affectation, on trouve à gauche de la

flèche, un nom de variable, et uniquement cela.


§ si on voit à gauche d’une flèche d’affectation autre chose qu’un

nom de variable, on peut être certain à 100% qu’il s’agit d’une


erreur.
§ À la droite de la flèche on trouve soit une valeur ou une

expression
A←5
B←2
C←A*B 28
Remarque

En informatique, une variable possède à un


moment donné une valeur et une seule.

29
Exercice 1.1
Quelles seront les valeurs des variables A, B et C après exécution
des instructions suivantes ?
Variables: A, B : Entier
Début
A←5
B←3
C←A+B
A←2
C←B–A
Fin A=2
B=3
C=1
30
Exercice 1.2
Quelles seront les valeurs des variables A et B après exécution des
instructions suivantes ?
Variables: A, B :Entier
Début
A←5
B←A+4
A←A+1
B←A–4
Fin A=6
B=2

31
Exercice 1.3
§ Quelles seront 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
les deux dernières instructions permettent-elles d’échanger les deux
valeurs de B et A ? Si l’on inverse les deux dernières instructions, cela
change-t-il quelque chose ?
Corrigé
§ Instruction La valeur des variables après :
A←5 A=5 B=?
B←2 A=5 B=2
A←B A=2 B=2
B←A A=2 B=2
§ Les deux dernières instructions ne permettent donc pas d’échanger les

deux valeurs de B et A, puisque l’une des deux valeurs (celle de A) est ici
écrasée.
Si l’on inverse les deux dernières instructions, cela ne changera rien du
tout, hormis le fait que cette fois c’est la valeur de B qui sera écrasée.
Exercice 1.4
§ Ecrire un algorithme permettant d’échanger les valeurs de deux

variables A et B, et ce quel que soit leur contenu préalable.


Corrigé
Variables A, B :Entier
Début
C←A
A←B
B←C
Fin
§ On est obligé de passer par une variable dite temporaire (la

variable C).
4 – Les opérateurs

36
Les types d’opérateurs

1. Opérateurs arithmétiques
2. Opérateurs de comparaison
3. Opérateur de concaténation
4. Opérateurs logiques

37
1- Opérateurs arithmétiques
Exemple:
+ : addition
Variables: A, B en Entier
- : soustraction Début
A←7
* : multiplication B←3 C=2
C ← A div B D=1
/ : division D ← A mod B
div: division entière
Fin
mod : reste de la division entière
à on a le droit d’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.

38
2 - Opérateurs de comparaison
§ Opérateurs de comparaisons : =, >, >=, <=, <>

§ Remarque:

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


booleen

39
3 - Opérateur de concaténation
§ Symbole: &

§ Cet opérateur permet de concaténer deux chaines de caractères

§ Exemple:
Algorithme concatener
Variables: nom,prenom,nom_prenom : chaines de caractères
Début
nom ← " Amrani "
prenom ← " Youssef "
nom_prenom ← nom&prenom
Fin
40
4 – opérateurs logiques
§ ET , OU , NON , OU exclusif (XOR)

A B A OU B A B A ET B A B A XOR B
0 0 0 0 0 0 0 0 0
0 1 1 0 1 0 0 1 1
1 0 1 1 0 0 1 0 1
1 1 1 1 1 1 1 1 0

A NON A
0 1
1 0
41
5 – Les fonctions d’entrées – sorties
ou
Lecture-écriture

42
Les instructions Lire et Ecrire
§ 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

43
L’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

44
L’instruction Ecrire
§ La fonction Ecrire permet d’afficher les résultats à l’écran

Syntaxe:
Ecrire (variable,expression, " message " )
è Avant de Lire une variable, il est très fortement conseillé d’écrire
des messages à l’écran, afin de prévenir l’utilisateur de ce qu’il doit
saisir comme donné (sinon, l’utilisateur passe son temps à se
demander ce que le programme attend de lui)

45
Exercice 1.5
Ecrire un algorithme qui demande un nombre à l’utilisateur, puis
qui calcule et affiche le carré de ce nombre.
Corrigé
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

Vous aimerez peut-être aussi