Algorithmique 2020 Séance1

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

Université Hassan II de Casablanca

Faculté des Sciences- Aïn Chock

MODULE M13 : INFORMATIQUE 2

M.MIYARA
Année Universitaire: 2019-2020
1
Avant Propos

Certains voient, à tort, dans l'ordinateur


une machine pensante et intelligente, capable de
résoudre bien des problèmes. En fait, celui-ci ne
serait capable de rien si quelqu'un (le
programmeur en l'occurrence) ne lui avait
fourni la liste des actions à exécuter.

2
Rappel sur le fonctionnement de l'Ordinateur

Mémoire Processeur

Bus

Unités ...
d'entrée-
Clavier Écran
sortie
Disque
La mémoire contient des instructions et des données 3
Rappel sur le fonctionnement de l'Ordinateur

Saisie Traitement Restitution

Données UC Résultats
Instructions

Mémoire

Périphériques d’entrée
Mémoires auxiliaires

Disque dur
Joystick Scanner Micro Souris

CD, Clé USB


CD-ROM Modem Caméra
Clavier 4
Problème

2*x + 3 = 0 10*x - 1= 0

0*x + 0 = 0 0*x + 3 = 0

?? a*x + b = 0 ??
Je veux informatiser ce problème et le rendre exploitable
à travers mon ordinateur. Qu'est ce que je dois faire ?
5
Informatisation d'un problème

Énoncé non précis : Problème informel


Spécification
Énoncé précis : Problème formel
Analyse
Algorithme
Programmation
Langage de programmation : C, Php,..
Compilation
Exécutable du programme
Exécution
Résultat

6
Qu'est ce qu'un Algorithme?

 “Suite d'actions à effectuer, dans un ordre


donné, pour parvenir à un résultat”
 Algorithme: Mot Arabe (Al Khawarizmi; Abu
Jaafar Mohammed Ben Mussa Al-Khwarizmi
9ème siècle)
 L'algorithme décrit l'environnement et les
actions (logiques ou arithmétiques)
 C'est la “recette” d'un programme 7
Algorithme

Définition : Encyclopédie Universalis

Un algorithme est une suite finie de règles à


appliquer dans un ordre déterminé à un nombre
fini de données pour arriver, en un nombre fini
d'étapes, à un certain résultat, et cela
indépendamment des données.

8
Représentation d’un Algorithme

Historiquement, deux façons pour représenter un algorithme:


 L’Organigramme: représentation graphique avec des
symboles (carrés, losanges, etc.)
 offre une vue d’ensemble de l’algorithme
 représentation quasiment abandonnée aujourd’hui
 Le pseudo- code: représentation textuelle avec une
série de conventions ressemblant à un langage de
programmation (sans les problèmes de syntaxe)
 plus pratique pour écrire un algorithme Vrai
condition instructions
 représentation largement utilisée
Faux

9
Algorithme

Définition :
C'est un pseudo-langage qui est conçu pour
résoudre les problèmes et applications sans aucune
contrainte due aux langages de programmation et
aux spécificités de la machine. Ce pseudo-code sera
ensuite traduit et codé dans le langage de
programmation désiré.
L'Algorithmique consiste, après analyse du
problème, à résoudre, à définir la description
automatisée d'un traitement , indépendamment du
langage de programmation à utiliser. 10
Algorithmique

Un traitement automatisé consiste à effectuer des


opérations sur des informations appelées données
d'entrée et fournir d'autres informations appelées
résultats ou Données de Sortie

Données Traitement Résultats

11
Exemple 1

 Changer une ampoule


 Prendre une échelle
 Dévisser l'ancienne ampoule
 Prendre une nouvelle ampoule
 Visser la nouvelle ampoule
 Tester la nouvelle ampoule
 Si elle ne s'allume pas, retourner au début

12
Exemple 2

Un entier N donné est-il pair ?


 Conception - Modélisation

 Analyse du problème
 Un nombre N est pair si le reste de la division de N par
2 est nul
 Solution algorithmique
 1. calculer le reste R de la division de N par 2
 2. si R est égal à 0 alors N est pair
 3. sinon N n'est pas pair
13
Caractéristiques d'un Algorithme

 Algorithme = moyen de présenter l'approche d'un


problème par le programmeur aux utilisateurs; il doit
donc être:
 Lisible: compréhensible même par un non info

 De haut niveau: indépendant du langage de


programmation, de la machine et du SE
 Précis: non ambigu

 Concis: ne doit pas dépasser une page, sinon le

décomposer en sous problèmes


14
Caractéristiques d'un Algorithme

 Général: répond au plus grand nombre de cas


