Vous êtes sur la page 1sur 41

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): hamida.93s@gmail.com

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

Vous aimerez peut-être aussi