L Informatique en Classes Préparatoires PDF

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 8

L’informatique en classes préparatoires

Algorithmique et programmation en Python

Cours et exercices corrigés


MPSI / PCSI / TSI

Chapitre 4 :
Outils de base de l’algorithmique

1re édition 2017


Table des matières

4 Outils de base de l’algorithmique 1


4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
4.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
4.3 Application en informatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
4.4 Notion d’objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
4.5 Les commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.6 Opérations de comparaison sur les objets . . . . . . . . . . . . . . . . . . . . . . 5
Chapitre 4
Outils de base de l’algorithmique

4.1 Introduction
Le mot algorithme vient du nom latinisé du mathématicien perse Al-Khawarizmi, écrivant
en langue arabe, surnommé  le père de l’algèbre . Le domaine qui étudie les algorithmes est
appelé l’algorithmique. On retrouve aujourd’hui des algorithmes dans de nombreuses applica-
tions telles que la cryptographie, le traitement d’image, la planification et l’utilisation optimale
des ressources, etc. (wikipédia).

Dans notre vie quotidienne, on exécute chaque jour des algorithmes. A titre d’exemple : se
préparer pour aller au travail le matin, appeler un ami au téléphone, préparer une recette de
cuisine, etc.

4.2 Définition
Un algorithme est une suite finie et non ambiguë d’opérations ou d’instructions permettant
de résoudre un problème(wikipédia).

L’efficacité d’un algorithme est calculée notamment par sa durée de calcul et par sa consom-
mation de mémoire RAM (en partant du principe que chaque instruction a un temps d’exécution
constant), d’où la discipline de calcul de la complexité algorithmique. Elle permet de prédire
l’évolution en temps calcul nécessaire pour amener un algorithme à son terme, en fonction de la
quantité de données à traiter.

Exemple :

Un exemple d’algorithme est celui que nous suivonslorsqu’on souhaite appeler un ami de-
puis une cabine téléphonique. Celui-ci se constitue d’un ensemble d’étapes comme présenté
ci-dessous :
Début
Décrocher l’appareil
Insérer les pièces nécessaires
Composer le numéro désiré
Communiquer
Raccrocher
Fin

1
CHAPITRE 4. OUTILS DE BASE DE L’ALGORITHMIQUE

4.3 Application en informatique


La résolution informatique d’un problème passe par un ensemble d’étapes. Ces dernières
peuvent être schématisées comme suit :

1. Analyse
2. Traduction
3. Exécution

4.4 Notion d’objet


Pour pouvoir fonctionner, un algorithme utilise un certain nombre d’objets. Ces derniers
peuvent être divisés en quatre grandes catégories :

Objets d’entrée : l’ensemble des données que l’utilisateur doit introduire à l’algorithme.

Objets de sortie : l’ensemble des résultats produits par l’algorithme.

Objets constants : l’ensemble des objets dont les valeurs ne changent pas au cours de toute
l’exécution de l’algorithme.

Objets intermédiaires : l’ensemble des objets de traitements internes, ils ne sont ni entrés ni
sortis, mais ils sont des compteurs, soit calcules à partir objets d’entrée et des objets constants
et serviront pour produire les objets de sortie.

Un objet est en général caractérisé par : son identificateur, sa valeur et son type.

4.4.1 Identificateur d’un objet


C’est un nom symbolique que nous attribuons à l’objet. Il est représenté par une suite de
caractères et doit obéir aux exigences suivantes :

— Il ne peut être composé que de lettres, majuscules ou minuscules, de chiffres et du symbole


souligné ’ ’.
— Il ne peut pas commencer par un chiffre.
— Le langage Python est sensible à la casse, (‘Age’ est différente de ‘age’).
— Certains mots-clés de Python sont réservés, c’est-à-dire que vous ne devez pas créer des
objets portant ce nom.
En voici quelques exemples :

and del is/as none True continue elif global


assert else if not while break except import
classe False in pass yield or finally from
nonlocal return for def raise try lambda ...

2
CHAPITRE 4. OUTILS DE BASE DE L’ALGORITHMIQUE

4.4.2 Valeur d’un objet


C’est le contenu courant d’un objet.

Exemple :

Algorithme Python
Pi ← 3.14 Pi = 3.14
K←5 K=5

4.4.3 Type d’un objet


Le type d’un objet constitue la nature de l’objet. C’est l’ensemble des valeurs qui peuvent
être prises par cet objet.