possibles
 Structuré: composé de différentes parties facilement
identifiables.
 Être conçu de manière à limiter le nombre
d'opérations à effectuer et la place occupée en
mémoire.

15
Caractéristiques d'un Algorithme

 Pour répondre à ces critères, il faut utiliser la


programmation structurée : programmation
descendante (Top down)

1.1
1
1.2

2.1
2
2.2

1ère Étape 2ème Étape Etc…


16
Algorithmique

 Que veut-on obtenir ?


 A partir de quoi ?
 Comment y parvenir (traitements) ?

Méthode de résolution de problème énoncé sous


ALGORITHME forme d'une série d'opérations à effectuer

Entrées de données Traitements Résultats


(saisies) (calculs) (affichage)

Traduction de l'algorithme en langage informatique :


PROGRAMME (ex :C, Visual Basic, JavaScript, Php,.... tableur)
17
Langage de programmation

Définition :

On appelle langage de programmation tout


ensemble fini de mots réservés qui permet de
traduire les instructions de l'algorithme afin
qu'elles soient exécutées par l'ordinateur.
Exemple :

C, Turbo Pascal, C++, Cobol, Fortran, C, Delphi, Visual Basic


(VB), Java, etc...

18
Langage Assembleur

Définition :
Le langage Assembleur est un langage qui
utilise des instructions sous forme symbolique
(ADD, MOVE).
L'assembleur est lié au microprocesseur: c'est
le seul langage que le microprocesseur comprend.

19
Programme source

Définition :
Le programme source est le premier résultat
de la traduction d'un algorithme en un langage
évolué :

Un nouvel ensemble d'instructions non


exécutables directement par la machine

20
Compilateur

Définition :

On appelle compilateur tout programme


spécial qui permet d'avoir un programme exécutable
à partir d'un programme source:

Le programme ainsi obtenu est appelé


programme Objet
21
Informatisation d'un problème

Énoncé non précis : Problème informel


Spécification
Énoncé précis : Problème formel
Analyse
Algorithme
Programmation
Langage de programmation : C, C++,..
Compilation
Exécutable du programme
Exécution
Résultat
22
Informatisation d'un problème

Le langage de programmation est


l'intermédiaire entre l'homme et la machine.
Durant l'écriture d'un programme, on peut commettre
deux types d'erreurs:
Les erreurs de syntaxe: visibles à la compilation;
Résultat d'une mauvaise écriture dans le langage de
programmation.
Les erreurs sémantiques: à l'exécution et sont le
résultat d'une mauvaise analyse.
23
Structure générale d'un algorithme

Démarche à suivre pour résoudre un problème donné:

Identifier les données du départ (entrées) et celle(s) qu'il


faut obtenir (sorties);
Structurer les données (variables ou constantes, type...);
Réfléchir pour déterminer les action nécessaires à
l'obtention des résultats ;
Présenter les résultats.

24
Exemple
L'énoncé du problème

 afficher le coût d'un shopping: pantalons, chemises,


chaussures.
 en fonction du nombre d'articles et du prix unitaire de
chaque article.
 chaque article est affecté d'un prix unitaire différent
( respectivement 210DHS, 125DHS et 175DHS)

La structure de l'algorithme
Saisie des articles : Calcul du total Afficher
- nombre de chaque en fonction le
article de chaque article total
25
Exemple
Déterminer les données élémentaires
 Des variables saisies ou calculées.
Une variable a un nom et appartient à un type de données
(texte, entier, réel, date..).
Dans notre cas :
- le nombre de chaque article
- et deux variables pour le traitement : le prix de chaque type
d'article à retenir et le total à calculer.
 Des constantes dont la valeur ne change pas durant le
traitement. Dans notre cas :
- les 3 prix unitaires propres à chaque article.
L'utilisation des variables et constantes est une question de choix de la part du
programmeur. Plusieurs solutions et combinaisons sont possibles. 26
Structure générale d'un Algorithme

Titre du Problème (Facultatif)


 Déclaration des Constantes
Déclaration  Déclaration des Variables
des Objets  Déclaration des Tableaux
 Déclaration des Procédures et Fonctions

Début
Manipulation Actions
FIN
27
Déclaration des Objets

28
Objet

Définition :
Un objet est toute partie identifiable de l'information
au cours d'un traitement.
Il est caractérisé par son nom, son type ou sa valeur.
L'ensemble des objets manipulés par un algorithme
est appelé:
environnement de cet algorithme

Remarque :
Les objets manipulés par un ordinateur sont :
Les Constantes et Les Variables 29
Les constantes

Définition :

Les Constantes désignent des références à des


