Vous êtes sur la page 1sur 41

Introduction à la logique Algorithmique

OUARMA I. & SYMPHOR J.E


Université des Antilles
Pôle Martinique

L2 Économie-Gestion

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 1 / 46


Introduction

Objectifs du cours

Connaître et Comprendre :
1 Les bases de la logique algorithmique
a) Conception des algorithmes basiques
b) Exécution conditionnelle
c) Les boucles
2 Les principes de la programmation
a) Comment programmer
b) Application de la programmation sous R
...

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 2 / 46


Introduction

1 Introduction
2 Algorithme
3 Programme
4 Algorithme et programme
5 L'interface R et quelques éléments de langage
6 Exécution conditionnelle
7 Boucles, répétition ou itération

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 4 / 46


Algorithme

Algorithme : Dénition et caractérisation

Dénition
Algorithmique, relatif à l'algorithme. C'est la science des algorithmes.
Dénitions
Algorithme n.m. (d'al-Kharezmi, médecin ar.). Math. Processus de
calcul permettant d'arriver à un résultat nal déterminé. PL éd 1980

Ensemble de règles opératoires dont l'application permet de résoudre


un problème énoncé au moyen d'un nombre ni d'opérations. Un
algorithme peut être traduit, grâce à un langage de programmation, en
un programme exécutable par un ordinateur. Larousse (consultable en
ligne)

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 5 / 46


Algorithme

Dénition
L'algorithme est une suite d'instructions qui permet d'obtenir un résultat
en exécutant les instructions comme il convient.
Notions essentielles dans la dénition
1 Description d'une démarche, d'un procédé
2 Succession d'opérations, séquence d'étapes
3 Instructions
4 Programme déni suivant un langage
5 Obtenir un résultat
6 Valeur(s) d'entrée

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 6 / 46


Algorithme

Un programme pour un problème


Un algorithme part d'un problème bien spécié. Ensuite, il décrit les
procédés pour résoudre le problème. Ces procédés sont indiqués au
calculateur sous forme d'instructions. Ces instructions sont consignées
dans un programme.

Problème ⇒ Algorithme ⇒ programme


Qualité d'un algorithme
Qualité du résultat implique qualité des instructions.
Validité : permet d'obtenir le résultat pour lequel il est construit.
La complexité (en temps ) : nombres d'instructions à réaliser pour
obtenir le résultat.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 7 / 46


Algorithme

Exemple et exercice

Exemple : Vous avez déjà guidé un individu qui se trouve à un point A


pour qu'il puisse se retrouver à un point B.
Vous l'avez fait en étant compréhensibles dans vos indications et
l'individu a bien suivi vos indications.
Vous avez utilisé un algorithme.

Exercice : Donner un exemple de tâche quotidienne et énumérer les


étapes élémentaires dans un ordre qui permet de réaliser cette tâche.

Exercice : On souhaite calculer le prix d'un bien après l'application


d'un taux de réduction. Décrire les diérentes étapes. Indication :
Indiquer le problème et les éléments nécessaires pour trouver la
solution.
OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 8 / 46
Programme

Programme : dénitions et caractérisation

Dénition
Le Programme désigne une série d'instructions pouvant s'exécuter en
séquence, ou en parallèle qui réalise (implémente) un algorithme.

Un programme permet de lire des données en entrée, de traiter ces


données en appliquant des algorithmes et d'écrire des résultats en
sortie.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 9 / 46


Programme

Le langage

Les instructions sont formulées suivant un langage (langage de


programmation).

Ce langage : ensemble de mots-clés (choisis arbitrairement) associé à


un ensemble de règles très précises. La syntaxe est à respecter
rigoureusement. Par exemple, un point-virgule oublié provoque une
erreur.

Ces mots permettent de former des  phrases  (code source) que


l'interpréteur ou le compilateur peut traduire en langage machine
(binaire) à l'ordinateur.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 10 / 46


Programme

Actions instruites dans un langage de programmation


Lecture
Lecture des données en entrée : données importantes pour les opérations
suivantes. Exemple : read.csv("...") ou (a <- 10 ; a)

Calcul
Eectuer des calculs : en utilisant les données d'entrée, il applique de manière
automatique des méthodes pour traiter les données et donner les résultats. Les
méthodes appliquées sont les algorithmes. Exemples d'algorithme : la moyenne,
l'addition.

Écriture
Écriture des données en sortie. Après calcul, le programme fournit un résultat
qu'il rend disponible en l'écrivant quelque part (écran ou mémoire). Exemple :
write.csv("...")

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 12 / 46


Programme

Principes de base d'une programmation

a) Programmer c'est rééchir et prévoir : il faut rééchir sur les


diérentes possibilités et les diérentes méthodes possibles.

