Algorithmique
et programmation
Chap I : Introduction
Pr. HAMIDA Soufiane
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 1
ENSEIGNANT
• Pr. Soufiane HAMIDA
• Spécialité: Informatique et Intelligence Artificielle
• Email (meilleure façon de me contacter): [email protected]
Pr. Soufiane HAMIDA 2
OBJECTIFS
• Comprendre et analyser un algorithme préexistant ;
• Analyser la situation : identifier les données d'entrée, de sortie, le
traitement... ;
• Mettre au point une solution algorithmique : comment écrire un
algorithme en langage courant en respectant un code, identifier les
boucles, les tests, des opérations d'écriture, d'affichage... ;
• Valider la solution algorithmique par des jeux d'essais simples ;
Pr. Soufiane HAMIDA 3
PRE-REQUIS
• Pas de prérequis
Pr. Soufiane HAMIDA 4
EVALUATION
1. Modes d’évaluation
Examen de fin de semestre.
Contrôles continus : tests, épreuves orales, devoirs, exposés, rapports de TP ou travaux de recherche.
2. Note du module
Algorithmique et Programmation 1 : N1
N1= 25% x contrôles continus + 25% x Travaux pratiques + 50% x Examen de fin de semestre
Algorithmique et Programmation 2: N2
N2= 25% x contrôles continus + 25% x Travaux pratiques + 50% x Examen de fin de semestre
Note module : NM =50%*N1 + 50%*N2
Remarque: Le module est validé si la note obtenue dans ce module est supérieure ou égale à
10 sur 20.
Pr. Soufiane HAMIDA 5
Activité :
Scratch est un chaton qui est capable de se déplacer dans une petite ville.
Scratch comprend les instructions suivantes :
• Avance x,
• Recule x,
• Tourne gauche
• Tourne droite.
(Avec x le nombre de pas à avancer ou à
reculer)
Question : en utilisant ces instructions, demandez à Scratch d’atteindre la maison.
Définition
• Un algorithme est une suite d’actions ou
d’instructions qui doivent être exécutées
dans un ordre bien déterminé pour
résoudre un problème (ou réaliser un
travail).
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 7
Caractéristiques d’un algorithme :
La réalisation d’un algorithme est un acte créatif basé sur la logique.
Un même problème peut être résolu au moyen de plusieurs
algorithmes.
Un algorithme doit être fini et doit se terminer après un nombre fini
d’opérations.
Approche
• Recette de cuisine
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 9
Problématique
• Trouver une méthode de résolution
(exacte ou approché) d’un problème
donné.
• Exemple :
– Equation 2nd dégrées
– Intégrale de Reimann.
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 10
Résolution informatique d’un problème
a) Les étapes pour résoudre un problème:
•Analyse du problème,
•Trouver une solution,
•Formuler cette solution sous forme des actions,
•Rédiger l’algorithme.
b) Schéma de résolution informatique d’un problème
Algorithmes et programmes
• Un programme est l’implémentation dans
un langage évolué d’un algorithme:
– L’algorithme : étapes d’analyse (travaille du
mathématicien).
– Le programme : étapes de mise en œuvre
(travaille du programmeur).
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 13
Structure d’un algorithme
• Entête : identificateur :
Nom_d_algorithme
• Déclarations (variables, constantes,
fonctions, structures …)
• Début
– Corps de l’algorithme
• Fin
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 14
Conditions générales
• Un algorithme doit être :
– Lisible : Compréhensible (structure, notation)
– De haut niveau : indépendant d’une plate
forme de développement donnée.
– Précis : lever les ambiguitées.
– Concis : ne doit pas dépasser une page.
– Structuré.
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 15
Exemple
Algorithme : Somme
Déclarations :
Varaibles :
a,b : réel;
Debut
lire(a);
lire(b);
Ecrire(‘Somme de a et b’,a+b);
Fin
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 16
Déclarations
• Identifiant : suite de caractères qui permet de
nommer les choses
• Variable : une entité qui contient une information
– Possède un identifiant
– Possède une valeur (qui peut changer dans le temps)
– Possède un type qui caractérise l'ensemble des valeurs
• Une constante : une valeur qui ne change jamais
dans le temps.
• Un type : l’ensemble de valeur que peut prendre
une variable.
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 17
II – Les données d’un algorithme :
Les données sont des informations nécessaires au
déroulement d’un algorithme.
• On distingue deux catégories : les constantes et les
variables.
1. Les constantes:
Une constante est une donnée fixe qui ne varie pas durant
l’exécution d’un algorithme.
Une constante est caractérisée par son nom et sa valeur (fixe)
Exemple :
Constante Pi =3,14 ;
Constante B = 6 ;
Constante Mois = 'Mars' ;
2. Les variables :
Une variable est un objet dont le contenu peut être
modifié par une action durant l’exécution d’un algorithme.
Une variable est caractérisée par
o son nom,
o sa valeur,
o son type,
3. Les types de données :
4. Caractéristique d’une donnée:
Une donnée est caractérisée par son:
• Nom : appelé aussi identificateur, il sert à désigner la donnée
dans l’algorithme, il faut qu’il soit significatif.
Exemple: surface, rayon.
• Type : caractérise les valeurs que peut prendre cette donnée.
• Valeur.
• Nature : Constante ou Variable.
Expressions et opérateurs :
1. Expression :
Une expression est un ensemble de valeurs reliées par
des opérateurs, et équivalent à une seule valeur
2. Opérateur :
Un opérateur est un signe qui relie deux valeurs, pour produire un
résultat.
Exemple :
+, -, *,/ , ^, <, et, non, ou,…
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 25
Résumé
Type des opérandes Opérateurs disponibles Type résultat
Booléen Non, Et, Ou, OuExclusif, =, Booléen
+, -, *, div, mod, / Entier / Réel
Entier, Naturel
=, , <, >, ,, Booléen
+, -, *, / Réel
Réel
=, , <, >, ,, Booléen
succ, pred Caractére
Caractére
ord Naturel
char Caractère
Naturel
=, , <, >, ,, Booléen
+ Chaîne
Chaîne de caractères
= Booléen
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 26
Affectation
•Elle a pour but de modifier la valeur d'une
variable
IdentifVar ← NewValue (une expression)
Ne pas confondre l'affectation (←) avec
l'operateur d'égalité (=)
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 27
Entrées Sorties
• Lire : lire à partir de l’entrée standard
(clavier par défaut)
– Syntaxe : Lire(var1,var2,…)
• Ecrire : Afficher sur la sortie standard
(Ecran par défaut)
– Syntaxe : Ecrire(val1, val2,…)
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 28
Exercices
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 29
Exercice 1
Affirmation Vrai Faux
L’instruction de lecture « Lecture » permet d’afficher un message à x
l’utilisateur.
Une expression est un ensemble de valeurs reliées par des opérateurs. x
Dans l’instruction d’affectation, la valeur de la partie droite doit x
obligatoirement être du type de la variable dont la valeur est
modifiée.
X et Y deux variables de type Booléen, X=1 et Y=0, quel est le résultat x
de l’expression suivante : X Et Y
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 30
Exercice 2
Corrigez les erreurs dans l’algorithme suivant :
Algorithme trois_variable ;
Variable A, B, C : Reel ;
Début
A←2;
B ← A+ 2 ;
C← A + B ;
Ecrire (C) ;
Fin.
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 31
Exercice 3
Soient A, B et C trois variables de type entier.
Quelles seront les valeurs des variables A, B et C après
exécution des instructions suivantes :
A←1;
A←A+2;
B←3;
C←A-B;
A←A+B+C;
C←C+A;
A=… B=… C=…
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 32
Exercice 4
Soit l’algorithme suivant :
Algorithme Cle_solfege ;
Variable solfege : chaine de caractères ;
Début
Quel est le résultat affiché :
solfege ← ‘ DoRe’ ;
solfege ← solfege + ‘MiFa’ ;
solfege ← solfege + ‘Sol’ ;
Ecrire (‘La clé du solfège est ‘’, solfege) ;
Fin.
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 33
Implémentation sur langage
évolué
Introduction au langage C
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 34
Le traducteur
• Traducteur :
– Compilateur sert à la traduction du
programme en bloc et sert aussi à rendre le
programme exécutable (indépendant de la
machine).
– Interpréteur - l’exécution est liée à la machine
(instruction par instruction). Il est plus lent
mais interactif.
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 35
Classification des langages
• Selon le domaine d’utilisation
– Orientés problèmes scientifiques (Fortran &
Algol)
– Orientés problèmes de gestion (Cobol)
– Universels (Pascal, Ada, C)
– Orientés objet (C++, Smalltalk)
– Pour L’IA (Prolog, Lisp)
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 36
Structure d’un programme en C
Entête :
Préprocesseurs,
Prototypes,
déclarations globales …
main() {
Corps du programme
}
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 37
Les commentaires
• Tous texte se trouvant entre /* et */
• En C++ ou en ainsi c s’ajoute tout texte
s’étalant sur une seule ligne et
commençant par : //
/* ceci est un commentaire*/
/* ceci est un autre …
…. Commentaire … */
// et voilà un autre commentaire
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 38
Entrées/Sorties standard
# include <stdio.h>
printf("Chaîne de format",arg1,arg2,…);
Scanf("Chaîne de format",&arg1,&arg2,…);
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 39
Spécificateurs de format
%c : affiche un caractère unique
%d ou %i : un entier signé sous forme décimale
%f : une valeur réelle avec un point décimal.
%e ou %E : une valeur réelle avec un exposant.
%x ou %X : affiche un entier hexadécimal.
%u : affiche un entier en notation décimale
non signée.
%s : une chaîne de caractères (string).
%g ou %G : affiche une valeur réelle avec affichage de type
e ou f selon la valeur.
%4d : 4 digits "au moins" réservés pour l’entier.
%.2f : précision de 2 rangs décimaux.
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 40
Exercices (Applications)
SUPMTI - 2022 Pr. Soufiane HAMIDA : Algorithmique et programmation procédurale 41