On peut classer les types de données en trois grandes familles :


— Les booléens.
— Les numériques.
— Les textes (Les chaı̂nes de caractères).
4.4.3.1 Type numérique
Le type numérique correspond à des intervalles de l’ensemble des entiers (négatifs et positifs)
et l’ensemble des nombres réels IR.

Exemple :

Algorithme Python
En Python, les variables peuvent être uti-
var
lisées sans les avoir déclarées. Leur typeest
n : entier
défini, implicitement, par Python en fonction
x : réel Python
des valeurs qui leur sont affectées.

Pour savoir de quel type est une variable. Python a fournit la fonction type. il suffit
d’écrie type(var) pour que Python vous affiche le type de la variable ’var’.

Les opérateurs les plus fréquents sur les numériques sont :

Operateur en algorithmique Operateur en Python Dénomination


+ + Addition
- - Soustraction
* * Multiplication
/ / Division
= = Affectation d’une valeur à une variable
∧ ** Elévation de puissance
DIV // Division entière
MOD % Reste de la division entière
ENT int Partie entière d’un réel

Pour simplifier les opérations, Python a introduit des operateurs supplémentaires :

3
CHAPITRE 4. OUTILS DE BASE DE L’ALGORITHMIQUE

Operateur Exemple Equivalence Effet


+= x += y x= x + y Affecte à la variable x le résultat de l’opération x+y
-= x -= y x=x-y Affecte à la variable x le résultat de l’opération x-y
*= x *= y x= x * y Affecte à la variable x le résultat de l’opération x*y
/= x /= y x=x/y Affecte à la variable x le résultat de l’opération x/y

4.4.3.2 Type Booléen


Le type booléen (bool) correspond à un ensemble de deux états logiques vrai, faux (True et
False)

Exemple :

Algorithme Python
a, b : boolèen
a = True
a ← vrai
b = False
b ← faux

Attention : True et False ont leur première lettre en majuscule. Si vous écrivez
True sans un T majuscule, Python ne va pas comprendre.

Les opérateurs qu’on peut utiliser sur les boolèens sont :

Operateur en algorithmique Operateur en Python Dénomination


ET and ET logique
OU or OU logique
NON not NON logique

4.4.3.3 Type Chaı̂nes de caractères


Une chaine de caractère correspond à une suite de caractères (lettres, chiffres, espace, ca-
ractères de ponctuation, caractères spéciaux. . . ).

Elle peut être écrite de différente façon :


— Entre guillemets (”ceci est une chaı̂ne de caractères”) ;
— Entre apostrophes (’ceci est une chaı̂ne de caractères’) ;
— Entre triples guillemets (”””ceci est une chaı̂ne de caractères”””).
Exemple :

Algorithme Python
var s = ”chaı̂ne de caractères”
s : chaine de caractères s = ‘chaı̂ne de caractères’
s ← ”chaı̂ne de caractères” s = ”””chaı̂ne
de caractères”””
s = “‘chaı̂ne
de caractères”’

Si une chaı̂ne de caractères délimitée par des guillemets (apostrophes) contient des
guillemets (apostrophes), ces derniers sont précédés par le caractère antislash

4
CHAPITRE 4. OUTILS DE BASE DE L’ALGORITHMIQUE

4.5 Les commentaires


Les commentaires sont des textes explicatifs destinés aux lecteurs du programme et qui n’ont
aucune incidence sur le résultat du programme.

Ils sont formés de caractères quelconques placés entre les symboles # et la fin de la ligne. Ils
peuvent apparaı̂tre à tout endroit du programme où un espace est autorisé.
Exemple :

Algorithme Python
var N=0 #initialisation de N
N ← 0 #initialisation de N

4.6 Opérations de comparaison sur les objets


On peut appliquer entre deux objets de même type une opération de relation dont le résultat
est une valeur booléenne : vrai ou faux (True ou False). Ces opérations sont :

Operateur en algorithmique Operateur en Python Dénomination


= == Opérateur d’égalité
< < Opérateur d’infériorité stricte
Opérateur de supériorité
> >
stricte
<= <= Opérateur d’infériorité
>= >= Opérateur de supériorité
<> != Opérateur de différence

Attention : l’égalité de deux valeurs est comparée avec l’opérateur ‘ == ‘ et non


‘=’. Ce dernier est en effet l’opérateur d’affectation et ne doit pas être utilisé dans
une condition.

Vous aimerez peut-être aussi