b) Programmer c'est choisir et expliciter ses choix. Utiliser et documenter


les critères de choix.

c) Programmer c'est tester, prévoir et valider. Cela permet d'avoir des


programmes robustes et ables.

d) Programmer demande de l'endurance, de la précision et de la rigueur.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 13 / 46


Programme

Principes de base d'une programmation (suite)


L'intérêt des Algorithmes (et des programmes liés) est d'obtenir de la
"machine" un résultat qu'on devrait trouver soi-même.

Pour que la "machine" puisse faire le travail à notre place : il faut


pouvoir lui "expliquer" ce qu'elle doit faire et comment.

Pour ce faire
Savoir expliciter son raisonnement

Savoir formaliser son raisonnement : Dire avec précision et suivant les


règles en vigueur

Savoir concevoir et écrire une séquence d'instructions qui décrit


comment résoudre un problème spécique
OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 14 / 46
Algorithme et programme

Algorithme et programme : distinction

L'algorithme désigne la structure logique d'un programme. Il est


indépendant du langage de programmation ;

L'algorithme est une notion plus large que le programme ;

L'algorithme proprement dite s'arrête là où commence la


programmation.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 15 / 46


Algorithme et programme

Algorithme et programme : deux espaces d'interventions


Spécication du problème
L'espace de spécication du problème.

La spécication consiste à dénir complètement et clairement le


problème.

La spécication d'un algorithme décrit ce que fait l'algorithme et dans


quelles conditions il le fait (dénition ou déclaration de données).

Cette étape est indispensable pour dénir clairement l'algorithme et


ses eets.

La spécication est la description précise des tâches et des cas permis.


OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 16 / 46
Algorithme et programme

Algorithme et programme : espace du problème

Spécication ⇒ données + résultat attendu.

Cet espace correspond à l'espace où l'algorithme se déni.

L'algorithme a la structure générale suivante :


1 Un début
2 L'existence de conditions déterminant ou non certaines étapes
3 Les opérations à réaliser par étapes
4 L'ordre d'exécution des diérentes étapes
5 Une n

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 17 / 46


Algorithme et programme

Algorithme et programme : écriture de l'algorithme


Schéma
Données ⇒ Transformation à faire sur les données ⇒ Résultats
1 Algorithme : indication de la nature du problème (objectif ou nalité)
2 Entrée (données d'entrée, situation de départ, leurs types)
Donnée 1
Donnée 2
Donnée · · ·
3 Résultat attendu (nature-type)
4 Précondition (condition à satisfaire par les données pour pouvoir être
transformées)
Condition 1
Condition 2
Condition · · ·
5 Eet-Réalisation : Étape(s)- Règle(s) de transformation dans l'ordre
Étape 1 : règle ou méthode de transformation
Étape 2 : règle ou méthode de transformation
Étape · · ·
6 Postcondition (achage du résultat)
7 Fin
OUARMA I. & de l'algorithme
SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 18 / 46
Algorithme et programme

Algorithme et programme : espace de la solution

L'espace de la solution (implémentation des instructions pour la


solution). L'implémentation d'un algorithme décrit comment fait
l'algorithme pour satisfaire sa spécication.

L'implémentation utilise une machine et un interpréteur (Ici R).

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 22 / 46


L'interface R et quelques éléments de langage

Lecture ou écriture des données : dans le répertoire, la


mémoire etc.
Lecture : dénition et procédure
Lecture : instructions permettant de rentrer des valeurs au clavier pour
qu'elles soient utilisées par le programme.

La lecture peut se faire par l'entrée (saisie) au clavier (<-) ou par


l'importation read.table( " "), load(" /.RData")
Indexation
L'indiçage présente deux utilités principalement : extraire des éléments d'un
objet avec la construction W[i], ou les remplacer avec la construction W[i]
<- y.
Possibilités : extraire en indiquant la position W[c(1,10)], éliminer en
indiquant les positions précédées de signe moins W[c(-1,-10)], extraire avec
les noms
OUARMA de caractères
I. & SYMPHOR J.E (UA)W[c("I","Z")], extraire
Introduction à la logique tout W[L2] Économie-Gestion
Algorithmique W[W<0] 25 / 46
L'interface R et quelques éléments de langage

Écriture
Écriture : instructions permettant au programme de communiquer des
valeurs à l'utilisateur en les achant à l'écran.

Pour écrire et acher des textes sous R : print(" "), cat("").

Pour écrire ou acher le contenu ou la valeur d'une variable : indiquer à la


ligne de commande le nom de la variable ou de l'objet.

Pour enregistrer (exporter) dans un répertoire : write.table( ) ; save( )

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 26 / 46


L'interface R et quelques éléments de langage

Les variables : dénitions