valeurs invariantes dans le programme

Syntaxe de la déclaration :

Constante Nom_Constante = Valeur

Exemple :
Constante Pi = 3.14
30
Les variables

Définition :
Ce sont des références (adresses mémoires) où vont être
stockées des valeurs variables. Les différentes valeurs d'une
référence appartiennent au type de données auquel
appartient la référence.
Remarques :
1°- Une variable est caractérisée par un nom ou identificateur  suite de
caractères qui permet d'identifier la variable d'une manière unique dans un
algorithme.
2°- En programmation, ce nom ne doit pas commencer par un caractère numérique,
contenir de signes de ponctuation, des caractères accentués, des espaces,...
31
Exemples: x, x1, x_1, premiere_variable, varLocal,…
Les variables

Syntaxe de déclaration :

Variable variable1,variable2,… : Type de la variable

32
Types des variables

Le type d'une variable permet de lui allouer une zone


mémoire.
 On peut représenter la mémoire d'une machine par une
suite d'octets dans laquelle on réserve des octets pour les
variables.
 Le type de la variable détermine la taille que va occuper
cette variable en mémoire

L'emplacement d'une variable en mémoire est désigné par


l'adresse de la variable. Cette adresse est définie une fois
pour toute et reste invariable tout au long du programme
33
Type Entier

Définition :
C'est l'ensemble des nombres entiers positifs ou négatifs.
Syntaxe de la déclaration :
Variable variable1,variable2,… : Entier

Exemple : a et b sont, par exemple,


Variable a,b : Entier les coefficients de
l'équation : ax + b = 0
Remarques :
En programmation: les entiers positifs que l'on peut coder sur un octet varient de
0 à 255; Si l'octet contient des entiers positifs et négatifs, on codera les valeurs
entre -128 et +127.
Sur 2 octets, seuls les nombres compris entre -32768 et 32767 sont représentés 34
Type Réel

Définition :
C'est l'ensemble des nombres réels, c'est à dire les
nombres décimaux sans limitation.
Syntaxe de la déclaration :
Variable variable1,variable2,… : Réel

Exemple :
Variable x,y : Réel
Remarque :
En programmation, les réels sont représentés par des nombres à virgule flottante
en simple ou double précision.
35
Type Caractère ou Chaîne de caractères

Définition :
C'est un caractère ou une suite de caractères, c'est à
dire des combinaisons de caractères (lettres, chiffres, signes de
ponctuation, symboles, espaces,...).
Syntaxe de la déclaration d'un caractère :

Variable variable1,variable2,… : Caractère


Syntaxe de la déclaration d'une chaîne de caractères :
Variable variable1,variable2,… : Chaîne de caractères
Exemple : Variable Catégorie : Caractère
36
Nom : Chaîne de caractère
Type Caractère ou Chaîne de caractères

Remarques:
Dans certains langages de programmation, le type caractère
(char) n'est qu'un cas particulier du type entier; chaque
caractère étant représenté par son code ASCII (entre 0 et 127)
Par conséquent un caractère occupe 1 octet en mémoire

 Une variable de type caractère ou chaîne de caractères s'écrit


entre guillemets

Attention: 123 correspond au nombre alors que ''123'' signifie


la chaîne de caractères 123
37
Type Booléen

Définition :
Il s'agit des objets qui ne peuvent prendre que deux
valeurs VRAI ou FAUX. ( True ou False)
Syntaxe de la déclaration :
Variable variable1,variable2,… : Booléen

Exemple :
Variable Décision : Booléen
Remarque: Dans certains langages (C par ex), il n'existe pas de type
Booléen. Une expression logique est évaluée en type entier: Si elle est
fausse sa valeur est 0 et si elle est vraie, elle prendra toute autre valeur
38
entière positive non nulle.
Types de Variables

Taille en
Type Anglais Plage
mémoire
Byte (octet) Byte 0 à 255 1 Octet
Entier court Short Integer -128 à +127 1 Octets

Entier simple Integer -32 768 à 32 767 2 Octets

Entier long Long Integer -2 147 483 648 à 2 147 483 647 4 Octets
Réel simple Real ou float -3,40x1038 à 3,40x1038 6 Octets
Réel double Double -1,79x10308 à 1,79x10308 8 Octets
Caractère char lettres, chiffres, signes de ponctuation,… 1 Octet
Chaîne de
String suite de caractères 256 Octets
caractères
Booléen Boolean Vrai et Faux (True et False) 1 Octet 39
Autres objets à déclarer

Objets : Type Tableau

Un tableau permet de représenter un ensemble de