Les désignations dans le langage de la programmation se font à travers des


variables.
Variable
Une variable est un objet informatique (une instance) qui associe un nom à
une valeur qui peut éventuellement varier au cours du temps.

Elle sert à stocker (provisoirement) une information (valeur, nom etc.) au


cours d'un programme.

La déclaration d'une variable consiste à donner son nom et son type.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 27 / 46


L'interface R et quelques éléments de langage

Les variables : les noms

Comment nommer
Les noms de variables sont des identicateurs arbitraires, ( courts,
explicites, exprime clairement la référence).

Les caractères permis pour les noms d'objets : minuscules a-z ; majuscules
A-Z, les chires 0-9, le point  .  et le caractère de soulignement  _ .
á Les noms d'objets ne peuvent commencer par un chire.
á S'ils commencent par un point, le second caractère ne peut être un
chire.
á R est sensible à la casse
á Certains mots sont réservés : non autorisés comme nom d'objet : break,
else, for, function, if, in, next, repeat, return, while, TRUE, FALSE, ...
OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 28 / 46
L'interface R et quelques éléments de langage

Les variables : Type et mode


Type d'une variable
Le type précise le domaine des valeurs de la variable.

Le type précise aussi l'ensemble des opérations applicables.

Exemple : avec le type factor l'addition usuelle n'est pas autorisée.


Mode d'une variable
Le mode prescrit ce qu'un objet peut contenir. À ce titre, un objet ne peut
avoir qu'un seul mode

Le mode et le type d'un objet sont souvent identiques


OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 29 / 46
L'interface R et quelques éléments de langage

Type de variables

Table  Types de variables et correspondances sous R


En statistique Sous R
Continue numeric (integer)
Discrète numeric (integer)
Nominale factor
Ordonnée ordered
Table  Mode
Mode Contenu de l'objet
numeric nombres réels
complex nombres complexes
logical valeurs booléennes (vrai/faux)
character chaînes de caractères
function fonction
OUARMA I. & SYMPHOR list données
J.E (UA) Introduction quelconques
à la logique Algorithmique L2 Économie-Gestion 30 / 46
L'interface R et quelques éléments de langage

Aectation : Dénition

Aectation
L'aectation est une instruction qui consiste à attribuer une valeur à une
variable.
Toute commande R est soit une expression, soit une aectation.
Expression
Une expression : ensemble de valeurs, reliées par des opérateurs, et
équivalent à une seule valeur.

Opérateur : signe qui relie deux valeurs, pour produire un résultat.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 31 / 46


L'interface R et quelques éléments de langage

Opérateur

Table  Quelques opérateurs usuels sous R


Opérateur Fonction
$ extraction d'une liste
- changement de signe
: génération de suites
%*% %% %/% produit matriciel, modulo, division entière
*/ multiplication, division
+- addition, soustraction
< <= == plus petit, plus petit ou égal, égal
>= > != plus grand ou égal, plus grand, diérent de
! négation logique
& &&  et  logique
|, ||  ou  logique
-> - assignation (aectation)
<- - assignation (aectation)
OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 32 / 46
L'interface R et quelques éléments de langage

L'aectation : La démarche d'aectation


ä Lecture : On attribue la valeur de droite à la variable de gauche
ä Le rôle des guillemets dans les chaînes de caractères :

ã Ils indiquent qu'on aecte à la variable une suite de caractères

ã Sans les guillemets, l'opération signie qu'on aecte à une variable le


contenu d'une autre variable.

ã Si cette variable (à droite) n'existait pas, l'opération se solde par une


erreur d'exécution.
ä A gauche de la èche, un nom de variable

ä A droite de la èche, une expression


OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 33 / 46
L'interface R et quelques éléments de langage

Aectation : ses eets

• Créer et mémoriser un nom de variable

• Attribuer à la variable un type bien déterminé

• Créer et stocker une valeur particulière

• Établir un lien entre le nom de la variable et l'emplacement mémoire


de la valeur correspondante

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 34 / 46


L'interface R et quelques éléments de langage

Aectation : Exemple
Début
Niveau <- "Licence"
Travail <- "Niveau"
Fin
Exemple 2
Début
Niveau <- "Licence"
Travail <- Niveau
Fin
Exemple 3
Début
Niveau <- "Licence"
Travail <- TD
Fin
OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 35 / 46
L'interface R et quelques éléments de langage

Aectation : Ordre des instructions


L'ordre des instructions aecte le résultat nal.
Exemple :
Variable Prix (Numérique)
Début
Prix <- 100
Prix <- 120
Fin
Exemple 2
Variable Prix (Numérique)
Début
Prix <- 120
Prix <- 100
Fin
OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 36 / 46
L'interface R et quelques éléments de langage