valeurs ayant des propriétés communes et appartenant toutes
au même type. Ces variables sont identifiées par un même nom
mais un numéro de repère(indice) pour chacun.

40
Autres objets à déclarer

Les Fonctions et Les Procédures

Ce sont des sous-programmes auxquels on peut faire


référence à l'intérieur d'un programme . Ils sont conçus pour
éviter les répétitions et pour découper des programmes jugés
trop longs; ce qui facilite la lisibilité du programme principal.

41
Manipulation des Objets

42
Instruction et Action

Définition :
On appelle instruction toute commande élémentaire que
l'on doit appliquer sur des objets pour avoir des sorties bien
définies.
Définition :
Une action est un événement qui change l'état d'un objet
d'un état initial donné à un état final désiré. Une action a une
durée d'exécution finie et un effet propre et bien défini. Chaque
action porte sur des objets sur lesquels elle s'exécute :
L'Action est une seule instruction ou un groupe d'instructions
43
La Structure de la partie manipulation

La partie manipulation doit commencer par le mot


DEBUT et se termine par le mot FIN :

DEBUT
Instruction 1
Instruction 2
……. Action
…….
Instruction n

FIN 44
Les instructions d'un Algorithme

La partie manipulation utilise les différents objets


déclarés dans la partie déclaration et leur applique des
opérations afin de retourner le(s) résultat(s) attendu(s) par le
programmeur. Pour ce fait, il y a différentes actions, dites
instructions, à savoir :

Instructions de dialogue Homme-Machine ;


Instructions d'affectation ;
Instructions à structure alternative ;
Instructions à structure répétitive.
45
Etc…
Les instructions d'un Algorithme

 Seuls les quatre opérateurs logiques suivants


peuvent être exécutés par un ordinateur:
 La lecture/Écriture

 L'affectation des variables

 Les Tests

 Les boucles

 Un algorithme informatique se ramène toujours à


la combinaison de ces quatre notions

46
Instructions de dialogue Homme-Machine

L'affichage des informations:


Pour faire comprendre qu'il faut afficher des
informations à l'écran, on utilise l'instruction Écrire qui obéit
à la syntaxe suivante :

Écrire (Variable ou '' Message'' )

Exemples : Écrire (''Saisissez la valeur de a '')


Écrire ('' Saisissez la valeur de b '')
Écrire ('' Saisissez les valeurs de a et b '')
Écrire (''Le résultat trouvé est :'', r )
47
Écrire ( r )
Instruction Homme-Machine

La Saisie des informations:

Pour indiquer dans un algorithme que telle donnée


doit être lue par le système (~ saisie au clavier par
l'utilisateur), on utilise l'instruction Lire qui obéit à la
syntaxe suivante :
Lire(Variable)

Exemple :
Écrire ('' Saisissez la valeur de a '')
Lire(a) 48
Instruction d'affectation

Définition:
C'est le stockage d'une valeur à un endroit
spécifique(variable). Pour affecter une valeur à une variable,
on écrit :
Variable Valeur

Exemple : Variable valeur 1 + valeur 2


Variable valeur 1 * variable1

 NB: Dans une affectation, on trouve:


 A gauche de la flèche le nom de la variable

 A droite une valeur ou une expression dont le résultat doit être


49
de même type que la variable de gauche
Instruction d'affectation

Les langages de programmation C, C++, Java, … utilisent le


signe égal = pour l’affectation ←.
Remarques :

Lors d’une affectation, l’expression de droite est évaluée et la valeur


trouvée est affectée à la variable de gauche. Ainsi, A←B est différente de
B←A
 l'affectation est différente d'une équation mathématique :

 Les opérations x ← x+1 et x ← x-1 ont un sens en programmation et se

nomment respectivement incrémentation et décrémentation.


 A+1 ← 3 n'est pas possible en langages de programmation et n'est pas

équivalente à A ← 2
 Certains langages donnent des valeurs par défaut aux variables

déclarées. Pour éviter tout problème il est préférable d'initialiser les


variables déclarées. 50
Remarques sur les constantes et les
variables

 Les variables sont des références (adresses mémoires) où vont


être stockées des valeurs qui peuvent changer au cours de
l'exécution du programme. Les mémoires sont repérées par des
numéros (pour l'ordinateur) ou des noms (pour le
programmeur, qui a intérêt à choisir des noms significatifs).
 Chaque fois qu'on procède à une nouvelle affectation, l'ancien
contenu de la mémoire est perdu et un nouveau contenu est
placé dans la mémoire.
 Les constantes correspondent à des zones mémoires dont le
contenu ne peut pas varier.
octet n° 52 'A'
01000001
51

Vous aimerez peut-être aussi