Ordre des instructions : aectation par la permutation


L'ordre des instruction aecte le résultat nal.
Exemple :
Variable Prix (Numérique)
Début
PrixY <- 100
PrixX <- 120
PrixX <- PrixY
PrixY <- PrixX
Fin
Exemple 2
Variable Prix (Numérique)
Début
PrixS <-PrixX
PrixX <- PrixY
PrixY <- PrixS
Fin
OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 37 / 46
Exécution conditionnelle

Exécution conditionnelle : dénition

Les instructions d'un algorithme s'exécutent les unes après les autres, dans
l'ordre d'écriture

Le  chemin  suivi à travers un algorithme : ux d'instructions

Les constructions qui modient le ux : instructions de contrôle de ux

Les instructions conditionnelles sont des instructions de contrôle de ux

L'exécution conditionnelle permet d'exécuter un code diérent selon les


valeurs des variables ou les résultats d'un calcul.
OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 38 / 46
Exécution conditionnelle

Exécution conditionnelle : dénition 2

Condition
Une condition est une comparaison.

Une condition est composée de trois éléments :


æ Une valeur
æ Un opérateur de comparaison
æ Une autre valeur

La comparaison se fait entre deux valeurs de même type.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 39 / 46


Exécution conditionnelle

Exécution conditionnelle : opérateurs

Opérateur de comparaison
égal à (==)
diérent de ( !=)
strictement plus petit que (<)
strictement plus grand que (>)
plus petit ou égal à (<=)
plus grand ou égal à (>=)
Avec l'instruction conditionnelle, le programme teste une condition.
Si elle est vériée le programme exécute une instruction.
Si elle n'est pas vériée, le programme exécute une autre instruction.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 40 / 46


Exécution conditionnelle

Exécution conditionnelle : les formes

Exécution conditionnelle peut avoir plusieurs formes


La forme simple
Exécuter une instruction sous condition préalable : if(condition)instructions

La forme alternative simple


Choisir entre deux instructions selon qu'une condition est vériée ou non.
if(condition){ instructions A }else { instructions B }

La forme alternative multiple


Choisir entre plusieurs instructions en "cascadant" des alternatives simples

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 41 / 46


Exécution conditionnelle

Exécution conditionnelle sous R

structure "si_alors" (simple)


if (condition)
[...] instructions exécutées si la condition est vraie

structure "si_alors_sinon" (alternative simple)


if (condition)
[...] instructions exécutées si la condition est vraie
else
[...] instructions exécutées si la condition est fausse

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 42 / 46


Boucles, répétition ou itération

Dénition

Itération
Itératif : fait ou répété plusieurs fois

Itération consiste à répéter plusieurs fois la même une même série


d'instructions
L'itération conditionnelle permet sous condition préalable de répéter zéro
ou plusieurs fois la même instruction
Intérêt : faire de la récurrence ; traiter de gros volume de données.

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 43 / 46


Boucles, répétition ou itération

Boucle : constitution

Instruction d'initialisation : point de démarrage de l'itération

Instruction de la condition d'arrêt : l'itération continu ou s'arrête

Instruction de progression : Modication de l'état des variables pour


arrêter l'itération à un moment via la condition d'arrêt.
Plusieurs type de boucles
Boucle for
Boucle while
Boucle repeat... break

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 44 / 46


Boucles, répétition ou itération

Boucle while

Intérêt
Répéter plusieurs fois une même instruction :
Les instructions [...] sont exécutées tant que (while) la condition est
vériée.
Dès que la condition est fausse : on  sort  de la boucle, on arrête.
Début
while (condition logique)
[...] instructions à exécuter tant que la condition est vraie
Fin

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 45 / 46


Boucles, répétition ou itération

Boucle for

Intérêt
Répéter une instruction un nombre de fois connu et déni a priori
Début
for (variableindice in (valeurInitiale : valeurFinale))
[...] instructions à exécuter tant que la condition est vraie
Fin

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 46 / 46


Boucles, répétition ou itération

Boucle repeat break

Intérêt
Répéter une instruction
Début
repeat {
[...] instructions à exécuter
}
Fin

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 47 / 46


Boucles, répétition ou itération

Boucles : étapes de constitution

1 Faire une hypothèse sur l'état actuel : énoncer clairement l'hypothèse


de récurrence. Elle permet de déduire les traitements qui assurent le
changement d'état
2 Voir si c'est ni : dénit la condition de terminaison
3 Se rapprocher de l'état nal : processus de la récurrence
4 Initialiser le calcul : réalise l'état initial
5 rédiger l'algorithme global

OUARMA I. & SYMPHOR J.E (UA) Introduction à la logique Algorithmique L2 Économie-Gestion 48 / 46

Vous aimerez peut-être aussi